diff --git a/meson.build b/meson.build index 95062742395..3bbe79f41fd 100644 --- a/meson.build +++ b/meson.build @@ -2927,6 +2927,16 @@ endforeach ############################################################ +check_directives_sh = find_program('tools/check-directives.sh') + +if want_tests != 'false' + test('check-directives', + check_directives_sh, + args : project_source_root) +endif + +############################################################ + # Enable tests for all supported sanitizers foreach tuple : sanitizers sanitizer = tuple[0] diff --git a/tools/check-directives.sh b/tools/check-directives.sh index 46f770222f5..a90fb604ae0 100755 --- a/tools/check-directives.sh +++ b/tools/check-directives.sh @@ -1,6 +1,8 @@ #!/bin/bash set -e +which perl &>/dev/null || exit 77 + function generate_directives() { perl -aF'/[\s,]+/' -ne ' if (my ($s, $d) = ($F[0] =~ /^([^\s\.]+)\.([^\s\.]+)$/)) { $d{$s}{"$d="} = 1; } @@ -11,22 +13,22 @@ function generate_directives() { ret=0 if ! diff \ - <(generate_directives src/network/networkd-network-gperf.gperf | sort) \ - <(cat test/fuzz/fuzz-network-parser/directives.network | sort); then + <(generate_directives "$1"/src/network/networkd-network-gperf.gperf | sort) \ + <(cat "$1"/test/fuzz/fuzz-network-parser/directives.network | sort); then echo "Looks like test/fuzz/fuzz-network-parser/directives.network hasn't been updated" ret=1 fi if ! diff \ - <(generate_directives src/network/netdev/netdev-gperf.gperf | sort) \ - <(cat test/fuzz/fuzz-netdev-parser/directives.netdev | sort); then + <(generate_directives "$1"/src/network/netdev/netdev-gperf.gperf | sort) \ + <(cat "$1"/test/fuzz/fuzz-netdev-parser/directives.netdev | sort); then echo "Looks like test/fuzz/fuzz-netdev-parser/directives.netdev hasn't been updated" ret=1 fi if ! diff \ - <(generate_directives src/udev/net/link-config-gperf.gperf | sort) \ - <(cat test/fuzz/fuzz-link-parser/directives.link | sort) ; then + <(generate_directives "$1"/src/udev/net/link-config-gperf.gperf | sort) \ + <(cat "$1"/test/fuzz/fuzz-link-parser/directives.link | sort) ; then echo "Looks like test/fuzz/fuzz-link-parser/directives.link hasn't been updated" ret=1 fi diff --git a/travis-ci/managers/debian.sh b/travis-ci/managers/debian.sh index 72ffcee439b..8a3a0e9c871 100755 --- a/travis-ci/managers/debian.sh +++ b/travis-ci/managers/debian.sh @@ -47,7 +47,6 @@ for phase in "${PHASES[@]}"; do docker exec $ENV_VARS -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dsplit-usr=true build $DOCKER_EXEC ninja -v -C build docker exec -e "TRAVIS=$TRAVIS" -it $CONT_NAME ninja -C build test - $DOCKER_EXEC tools/check-directives.sh ;; RUN_ASAN|RUN_CLANG_ASAN) if [[ "$phase" = "RUN_CLANG_ASAN" ]]; then diff --git a/travis-ci/managers/fedora.sh b/travis-ci/managers/fedora.sh index 760ed5b1ea5..bb1b79be4be 100755 --- a/travis-ci/managers/fedora.sh +++ b/travis-ci/managers/fedora.sh @@ -50,7 +50,6 @@ for phase in "${PHASES[@]}"; do $DOCKER_EXEC meson --werror -Dtests=unsafe -Dslow-tests=true build $DOCKER_EXEC ninja -v -C build $DOCKER_EXEC ninja -C build test - $DOCKER_EXEC tools/check-directives.sh ;; RUN_CLANG) docker exec -e CC=clang -e CXX=clang++ -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true build