diff options
author | Evgeny Vereshchagin <evvers@ya.ru> | 2018-11-28 04:50:04 +0100 |
---|---|---|
committer | Evgeny Vereshchagin <evvers@ya.ru> | 2018-11-28 05:12:58 +0100 |
commit | a2ab58da1a6f0b6c51537d92c40208c2e00b97e9 (patch) | |
tree | d8852a44f7273fce6df980f1d2d3780e957265dc | |
parent | 466a2bee94ccd2518c8b22299509adefb29cd15d (diff) | |
download | systemd-a2ab58da1a6f0b6c51537d92c40208c2e00b97e9.tar.gz |
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.
-rwxr-xr-x | tools/check-directives.sh | 21 | ||||
-rwxr-xr-x | travis-ci/managers/fedora.sh | 1 |
2 files changed, 22 insertions, 0 deletions
diff --git a/tools/check-directives.sh b/tools/check-directives.sh new file mode 100755 index 0000000000..e2fd38898f --- /dev/null +++ b/tools/check-directives.sh @@ -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 diff --git a/travis-ci/managers/fedora.sh b/travis-ci/managers/fedora.sh index c84d10bbe6..b3ee0281a6 100755 --- a/travis-ci/managers/fedora.sh +++ b/travis-ci/managers/fedora.sh @@ -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 |