From: Matthias Kretz <kr...@kde.org>

Handle overly large output by aborting the log and thus the test. This
is a similar condition to a timeout.

libstdc++-v3/ChangeLog:
        * testsuite/experimental/simd/driver.sh: When handling the pipe
        to log (and on verbose to stdout) count the lines. If it exceeds
        1000 log the issue and exit 125, which is then handled as a
        failure.
---
 .../testsuite/experimental/simd/driver.sh       | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/libstdc++-v3/testsuite/experimental/simd/driver.sh b/libstdc++-
v3/testsuite/experimental/simd/driver.sh
index 314c6a16f86..719e4db8e68 100755
--- a/libstdc++-v3/testsuite/experimental/simd/driver.sh
+++ b/libstdc++-v3/testsuite/experimental/simd/driver.sh
@@ -258,7 +258,11 @@ BEGIN { count = 0 }
 /^###exitstatus### [0-9]+$/ { exit \$2 }
 {
   print >> \"$log\"
-  if (count >= 1000) next
+  if (count >= 1000) {
+    print \"Aborting: too much output\" >> \"$log\"
+    print \"Aborting: too much output\"
+    exit 125
+  }
   ++count
   if (length(\$0) > $maxcol) {
     i = 1
@@ -282,8 +286,17 @@ END { close(\"$log\") }
 "
   else
     awk "
+BEGIN { count = 0 }
 /^###exitstatus### [0-9]+$/ { exit \$2 }
-{ print >> \"$log\" }
+{
+  print >> \"$log\"
+  if (count >= 1000) {
+    print \"Aborting: too much output\" >> \"$log\"
+    print \"Aborting: too much output\"
+    exit 125
+  }
+  ++count
+}
 END { close(\"$log\") }
 "
   fi
-- 
──────────────────────────────────────────────────────────────────────────
 Dr. Matthias Kretz                           https://mattkretz.github.io
 GSI Helmholtz Centre for Heavy Ion Research               https://gsi.de
 std::experimental::simd              https://github.com/VcDevel/std-simd
──────────────────────────────────────────────────────────────────────────

Reply via email to