support: Add support_record_failure_barrier
authorFlorian Weimer <fweimer@redhat.com>
Mon, 23 Dec 2024 12:57:55 +0000 (13:57 +0100)
committerSean Whitton <spwhitton@spwhitton.name>
Tue, 27 May 2025 10:40:04 +0000 (11:40 +0100)
This can be used to stop execution after a TEST_COMPARE_BLOB
failure, for example.

(cherry picked from commit d0b8aa6de4529231fadfe604ac2c434e559c2d9e)

Gbp-Pq: Topic any
Gbp-Pq: Name local-CVE-2025-4802-1.diff

support/check.h
support/support_record_failure.c

index 77d1d1e14da6a497b1dd486b3e5e5a54380f92d5..42ce87db66c0b214dfba787e731f1a1e8c14aecd 100644 (file)
@@ -187,6 +187,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 f766c06236836181f034cc164b5f8897fce1da1d..21b695a8436a22e2a15b60376b88a14f9d4903aa 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);
+    }
+}