]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
compare_tests: Improve non-unique tests report
authorChristophe Lyon <christophe.lyon@linaro.org>
Wed, 10 Sep 2025 09:41:28 +0000 (09:41 +0000)
committerChristophe Lyon <christophe.lyon@linaro.org>
Wed, 10 Sep 2025 12:48:24 +0000 (12:48 +0000)
If the results include several configurations (schedule of
variations), do not report summary lines as duplicates.  Indeed with
several configurations, it's likely that the results contain the same

   # of expected passes            XXXXX

The patch just keeps lines starting with test state prefix to avoid
this problem.

contrib/ChangeLog:

* compare_tests: Improve non-unique tests report when testing
several configurations.

contrib/compare_tests

index 152957bc324764972e0521db3a0ed85627fbe218..8efd15e903f15fd7673b14ed3fe6b522a1e1e1a8 100755 (executable)
@@ -126,10 +126,18 @@ fi
 sort -t ':' $skip1 "$now" > "$now_s"
 sort -t ':' $skip1 "$before" > "$before_s"
 
-# Report non-unique test names, but print the two lists only if they
-# are different.
-sed '/^$/d' "$now_s"    | uniq -cd > "$now_u"
-sed '/^$/d' "$before_s" | uniq -cd > "$before_u"
+# Report non-unique test names and print the diff between the two
+# lists if they are different.
+#
+# If the results include several configurations (schedule of
+# variations), we report duplicates several times with different
+# target/tool prefixes because at this stage we do not know if the
+# target and/or tool prefix was inserted.
+# If we used the input files (so generally several times the same
+# results in one section per target), we would incorreclty detect
+# duplicates (as many as targets)
+grep -E '^(PASS|XPASS|FAIL|XFAIL|UNRESOLVED|UNSUPPORTED|UNTESTED|ERROR):' "$now_s"    | uniq -cd > "$now_u"
+grep -E '^(PASS|XPASS|FAIL|XFAIL|UNRESOLVED|UNSUPPORTED|UNTESTED|ERROR):' "$before_s" | uniq -cd > "$before_u"
 
 same_uniq=" now"
 cmp -s "$before_u" "$now_u" && same_uniq=""
@@ -142,8 +150,8 @@ if [ -s "$now_u" ]; then
 fi
 
 if [ -s "$before_u" -a "x$same_uniq" != "x" ]; then
-    echo "Non-unique test names before: (Eeek!)"
-    cat "$before_u"
+    echo "Changes to non-unique test names:"
+    diff -u "$before_u" "$now_u" | grep -E '^[-\\+] '
     echo
     exit_status=1
 fi