lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ