forked from rpms/glibc
48 lines
1.5 KiB
Diff
48 lines
1.5 KiB
Diff
|
From 34e52acd55d69964d14fb3188c5538442b8b32be Mon Sep 17 00:00:00 2001
|
||
|
From: Florian Weimer <fweimer@redhat.com>
|
||
|
Date: Thu, 22 Aug 2024 16:14:17 +0200
|
||
|
Subject: [PATCH] support: Report errno constants in TEST_COMPARE failures
|
||
|
Content-type: text/plain; charset=UTF-8
|
||
|
|
||
|
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 | 11 ++++++++++-
|
||
|
1 file changed, 10 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/support/support_test_compare_failure.c b/support/support_test_compare_failure.c
|
||
|
index ae73d200cd..dba79e413f 100644
|
||
|
--- a/support/support_test_compare_failure.c
|
||
|
+++ b/support/support_test_compare_failure.c
|
||
|
@@ -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
|
||
|
--
|
||
|
2.43.5
|
||
|
|