blob: 9f17cbdb875ad5e2a0c499a846fc5fd8033da84d [file] [log] [blame]
From d8048d60d30a2efe7883b36626123630ce69b9fc 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>
Upstream-Status: Backport [3163c49f9f4ad473a00d8a345ee334a028376011]
Signed-off-by: Chen Qi <Qi.Chen@windriver.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 ac5f5d9..517667f 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 1e678ec..83ea353 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 0000000..43aed75
--- /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
--
2.30.2