Message ID | 20231227192932.2375810-1-goldstein.w.n@gmail.com |
---|---|
State | New |
Headers | show |
Series | string: Add additional output in test-strchr failure | expand |
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.
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