travis: make sure that *.perf and directives.* files are in sync

New features are constantly added to networkd. Apparently, not everybody
knows that the "directives" files should be updated too to make
the fuzzers aware of them.
This commit is contained in:
Evgeny Vereshchagin 2018-11-28 04:50:04 +01:00
parent 466a2bee94
commit a2ab58da1a
2 changed files with 22 additions and 0 deletions

21
tools/check-directives.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/bash
set -e
function generate_directives() {
perl -aF'/[\s,]+/' -ne '
if (my ($s, $d) = ($F[0] =~ /^([^\s\.]+)\.([^\s\.]+)$/)) { $d{$s}{"$d="} = 1; }
END { while (my ($key, $value) = each %d) {
printf "[%s]\n%s\n", $key, join("\n", keys(%$value))
}}' "$1"
}
if [[ $(generate_directives src/network/networkd-network-gperf.gperf | wc -l) -ne $(wc -l <test/fuzz/fuzz-network-parser/directives.network) ]]; then
echo "Looks like test/fuzz/fuzz-network-parser/directives.network hasn't been updated"
exit 1
fi
if [[ $(generate_directives src/network/netdev/netdev-gperf.gperf | wc -l) -ne $(wc -l <test/fuzz/fuzz-netdev-parser/directives.netdev) ]]; then
echo "Looks like test/fuzz/fuzz-netdev-parser/directives.netdev hasn't been updated"
exit 1
fi

View File

@ -50,6 +50,7 @@ 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_ASAN)
$DOCKER_EXEC git clean -dxff