219 lines
5.8 KiB
Diff
219 lines
5.8 KiB
Diff
|
From 3163c49f9f4ad473a00d8a345ee334a028376011 Mon Sep 17 00:00:00 2001
|
||
|
From: Heiko Becker <heirecka@exherbo.org>
|
||
|
Date: Fri, 23 Jul 2021 16:32:46 +0200
|
||
|
Subject: [PATCH] meson: Make tests optional
|
||
|
|
||
|
Now can be disabled with -DSKIP_TESTS=true.
|
||
|
|
||
|
It allows to avoid meson error during build when ip isn't installed.
|
||
|
|
||
|
Closes: #359
|
||
|
|
||
|
Reviewed-by: Petr Vorel <petr.vorel@gmail.com>
|
||
|
Signed-off-by: Heiko Becker <heirecka@exherbo.org>
|
||
|
[ pvorel: Rename variable TEST => SKIP_TESTS, default false, adjust
|
||
|
the description ]
|
||
|
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
|
||
|
|
||
|
[Retrieved from:
|
||
|
https://github.com/iputils/iputils/commit/3163c49f9f4ad473a00d8a345ee334a028376011]
|
||
|
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||
|
---
|
||
|
meson_options.txt | 3 ++
|
||
|
ping/meson.build | 84 ++-----------------------------------------
|
||
|
ping/test/meson.build | 81 +++++++++++++++++++++++++++++++++++++++++
|
||
|
3 files changed, 86 insertions(+), 82 deletions(-)
|
||
|
create mode 100644 ping/test/meson.build
|
||
|
|
||
|
diff --git a/meson_options.txt b/meson_options.txt
|
||
|
index ac5f5d98..517667f4 100644
|
||
|
--- a/meson_options.txt
|
||
|
+++ b/meson_options.txt
|
||
|
@@ -72,3 +72,6 @@ option('INSTALL_SYSTEMD_UNITS', type: 'boolean', value: false,
|
||
|
|
||
|
option('USE_GETTEXT', type: 'boolean', value: true,
|
||
|
description: 'Enable I18N')
|
||
|
+
|
||
|
+option('SKIP_TESTS', type: 'boolean', value: false,
|
||
|
+ description: 'Skip tests during build')
|
||
|
diff --git a/ping/meson.build b/ping/meson.build
|
||
|
index 1e678ec8..83ea353c 100644
|
||
|
--- a/ping/meson.build
|
||
|
+++ b/ping/meson.build
|
||
|
@@ -27,86 +27,6 @@ if (setcap_ping)
|
||
|
)
|
||
|
endif
|
||
|
|
||
|
-##### TESTS #####
|
||
|
-
|
||
|
-# TODO: ::1 generates DEPRECATION: ":" is not allowed in test name "ping -c1 ::1", it has been replaced with "_"
|
||
|
-
|
||
|
-# GitHub CI does not have working IPv6
|
||
|
-# https://github.com/actions/virtual-environments/issues/668
|
||
|
-ipv6_dst = []
|
||
|
-ipv6_switch = []
|
||
|
-r = run_command('ip', '-6', 'a')
|
||
|
-if r.stdout().strip().contains('::1')
|
||
|
- message('IPv6 enabled')
|
||
|
- ipv6_dst = [ '::1' ]
|
||
|
- ipv6_switch = [ '-6' ]
|
||
|
-else
|
||
|
- message('WARNING: IPv6 disabled')
|
||
|
+if not get_option('SKIP_TESTS')
|
||
|
+ subdir('test')
|
||
|
endif
|
||
|
-
|
||
|
-run_as_root = false
|
||
|
-r = run_command('id', '-u')
|
||
|
-if r.stdout().strip().to_int() == 0
|
||
|
- message('running as root')
|
||
|
- run_as_root = true
|
||
|
-else
|
||
|
- message('running as normal user')
|
||
|
-endif
|
||
|
-
|
||
|
-foreach dst : [ 'localhost', '127.0.0.1' ] + ipv6_dst
|
||
|
- foreach switch : [ '', '-4' ] + ipv6_switch
|
||
|
- args = [ '-c1', dst ]
|
||
|
- should_fail = false
|
||
|
-
|
||
|
- if switch != ''
|
||
|
- args = [switch] + args
|
||
|
- if (switch == '-4' and dst == '::1') or (switch == '-6' and dst == '127.0.0.1')
|
||
|
- should_fail = true
|
||
|
- endif
|
||
|
- endif
|
||
|
-
|
||
|
- name = 'ping ' + ' '.join(args)
|
||
|
- test(name, ping, args : args, should_fail : should_fail)
|
||
|
- endforeach
|
||
|
-endforeach
|
||
|
-
|
||
|
-ping_tests_opt = [
|
||
|
- [ '-c1' ],
|
||
|
- [ '-c5', '-i0.1' ],
|
||
|
- [ '-c1', '-I', 'lo' ],
|
||
|
- [ '-c1', '-w1' ],
|
||
|
- [ '-c1', '-W1' ],
|
||
|
- [ '-c1', '-W1.1' ],
|
||
|
-]
|
||
|
-foreach dst : [ '127.0.0.1' ] + ipv6_dst
|
||
|
- foreach args : ping_tests_opt
|
||
|
- args += [ dst ]
|
||
|
- name = 'ping ' + ' '.join(args)
|
||
|
- test(name, ping, args : args)
|
||
|
- endforeach
|
||
|
-endforeach
|
||
|
-
|
||
|
-ping_tests_opt_fail = [
|
||
|
- [ '-c1.1' ],
|
||
|
- [ '-I', 'nonexisting' ],
|
||
|
- [ '-w0.1' ],
|
||
|
- [ '-w0,1' ],
|
||
|
-]
|
||
|
-foreach dst : [ '127.0.0.1' ] + ipv6_dst
|
||
|
- foreach args : ping_tests_opt_fail
|
||
|
- args += [ dst ]
|
||
|
- name = 'ping ' + ' '.join(args)
|
||
|
- test(name, ping, args : args, should_fail : true)
|
||
|
- endforeach
|
||
|
-endforeach
|
||
|
-
|
||
|
-ping_tests_user_fail = [
|
||
|
- [ '-c1', '-i0.001' ], # -c1 required to quit ping when running as root
|
||
|
-]
|
||
|
-foreach dst : [ '127.0.0.1' ] + ipv6_dst
|
||
|
- foreach args : ping_tests_user_fail
|
||
|
- args += [ dst ]
|
||
|
- name = 'ping ' + ' '.join(args)
|
||
|
- test(name, ping, args : args, should_fail : not run_as_root)
|
||
|
- endforeach
|
||
|
-endforeach
|
||
|
diff --git a/ping/test/meson.build b/ping/test/meson.build
|
||
|
new file mode 100644
|
||
|
index 00000000..43aed758
|
||
|
--- /dev/null
|
||
|
+++ b/ping/test/meson.build
|
||
|
@@ -0,0 +1,81 @@
|
||
|
+# TODO: ::1 generates DEPRECATION: ":" is not allowed in test name "ping -c1 ::1", it has been replaced with "_"
|
||
|
+
|
||
|
+# GitHub CI does not have working IPv6
|
||
|
+# https://github.com/actions/virtual-environments/issues/668
|
||
|
+ipv6_dst = []
|
||
|
+ipv6_switch = []
|
||
|
+r = run_command('ip', '-6', 'a')
|
||
|
+if r.stdout().strip().contains('::1')
|
||
|
+ message('IPv6 enabled')
|
||
|
+ ipv6_dst = [ '::1' ]
|
||
|
+ ipv6_switch = [ '-6' ]
|
||
|
+else
|
||
|
+ message('WARNING: IPv6 disabled')
|
||
|
+endif
|
||
|
+
|
||
|
+run_as_root = false
|
||
|
+r = run_command('id', '-u')
|
||
|
+if r.stdout().strip().to_int() == 0
|
||
|
+ message('running as root')
|
||
|
+ run_as_root = true
|
||
|
+else
|
||
|
+ message('running as normal user')
|
||
|
+endif
|
||
|
+
|
||
|
+foreach dst : [ 'localhost', '127.0.0.1' ] + ipv6_dst
|
||
|
+ foreach switch : [ '', '-4' ] + ipv6_switch
|
||
|
+ args = [ '-c1', dst ]
|
||
|
+ should_fail = false
|
||
|
+
|
||
|
+ if switch != ''
|
||
|
+ args = [switch] + args
|
||
|
+ if (switch == '-4' and dst == '::1') or (switch == '-6' and dst == '127.0.0.1')
|
||
|
+ should_fail = true
|
||
|
+ endif
|
||
|
+ endif
|
||
|
+
|
||
|
+ name = 'ping ' + ' '.join(args)
|
||
|
+ test(name, ping, args : args, should_fail : should_fail)
|
||
|
+ endforeach
|
||
|
+endforeach
|
||
|
+
|
||
|
+ping_tests_opt = [
|
||
|
+ [ '-c1' ],
|
||
|
+ [ '-c5', '-i0.1' ],
|
||
|
+ [ '-c1', '-I', 'lo' ],
|
||
|
+ [ '-c1', '-w1' ],
|
||
|
+ [ '-c1', '-W1' ],
|
||
|
+ [ '-c1', '-W1.1' ],
|
||
|
+]
|
||
|
+foreach dst : [ '127.0.0.1' ] + ipv6_dst
|
||
|
+ foreach args : ping_tests_opt
|
||
|
+ args += [ dst ]
|
||
|
+ name = 'ping ' + ' '.join(args)
|
||
|
+ test(name, ping, args : args)
|
||
|
+ endforeach
|
||
|
+endforeach
|
||
|
+
|
||
|
+ping_tests_opt_fail = [
|
||
|
+ [ '-c1.1' ],
|
||
|
+ [ '-I', 'nonexisting' ],
|
||
|
+ [ '-w0.1' ],
|
||
|
+ [ '-w0,1' ],
|
||
|
+]
|
||
|
+foreach dst : [ '127.0.0.1' ] + ipv6_dst
|
||
|
+ foreach args : ping_tests_opt_fail
|
||
|
+ args += [ dst ]
|
||
|
+ name = 'ping ' + ' '.join(args)
|
||
|
+ test(name, ping, args : args, should_fail : true)
|
||
|
+ endforeach
|
||
|
+endforeach
|
||
|
+
|
||
|
+ping_tests_user_fail = [
|
||
|
+ [ '-c1', '-i0.001' ], # -c1 required to quit ping when running as root
|
||
|
+]
|
||
|
+foreach dst : [ '127.0.0.1' ] + ipv6_dst
|
||
|
+ foreach args : ping_tests_user_fail
|
||
|
+ args += [ dst ]
|
||
|
+ name = 'ping ' + ' '.join(args)
|
||
|
+ test(name, ping, args : args, should_fail : not run_as_root)
|
||
|
+ endforeach
|
||
|
+endforeach
|