test: run check-directives.sh as part of the test suite

This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2019-05-07 20:46:36 +02:00
parent a188bcffc3
commit c6448ee39e
4 changed files with 18 additions and 8 deletions

View File

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

View File

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

View File

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

View File

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