Re: [PATCH 2/3] list: test: Add a test for hlist_cut_number()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux