summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Vereshchagin <evvers@ya.ru>2018-11-28 04:50:04 +0100
committerEvgeny Vereshchagin <evvers@ya.ru>2018-11-28 05:12:58 +0100
commita2ab58da1a6f0b6c51537d92c40208c2e00b97e9 (patch)
treed8852a44f7273fce6df980f1d2d3780e957265dc
parent466a2bee94ccd2518c8b22299509adefb29cd15d (diff)
downloadsystemd-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-xtools/check-directives.sh21
-rwxr-xr-xtravis-ci/managers/fedora.sh1
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