[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CABVgOSm6taiZpoeTz3Rry-ZU3bY-vS7FtCH98-O+pHMn9jcgzQ@mail.gmail.com>
Date: Sat, 7 Sep 2024 14:49:58 +0800
From: David Gow <davidgow@...gle.com>
To: Zhen Lei <thunder.leizhen@...wei.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>, Thomas Gleixner <tglx@...utronix.de>,
linux-kernel@...r.kernel.org, linux-kselftest@...r.kernel.org,
kunit-dev@...glegroups.com
Subject: Re: [PATCH 2/3] list: test: Add a test for hlist_cut_number()
On Wed, 4 Sept 2024 at 21:43, 'Zhen Lei' via KUnit Development
<kunit-dev@...glegroups.com> wrote:
>
> Test cases cover all possible situations:
> 1. The cut number is invalid: zero or negative
> 2. Partially cut.
> 3. Cut all.
> 4. The cut number is greater than the number of nodes in the old list.
> 5. The old list is empty.
>
> Signed-off-by: Zhen Lei <thunder.leizhen@...wei.com>
> ---
Thanks very much for the detailed test. It's great to see these kept up-to-date!
Reviewed-by: David Gow <davidgow@...gle.com>
Cheers,
-- David
> lib/list-test.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 51 insertions(+)
>
> diff --git a/lib/list-test.c b/lib/list-test.c
> index 37cbc33e9fdb380..3c60a6458545452 100644
> --- a/lib/list-test.c
> +++ b/lib/list-test.c
> @@ -1172,6 +1172,56 @@ static void hlist_test_for_each_entry_safe(struct kunit *test)
> KUNIT_EXPECT_TRUE(test, hlist_empty(&list));
> }
>
> +static void hlist_test_cut_number(struct kunit *test)
> +{
> + struct hlist_node a[4], *last;
> + HLIST_HEAD(old);
> + HLIST_HEAD(new);
> + int cnt;
> +
> + hlist_add_head(&a[3], &old);
> + hlist_add_head(&a[2], &old);
> + hlist_add_head(&a[1], &old);
> + hlist_add_head(&a[0], &old);
> +
> + /* The cut number is less than 0 or zero */
> + cnt = hlist_cut_number(&new, &old, -1, &last);
> + KUNIT_EXPECT_EQ(test, cnt, 0);
> + KUNIT_EXPECT_EQ(test, hlist_count_nodes(&old), 4);
> + cnt = hlist_cut_number(&new, &old, 0, &last);
> + KUNIT_EXPECT_EQ(test, cnt, 0);
> + KUNIT_EXPECT_EQ(test, hlist_count_nodes(&old), 4);
> +
> + /* The cut number is less than the number of nodes in the old list. */
> + cnt = hlist_cut_number(&new, &old, 2, &last);
> + KUNIT_EXPECT_EQ(test, cnt, 2);
> + KUNIT_EXPECT_EQ(test, hlist_count_nodes(&old), 2);
> + KUNIT_EXPECT_EQ(test, hlist_count_nodes(&new), 2);
> + KUNIT_EXPECT_PTR_EQ(test, last, &a[1]);
> + hlist_splice_init(&new, last, &old);
> +
> + /* The cut number is equal to the number of nodes in the old list. */
> + cnt = hlist_cut_number(&new, &old, 4, &last);
> + KUNIT_EXPECT_EQ(test, cnt, 4);
> + KUNIT_EXPECT_TRUE(test, hlist_empty(&old));
> + KUNIT_EXPECT_EQ(test, hlist_count_nodes(&new), 4);
> + KUNIT_EXPECT_PTR_EQ(test, last, &a[3]);
> + hlist_splice_init(&new, last, &old);
> +
> + /* The cut number is greater than the number of nodes in the old list. */
> + cnt = hlist_cut_number(&new, &old, 5, &last);
> + KUNIT_EXPECT_EQ(test, cnt, 4);
> + KUNIT_EXPECT_TRUE(test, hlist_empty(&old));
> + KUNIT_EXPECT_EQ(test, hlist_count_nodes(&new), 4);
> + KUNIT_EXPECT_PTR_EQ(test, last, &a[3]);
> +
> + /* The old list is empty. */
> + cnt = hlist_cut_number(&new, &old, 1, &last);
> + KUNIT_EXPECT_EQ(test, cnt, 0);
> + KUNIT_EXPECT_TRUE(test, hlist_empty(&old));
> + KUNIT_EXPECT_TRUE(test, hlist_empty(&new));
> +}
> +
>
> static struct kunit_case hlist_test_cases[] = {
> KUNIT_CASE(hlist_test_init),
> @@ -1192,6 +1242,7 @@ static struct kunit_case hlist_test_cases[] = {
> KUNIT_CASE(hlist_test_for_each_entry_continue),
> KUNIT_CASE(hlist_test_for_each_entry_from),
> KUNIT_CASE(hlist_test_for_each_entry_safe),
> + KUNIT_CASE(hlist_test_cut_number),
> {},
> };
>
> --
> 2.34.1
>
> --
> You received this message because you are subscribed to the Google Groups "KUnit Development" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to kunit-dev+unsubscribe@...glegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/kunit-dev/20240904134152.2141-3-thunder.leizhen%40huawei.com.
Download attachment "smime.p7s" of type "application/pkcs7-signature" (5294 bytes)
Powered by blists - more mailing lists