summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorPetri Latvala <petri.latvala@intel.com>2020-06-15 13:25:15 +0300
committerPetri Latvala <petri.latvala@intel.com>2020-06-17 13:10:54 +0300
commit783280d03c23f7613acaff4487f825d5055b330d (patch)
treee8309a376e75463bdad5b22af817923133416b5e /scripts
parent90611a0c90afa4a46496c78a4faf9638a1538ac3 (diff)
scripts/verify-blacklist: Script for checking blacklist files
tests/intel-ci/blacklist*.txt files can collect bitrot unless there's an easy way to check for lines that are no longer needed due to the tests being renamed or removed. Therefore, a script just for that. v2: Use long options for readability, exit with 1 if something found v3: Verify manually against the list of all tests instead of trying with igt_runner's --include-tests Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/verify-blacklist.sh54
1 files changed, 54 insertions, 0 deletions
diff --git a/scripts/verify-blacklist.sh b/scripts/verify-blacklist.sh
new file mode 100755
index 00000000..93dca495
--- /dev/null
+++ b/scripts/verify-blacklist.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+# Verify that all entries in a blacklist file are still valid
+
+usage() {
+ echo "Usage: $0 <path-to-igt-runner> <test-binary-directory> <blacklist-file>"
+ echo
+ echo " path-to-igt-runner: For example build/runner/igt_runner"
+ echo " test-binary-directory: For example build/tests"
+ echo " blacklist-file: For example tests/intel-ci/blacklist.txt"
+ exit 2
+}
+
+if [ $# -ne 3 ]; then
+ usage
+fi
+
+RUNNER="$1"
+BINDIR="$2"
+BLFILE="$3"
+
+if [ ! -x "$RUNNER" ]; then
+ echo "$RUNNER not found"
+ echo
+ usage
+fi
+
+if [ ! -f "$BINDIR/test-list.txt" ]; then
+ echo "$BINDIR doesn't look like a test-binary directory"
+ echo
+ usage
+fi
+
+if [ ! -f "$BLFILE" ]; then
+ echo "$BLFILE not found"
+ echo
+ usage
+fi
+
+STATUS=0
+
+TESTLIST="$("$RUNNER" --list-all "$BINDIR")"
+
+cat "$BLFILE" | while read line; do
+ blentry=$(echo "$line" | sed 's/#.*//' | tr -d '[:space:]')
+ if [ "$blentry" = "" ]; then continue; fi
+
+ if ! (echo "$TESTLIST" | grep -Pq "$blentry") >/dev/null 2>/dev/null; then
+ echo Useless blacklist entry: "$blentry"
+ STATUS=1
+ fi
+done
+
+exit $STATUS