]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
compare_tests: distinguish c-c++-common results by tool
authorAlexandre Oliva <oliva@adacore.com>
Wed, 20 Dec 2023 05:31:57 +0000 (02:31 -0300)
committerAlexandre Oliva <oliva@gnu.org>
Thu, 21 Dec 2023 04:02:41 +0000 (01:02 -0300)
When compare_tests compares both C and C++ tests in c-c++-common, they
get the same identifier, so expected differences in results across
languages become undesirably noisy.

This patch adds tool identifiers to tests, so that runs by different
tools are not confused by the compare logic.

It also fixes a bug in reporting differences, that would attempt to
print an undefined fname (the definitions are in subshell loops), and
adjusts the target insertion to match tabs in addition to blanks after
colons.

for  contrib/ChangeLog

* compare_tests: Add tool to test lines.  Match tabs besides
blanks to insert tool and target.  Don't print undefined fname.

contrib/compare_tests

index 2dfa8640756a0b244e47d02b0e6b85f2e1351df9..e09fc4f113a3f096a2d6a7d398062c227a925670 100755 (executable)
@@ -96,7 +96,7 @@ if [ -d "$1" -a -d "$2" ] ; then
        ret=$?
        if [ $ret -ne 0 ]; then
                exit_status=`expr $exit_status + 1`
-               echo "## Differences found: $fname"
+               echo "## Differences found"
        fi
        if [ $exit_status -ne 0 ]; then
                echo "# $exit_status differences in $cmnsums common sum files found"
@@ -108,8 +108,8 @@ elif [ -d "$1" -o -d "$2" ] ; then
        usage "Must specify either two directories or two files"
 fi
 
-sed 's/^XFAIL/FAIL/; s/^ERROR/FAIL/; s/^XPASS/PASS/' < "$1" | awk '/^Running target / {target = $3} { if (target != "unix") { sub(/: /, "&"target": " ); }; print $0; }' | cut -c1-2000 >$tmp1
-sed 's/^XFAIL/FAIL/; s/^ERROR/FAIL/; s/^XPASS/PASS/' < "$2" | awk '/^Running target / {target = $3} { if (target != "unix") { sub(/: /, "&"target": " ); }; print $0; }' | cut -c1-2000 >$tmp2
+sed 's/^XFAIL/FAIL/; s/^ERROR/FAIL/; s/^XPASS/PASS/' < "$1" | awk '/^[  ]*=== [^ ]* tests ===$/ {tool = $2} /^Running target / {target = $3} { if (tool != "") { sub(/:[       ]/, "&"tool": " ); }; if (target != "unix") { sub(/:[   ]/, "&"target": " ); }; print $0; }' | cut -c1-2000 >$tmp1
+sed 's/^XFAIL/FAIL/; s/^ERROR/FAIL/; s/^XPASS/PASS/' < "$2" | awk '/^[  ]*=== [^ ]* tests ===$/ {tool = $2} /^Running target / {target = $3} { if (tool != "") { sub(/:[       ]/, "&"tool": " ); }; if (target != "unix") { sub(/:[   ]/, "&"target": " ); }; print $0; }' | cut -c1-2000 >$tmp2
 
 before=$tmp1
 now=$tmp2