Script to check that the lists of helpers are in sync
authorPaul Chaignon <paul.chaignon@gmail.com>
Wed, 14 Feb 2018 09:13:11 +0000 (10:13 +0100)
committerPaul Chaignon <paul.chaignon@gmail.com>
Wed, 14 Feb 2018 09:19:40 +0000 (10:19 +0100)
Checks src/cc/libbpf.c, docs/kernel-versions.md, src/cc/compat/linux/bpf.h,
and src/cc/export/helpers.h.

.travis.yml
scripts/check-helpers.sh [new file with mode: 0755]

index 736ddad..dd36669 100644 (file)
@@ -3,4 +3,5 @@ install:
   - sudo apt-get install -y python-pip
   - sudo pip install pep8
 script:
+  - ./scripts/check-helpers.sh
   - find tools/ -type f -name "*.py" | xargs pep8 -r --show-source --ignore=E123,E125,E126,E127,E128,E302
diff --git a/scripts/check-helpers.sh b/scripts/check-helpers.sh
new file mode 100755 (executable)
index 0000000..9350aed
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/bash
+ret=0
+
+grep -oP '(?<={")\w+(?=", "\d\.\d+")' src/cc/libbpf.c | sort > /tmp/libbpf.txt
+grep -oP "(?<=BPF_FUNC_)\w+" docs/kernel-versions.md | sort > /tmp/doc.txt
+dif=`diff /tmp/libbpf.txt /tmp/doc.txt`
+if [ $? -ne 0 ]; then
+       echo "The lists of helpers in src/cc/libbpf.c and docs/kernel-versions.md differ:"
+       echo -e "$dif\n"
+       ((ret++))
+fi
+
+grep -oP "(?<=^\sFN\()\w+" src/cc/compat/linux/bpf.h | tail -n +2 | sort > /tmp/compat.txt
+dif=`diff /tmp/doc.txt /tmp/compat.txt`
+if [ $? -ne 0 ]; then
+       echo "The lists of helpers in docs/kernel-versions.md and src/cc/compat/linux/bpf.h differ:"
+       echo -e "$dif\n"
+       ((ret++))
+fi
+
+grep -oP "(?<=BPF_FUNC_)\w+" src/cc/export/helpers.h | sort -u > /tmp/export.txt
+dif=`diff /tmp/compat.txt /tmp/export.txt`
+if [ $? -ne 0 ]; then
+       echo "The lists of helpers in src/cc/compat/linux/bpf.h and src/cc/export/helpers.h differ:"
+       echo "$dif"
+       ((ret++))
+fi
+
+exit $ret