For example when running with more parallel jobs make check may detect
testsuite compilation errors and report them to stderr but will still
return a 0 exit code:

  # make check TESTSUITEFLAGS="336-338 -j2"
  ...
  ## ------------------------ ##
  ## ovn 26.09.90 test suite. ##
  ## ------------------------ ##

  at-groups/337/test-source: line 12: syntax error near unexpected token `|'
  at-groups/337/test-source: line 12: `    test "x$(echo foobar | | grep 
"Status")" = "xStatus: paused"'
  336: IGMP relay - distributed gateway port -- parallelization=yes -- 
ovn_monitor_all=no ok
  338: MLD snoop/querier/relay -- parallelization=yes -- ovn_monitor_all=yes ok

  ## ------------- ##
  ## Test results. ##
  ## ------------- ##

  All 2 tests were successful.

Check the testsuite stderr output for test related output.
Note: some of the tools used during "make check" also write to stderr
(e.g., ovs-pki) so in order to avoid false positives just grep for lines
related to the tests/testsuite.dir directory.

Spotted during an unrelated review:
https://mail.openvswitch.org/pipermail/ovs-dev/2026-September/435956.html

Signed-off-by: Dumitru Ceara <[email protected]>
---
 .ci/linux-build.sh | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 905c1e793a..10c935771f 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -144,15 +144,26 @@ function execute_dist_tests()
 
 function run_tests()
 {
+    local errf="tests/testsuite.stderr"
+
     if ! timeout -k 5m -v $TIMEOUT make check \
         CFLAGS="${COMMON_CFLAGS} ${OVN_CFLAGS}" $JOBS \
         TESTSUITEFLAGS="$JOBS $TEST_RANGE" RECHECK=$RECHECK \
-        SKIP_UNSTABLE=$SKIP_UNSTABLE
+        SKIP_UNSTABLE=$SKIP_UNSTABLE 2> $errf
     then
         # testsuite.log is necessary for debugging.
         cat tests/testsuite.log
         return 1
     fi
+
+    if grep -q 'tests/testsuite.dir' $errf; then
+        # Exit early in case testsuite compilation errors have been detected.
+        # In order to make these errors as visible as possible, we don't
+        # return and instead we exit directly.
+        echo "Potential test compilation errors in stderr output"
+        cat $errf
+        exit 1
+    fi
 }
 
 function execute_tests()
-- 
2.55.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to