Re: [PATCH 2/3] list: test: Add a test for hlist_cut_number()
From: David Gow
Date: Sat Sep 07 2024 - 02:50:24 EST
On Wed, 4 Sept 2024 at 21:43, 'Zhen Lei' via KUnit Development
<kunit-dev@xxxxxxxxxxxxxxxx> 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@xxxxxxxxxx>
> ---
Thanks very much for the detailed test. It's great to see these kept up-to-date!
Reviewed-by: David Gow <davidgow@xxxxxxxxxx>
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@xxxxxxxxxxxxxxxx.
> To view this discussion on the web visit https://groups.google.com/d/msgid/kunit-dev/20240904134152.2141-3-thunder.leizhen%40huawei.com.
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature