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 | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/contrib/compare_tests b/contrib/compare_tests
index 152957bc324..8efd15e903f 100755
--- a/contrib/compare_tests
+++ b/contrib/compare_tests
@@ -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
--
2.34.1