]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
support: Add support_record_failure_barrier
authorFlorian Weimer <fweimer@redhat.com>
Mon, 23 Dec 2024 12:57:55 +0000 (13:57 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Tue, 20 May 2025 18:45:02 +0000 (20:45 +0200)
This can be used to stop execution after a TEST_COMPARE_BLOB
failure, for example.

(cherry picked from commit d0b8aa6de4529231fadfe604ac2c434e559c2d9e)

support/check.h
support/support_record_failure.c

index 43f4208a0a40f64cc65eeff01c867dfc66138057..dac6f04b562210c1cfb105015489c0f8d7e8c85d 100644 (file)
@@ -207,6 +207,9 @@ void support_record_failure_reset (void);
    failures or not.  */
 int support_record_failure_is_failed (void);
 
+/* Terminate the process if any failures have been encountered so far.  */
+void support_record_failure_barrier (void);
+
 __END_DECLS
 
 #endif /* SUPPORT_CHECK_H */
index 7e57fe97fb7f40b0d201686c1ab2bb42d8e0dc72..b00387ff8051bc443c045fbb2c0e1b74e82d39b6 100644 (file)
@@ -112,3 +112,13 @@ support_record_failure_is_failed (void)
      synchronization for reliable test error reporting anyway.  */
   return __atomic_load_n (&state->failed, __ATOMIC_RELAXED);
 }
+
+void
+support_record_failure_barrier (void)
+{
+  if (__atomic_load_n (&state->failed, __ATOMIC_RELAXED))
+    {
+      puts ("error: exiting due to previous errors");
+      exit (1);
+    }
+}