diff mbox series

[RESEND,v2] list: test: Mending tests for list_cut_position()

Message ID 20240910043531.71343-1-richard120310@gmail.com (mailing list archive)
State New
Headers show
Series [RESEND,v2] list: test: Mending tests for list_cut_position() | expand

Commit Message

I Hsin Cheng Sept. 10, 2024, 4:35 a.m. UTC
Mending test for list_cut_position*() for the missing check of integer
"i" after the second loop. The variable should be checked for second
time to make sure both lists after the cut operation are formed as
expected.

Signed-off-by: I Hsin Cheng <richard120310@gmail.com>
---
 lib/list-test.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

David Gow Sept. 18, 2024, 7:02 a.m. UTC | #1
On Tue, 10 Sept 2024 at 12:35, I Hsin Cheng <richard120310@gmail.com> wrote:
>
> Mending test for list_cut_position*() for the missing check of integer
> "i" after the second loop. The variable should be checked for second
> time to make sure both lists after the cut operation are formed as
> expected.
>
> Signed-off-by: I Hsin Cheng <richard120310@gmail.com>
> ---

Alas, this breaks the list test, as we're comparing the entries we get
from list_for_each() with entries[i], so changing the value of 'i'
will compare against the wrong elements.

You could either update the KUNIT_EXPECT_EQ at the bottom to verify
the _total_ number of elements (which should be fine, as we already
verify the value of i after the first loop), or compare each entry
against, e.g., &entries[2 + i].

This is causing a test failure on -next:
https://lore.kernel.org/all/202409161554.6c3e8d5d-oliver.sang@intel.com/

Could we remove this from mm-nonmm pending a fix?

Cheers,
-- David

>  lib/list-test.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/lib/list-test.c b/lib/list-test.c
> index 37cbc33e9fdb..8d1d47a9fe9e 100644
> --- a/lib/list-test.c
> +++ b/lib/list-test.c
> @@ -404,10 +404,13 @@ static void list_test_list_cut_position(struct kunit *test)
>
>         KUNIT_EXPECT_EQ(test, i, 2);
>
> +       i = 0;
>         list_for_each(cur, &list1) {
>                 KUNIT_EXPECT_PTR_EQ(test, cur, &entries[i]);

Either change this to &entries[2 + i], or...

>                 i++;
>         }
> +
> +       KUNIT_EXPECT_EQ(test, i, 1);

This to expect i == 3

>  }
>
>  static void list_test_list_cut_before(struct kunit *test)
> @@ -432,10 +435,13 @@ static void list_test_list_cut_before(struct kunit *test)
>
>         KUNIT_EXPECT_EQ(test, i, 1);
>
> +       i = 0;
>         list_for_each(cur, &list1) {
>                 KUNIT_EXPECT_PTR_EQ(test, cur, &entries[i]);

Either change this to &entries[1 + i], or...

>                 i++;
>         }
> +
> +       KUNIT_EXPECT_EQ(test, i, 2);

This to expect i == 3.

>  }
>
>  static void list_test_list_splice(struct kunit *test)
> --
> 2.43.0
>
diff mbox series

Patch

diff --git a/lib/list-test.c b/lib/list-test.c
index 37cbc33e9fdb..8d1d47a9fe9e 100644
--- a/lib/list-test.c
+++ b/lib/list-test.c
@@ -404,10 +404,13 @@  static void list_test_list_cut_position(struct kunit *test)
 
 	KUNIT_EXPECT_EQ(test, i, 2);
 
+	i = 0;
 	list_for_each(cur, &list1) {
 		KUNIT_EXPECT_PTR_EQ(test, cur, &entries[i]);
 		i++;
 	}
+
+	KUNIT_EXPECT_EQ(test, i, 1);
 }
 
 static void list_test_list_cut_before(struct kunit *test)
@@ -432,10 +435,13 @@  static void list_test_list_cut_before(struct kunit *test)
 
 	KUNIT_EXPECT_EQ(test, i, 1);
 
+	i = 0;
 	list_for_each(cur, &list1) {
 		KUNIT_EXPECT_PTR_EQ(test, cur, &entries[i]);
 		i++;
 	}
+
+	KUNIT_EXPECT_EQ(test, i, 2);
 }
 
 static void list_test_list_splice(struct kunit *test)