Message ID | 20240910043531.71343-1-richard120310@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | e620799c414a035dea1208bcb51c869744931dbb |
Headers | show |
Series | [RESEND,v2] list: test: Mending tests for list_cut_position() | expand |
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 --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)
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(+)