]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
travis: make sure that *.perf and directives.* files are in sync
authorEvgeny Vereshchagin <evvers@ya.ru>
Wed, 28 Nov 2018 03:50:04 +0000 (04:50 +0100)
committerEvgeny Vereshchagin <evvers@ya.ru>
Wed, 28 Nov 2018 04:12:58 +0000 (05:12 +0100)
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.

tools/check-directives.sh [new file with mode: 0755]
travis-ci/managers/fedora.sh

diff --git a/tools/check-directives.sh b/tools/check-directives.sh
new file mode 100755 (executable)
index 0000000..e2fd388
--- /dev/null
@@ -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
index c84d10bbe6efed84b22eb089005e5b320889c884..b3ee0281a6bae75d5a5a0d5f84dee53d32ac780b 100755 (executable)
@@ -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