aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliushuyu <liushuyu011@gmail.com>2022-04-22 16:34:20 -0600
committerliushuyu <liushuyu011@gmail.com>2022-04-25 16:08:24 -0600
commit461bf1369fa0bb1c411ecdf649dbbe62f86d0070 (patch)
tree4b64331b2a827658d1c487a60b21f36caea5672f
parentb74044fb6278e373da607a8f1f5df2193ce27d65 (diff)
downloadgcc-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.pl25
-rw-r--r--.github/workflows/ccpp.yml13
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; \