From: "Paul E. McKenney" <paulmck@kernel.org>
To: Willy Tarreau <w@1wt.eu>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>,
linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] selftests/nolibc: add 7 tests for memcmp()
Date: Fri, 21 Oct 2022 08:56:45 -0700 [thread overview]
Message-ID: <20221021155645.GK5600@paulmck-ThinkPad-P17-Gen-1> (raw)
In-Reply-To: <20221021060340.7515-1-w@1wt.eu>
On Fri, Oct 21, 2022 at 08:03:40AM +0200, Willy Tarreau wrote:
> This adds 7 combinations of input values for memcmp() using signed and
> unsigned bytes, which will trigger on the original code before Rasmus'
> fix. This is mostly aimed at helping backporters verify their work, and
> showing how tests for corner cases can be added to the selftests suite.
>
> Before the fix it reports:
> 12 memcmp_20_20 = 0 [OK]
> 13 memcmp_20_60 = -64 [OK]
> 14 memcmp_60_20 = 64 [OK]
> 15 memcmp_20_e0 = 64 [FAIL]
> 16 memcmp_e0_20 = -64 [FAIL]
> 17 memcmp_80_e0 = -96 [OK]
> 18 memcmp_e0_80 = 96 [OK]
>
> And after:
> 12 memcmp_20_20 = 0 [OK]
> 13 memcmp_20_60 = -64 [OK]
> 14 memcmp_60_20 = 64 [OK]
> 15 memcmp_20_e0 = -192 [OK]
> 16 memcmp_e0_20 = 192 [OK]
> 17 memcmp_80_e0 = -96 [OK]
> 18 memcmp_e0_80 = 96 [OK]
>
> Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
> Signed-off-by: Willy Tarreau <w@1wt.eu>
I have pulled both of these in, thank you!
One thing, though... I had to do "make clean" in both tools/include/nolibc
and tools/testing/selftests/nolibc to make those two "[FAIL]" indications
go away. Does this mean that I am doing something wrong?
It would be good to know before I send the pull request containing these,
so that we can let Linus know of anything special he needs to do to
ensure a valid test result.
Thanx, Paul
> ---
> tools/testing/selftests/nolibc/nolibc-test.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/tools/testing/selftests/nolibc/nolibc-test.c b/tools/testing/selftests/nolibc/nolibc-test.c
> index 78bced95ac63..f14f5076fb6d 100644
> --- a/tools/testing/selftests/nolibc/nolibc-test.c
> +++ b/tools/testing/selftests/nolibc/nolibc-test.c
> @@ -565,6 +565,13 @@ int run_stdlib(int min, int max)
> CASE_TEST(strchr_foobar_z); EXPECT_STRZR(1, strchr("foobar", 'z')); break;
> CASE_TEST(strrchr_foobar_o); EXPECT_STREQ(1, strrchr("foobar", 'o'), "obar"); break;
> CASE_TEST(strrchr_foobar_z); EXPECT_STRZR(1, strrchr("foobar", 'z')); break;
> + CASE_TEST(memcmp_20_20); EXPECT_EQ(1, memcmp("aaa\x20", "aaa\x20", 4), 0); break;
> + CASE_TEST(memcmp_20_60); EXPECT_LT(1, memcmp("aaa\x20", "aaa\x60", 4), 0); break;
> + CASE_TEST(memcmp_60_20); EXPECT_GT(1, memcmp("aaa\x60", "aaa\x20", 4), 0); break;
> + CASE_TEST(memcmp_20_e0); EXPECT_LT(1, memcmp("aaa\x20", "aaa\xe0", 4), 0); break;
> + CASE_TEST(memcmp_e0_20); EXPECT_GT(1, memcmp("aaa\xe0", "aaa\x20", 4), 0); break;
> + CASE_TEST(memcmp_80_e0); EXPECT_LT(1, memcmp("aaa\x80", "aaa\xe0", 4), 0); break;
> + CASE_TEST(memcmp_e0_80); EXPECT_GT(1, memcmp("aaa\xe0", "aaa\x80", 4), 0); break;
> case __LINE__:
> return ret; /* must be last */
> /* note: do not set any defaults so as to permit holes above */
> --
> 2.17.5
>
next prev parent reply other threads:[~2022-10-21 15:57 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-21 6:03 [PATCH] selftests/nolibc: add 7 tests for memcmp() Willy Tarreau
2022-10-21 15:56 ` Paul E. McKenney [this message]
2022-10-21 17:01 ` Willy Tarreau
2022-10-21 17:07 ` Paul E. McKenney
2022-10-21 17:20 ` Willy Tarreau
2022-10-21 18:00 ` Paul E. McKenney
2022-10-22 11:22 ` Willy Tarreau
2022-10-24 15:53 ` Paul E. McKenney
2022-10-26 5:39 ` Willy Tarreau
2022-10-26 9:08 ` Rasmus Villemoes
2022-10-26 19:52 ` Willy Tarreau
2022-10-27 9:09 ` Rasmus Villemoes
2022-10-27 17:20 ` Willy Tarreau
2022-10-26 13:57 ` Paul E. McKenney
2022-10-26 14:17 ` Willy Tarreau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221021155645.GK5600@paulmck-ThinkPad-P17-Gen-1 \
--to=paulmck@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=w@1wt.eu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).