string: Add additional output in test-strchr failure

Message ID 20231227192932.2375810-1-goldstein.w.n@gmail.com
State Committed
Commit 4b00532e51e40e2a85eba65ed817234b7bd741d9
Headers
Series string: Add additional output in test-strchr failure |

Checks

Context Check Description
redhat-pt-bot/TryBot-apply_patch success Patch applied to master at the time it was sent
redhat-pt-bot/TryBot-32bit success Build for i686
linaro-tcwg-bot/tcwg_glibc_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_glibc_check--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_glibc_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_glibc_check--master-arm success Testing passed

Commit Message

Noah Goldstein Dec. 27, 2023, 7:29 p.m. UTC
  Seeing occasional failures in `__strchrnul_evex512` that are not
consistently reproducible. Hopefully by adding this the next failure
will provide enough information to debug.
---
 string/test-strchr.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)
  

Comments

H.J. Lu Dec. 27, 2023, 7:32 p.m. UTC | #1
On Wed, Dec 27, 2023 at 11:29 AM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
>
> Seeing occasional failures in `__strchrnul_evex512` that are not
> consistently reproducible. Hopefully by adding this the next failure
> will provide enough information to debug.
> ---
>  string/test-strchr.c | 17 ++++++++++++-----
>  1 file changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/string/test-strchr.c b/string/test-strchr.c
> index 933fc0bbba..e6bae76962 100644
> --- a/string/test-strchr.c
> +++ b/string/test-strchr.c
> @@ -111,7 +111,7 @@ check_result (impl_t *impl, const CHAR *s, int c, const CHAR *exp_res)
>    CHAR *res = CALL (impl, s, c);
>    if (res != exp_res)
>      {
> -      error (0, 0, "Wrong result in function %s %#x %p %p", impl->name,
> +      error (0, 0, "Wrong result in function %s(%p) %#x %p %p", impl->name, s,
>              c, res, exp_res);
>        ret = 1;
>        return -1;
> @@ -119,11 +119,10 @@ check_result (impl_t *impl, const CHAR *s, int c, const CHAR *exp_res)
>    return 0;
>  }
>
> -static void
> +static int
>  do_one_test (impl_t *impl, const CHAR *s, int c, const CHAR *exp_res)
>  {
> -  if (check_result (impl, s, c, exp_res) < 0)
> -    return;
> +  return check_result (impl, s, c, exp_res);
>  }
>
>  static void
> @@ -160,7 +159,15 @@ do_test (size_t align, size_t pos, size_t len, int seek_char, int max_char)
>      result = NULLRET (buf + align + len);
>
>    FOR_EACH_IMPL (impl, 0)
> -    do_one_test (impl, buf + align, seek_char, result);
> +    {
> +      if (do_one_test (impl, buf + align, seek_char, result) != 0)
> +       {
> +         error (0, 0,
> +                "\tAlign=%zu, Pos=%zu, Len=%zu, seek=%d, max_char=%d, "
> +                "Buf=%p, Res=%p",
> +                align, pos, len, seek_char, max_char, buf, result);
> +       }
> +    }
>  }
>
>  static void
> --
> 2.34.1
>

LGTM.

Thanks.
  

Patch

diff --git a/string/test-strchr.c b/string/test-strchr.c
index 933fc0bbba..e6bae76962 100644
--- a/string/test-strchr.c
+++ b/string/test-strchr.c
@@ -111,7 +111,7 @@  check_result (impl_t *impl, const CHAR *s, int c, const CHAR *exp_res)
   CHAR *res = CALL (impl, s, c);
   if (res != exp_res)
     {
-      error (0, 0, "Wrong result in function %s %#x %p %p", impl->name,
+      error (0, 0, "Wrong result in function %s(%p) %#x %p %p", impl->name, s,
 	     c, res, exp_res);
       ret = 1;
       return -1;
@@ -119,11 +119,10 @@  check_result (impl_t *impl, const CHAR *s, int c, const CHAR *exp_res)
   return 0;
 }
 
-static void
+static int
 do_one_test (impl_t *impl, const CHAR *s, int c, const CHAR *exp_res)
 {
-  if (check_result (impl, s, c, exp_res) < 0)
-    return;
+  return check_result (impl, s, c, exp_res);
 }
 
 static void
@@ -160,7 +159,15 @@  do_test (size_t align, size_t pos, size_t len, int seek_char, int max_char)
     result = NULLRET (buf + align + len);
 
   FOR_EACH_IMPL (impl, 0)
-    do_one_test (impl, buf + align, seek_char, result);
+    {
+      if (do_one_test (impl, buf + align, seek_char, result) != 0)
+	{
+	  error (0, 0,
+		 "\tAlign=%zu, Pos=%zu, Len=%zu, seek=%d, max_char=%d, "
+		 "Buf=%p, Res=%p",
+		 align, pos, len, seek_char, max_char, buf, result);
+	}
+    }
 }
 
 static void