]> sourceware.org Git - glibc.git/commitdiff
support: Report errno constants in TEST_COMPARE failures
authorFlorian Weimer <fweimer@redhat.com>
Thu, 22 Aug 2024 14:14:17 +0000 (16:14 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Mon, 26 Aug 2024 14:46:45 +0000 (16:46 +0200)
If the expression is errno, decode it as an errno constant
using strerrorname_np.

Reviewed-by: Arjun Shankar <arjun@redhat.com>
support/support_test_compare_failure.c

index ae73d200cda81ea97e6e2166b32a78234f3d0e6c..dba79e413feffec5b5c45d811556480f4081288f 100644 (file)
@@ -17,7 +17,9 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include <errno.h>
+#include <limits.h>
 #include <stdio.h>
+#include <string.h>
 #include <support/check.h>
 
 static void
@@ -31,7 +33,14 @@ report (const char *which, const char *expr, long long value, int positive,
     printf ("%lld", value);
   unsigned long long mask
     = (~0ULL) >> (8 * (sizeof (unsigned long long) - size));
-  printf (" (0x%llx); from: %s\n", (unsigned long long) value & mask, expr);
+  const char *errno_constant = NULL;
+  if (strcmp (expr, "errno") == 0
+      && positive && (unsigned long long int) value <= INT_MAX)
+    errno_constant = strerrorname_np (value);
+  printf (" (0x%llx", (unsigned long long) value & mask);
+  if (errno_constant != NULL)
+    printf (", %s", errno_constant);
+  printf ("); from: %s\n", expr);
 }
 
 void
This page took 0.041459 seconds and 5 git commands to generate.