diff options
author | liushuyu <liushuyu011@gmail.com> | 2022-04-22 16:34:20 -0600 |
---|---|---|
committer | liushuyu <liushuyu011@gmail.com> | 2022-04-25 16:08:24 -0600 |
commit | 461bf1369fa0bb1c411ecdf649dbbe62f86d0070 (patch) | |
tree | 4b64331b2a827658d1c487a60b21f36caea5672f | |
parent | b74044fb6278e373da607a8f1f5df2193ce27d65 (diff) | |
download | gcc-461bf1369fa0bb1c411ecdf649dbbe62f86d0070.zip gcc-461bf1369fa0bb1c411ecdf649dbbe62f86d0070.tar.gz gcc-461bf1369fa0bb1c411ecdf649dbbe62f86d0070.tar.bz2 |
CI: catch malformed test cases
Signed-off-by: Zixing Liu <liushuyu011@gmail.com>
-rwxr-xr-x | .github/emit_test_errors.pl | 25 | ||||
-rw-r--r-- | .github/workflows/ccpp.yml | 13 |
2 files changed, 32 insertions, 6 deletions
diff --git a/.github/emit_test_errors.pl b/.github/emit_test_errors.pl new file mode 100755 index 0000000..cf8c3ad --- /dev/null +++ b/.github/emit_test_errors.pl @@ -0,0 +1,25 @@ +#!/bin/perl -n + +sub analyze_errors() { + /^(FAIL|ERROR|XPASS):\s([^:\s]+):?\s+(.+)/; + + my $type = $1; + my $filename = $2; + my $message = $3; + my $line; + + if ( !$type ) { return; } + + if ( $message =~ /(at line (\d+))?.+(test for \w+, line (\d+))/g ) { + $line = $2 || $4; + } + + my $command = "::error file=gcc/testsuite/$filename"; + if ($line) { + $command = "$command,line=$line"; + } + + print "$command,title=Test failure ($type)::$message\n"; +} + +analyze_errors(); diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index 510e07c..6fdfd97 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -77,9 +77,10 @@ jobs: - name: Check regressions run: | cd gccrs-build; \ - if grep -e "unexpected" -e "unresolved" gcc/testsuite/rust/rust.sum;\ + if grep -e "unexpected" -e "unresolved" -e "ERROR:" gcc/testsuite/rust/rust.sum;\ then \ - echo "some tests are not correct"; \ + echo "::error title=Regression test failed::some tests are not correct"; \ + perl -n ../.github/emit_test_errors.pl < gcc/testsuite/rust/rust.sum; \ exit 1; \ else \ exit 0; \ @@ -142,9 +143,9 @@ jobs: - name: Check regressions run: | cd gccrs-build; \ - if grep -e "unexpected" -e "unresolved" gcc/testsuite/rust/rust.sum;\ + if grep -e "unexpected" -e "unresolved" -e "ERROR:" gcc/testsuite/rust/rust.sum;\ then \ - echo "some tests are not correct"; \ + echo "::error title=Regression test failed::some tests are not correct"; \ exit 1; \ else \ exit 0; \ @@ -196,9 +197,9 @@ jobs: - name: Check regressions run: | cd gccrs-build; \ - if grep -e "unexpected" -e "unresolved" gcc/testsuite/rust/rust.sum;\ + if grep -e "unexpected" -e "unresolved" -e "ERROR:" gcc/testsuite/rust/rust.sum;\ then \ - echo "some tests are not correct"; \ + echo "::error title=Regression test failed::some tests are not correct"; \ exit 1; \ else \ exit 0; \ |