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