| 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 |
| |