summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeongJae Park <sj@kernel.org>2026-03-07 22:53:50 +0300
committerAndrew Morton <akpm@linux-foundation.org>2026-04-05 23:53:22 +0300
commitfd83b0d1c49b7e52bdcd8704df04fdbae0c24194 (patch)
treeb01d67dd79b65c4c4e0bf2213ce094a602f92d39
parent5d6a520aff230c78df202a90429bc6fce2a11791 (diff)
downloadlinux-fd83b0d1c49b7e52bdcd8704df04fdbae0c24194.tar.xz
mm/damon/tests/core-kunit: add a test for damon_is_last_region()
There was a bug [1] in damon_is_last_region(). Add a kunit test to not reintroduce the bug. Link: https://lkml.kernel.org/r/20260307195356.203753-3-sj@kernel.org Link: https://lore.kernel.org/20260114152049.99727-1-sj@kernel.org/ [1] Signed-off-by: SeongJae Park <sj@kernel.org> Tested-by: wang lian <lianux.mm@gmail.com> Reviewed-by: wang lian <lianux.mm@gmail.com> Cc: Brendan Higgins <brendan.higgins@linux.dev> Cc: David Gow <davidgow@google.com> Cc: David Hildenbrand <david@kernel.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Liam Howlett <liam.howlett@oracle.com> Cc: Lorenzo Stoakes (Oracle) <ljs@kernel.org> Cc: Michal Hocko <mhocko@suse.com> Cc: Mike Rapoport <rppt@kernel.org> Cc: Shuah Khan <skhan@linuxfoundation.org> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Vlastimil Babka <vbabka@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r--mm/damon/tests/core-kunit.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/mm/damon/tests/core-kunit.h b/mm/damon/tests/core-kunit.h
index 2289f9e4610c..e86d4f4fe261 100644
--- a/mm/damon/tests/core-kunit.h
+++ b/mm/damon/tests/core-kunit.h
@@ -1311,6 +1311,28 @@ static void damon_test_apply_min_nr_regions(struct kunit *test)
damon_test_apply_min_nr_regions_for(test, 10, 2, 10, 2, 5);
}
+static void damon_test_is_last_region(struct kunit *test)
+{
+ struct damon_region *r;
+ struct damon_target *t;
+ int i;
+
+ t = damon_new_target();
+ if (!t)
+ kunit_skip(test, "target alloc fail\n");
+
+ for (i = 0; i < 4; i++) {
+ r = damon_new_region(i * 2, (i + 1) * 2);
+ if (!r) {
+ damon_free_target(t);
+ kunit_skip(test, "region alloc %d fail\n", i);
+ }
+ damon_add_region(r, t);
+ KUNIT_EXPECT_TRUE(test, damon_is_last_region(r, t));
+ }
+ damon_free_target(t);
+}
+
static struct kunit_case damon_test_cases[] = {
KUNIT_CASE(damon_test_target),
KUNIT_CASE(damon_test_regions),
@@ -1339,6 +1361,7 @@ static struct kunit_case damon_test_cases[] = {
KUNIT_CASE(damon_test_feed_loop_next_input),
KUNIT_CASE(damon_test_set_filters_default_reject),
KUNIT_CASE(damon_test_apply_min_nr_regions),
+ KUNIT_CASE(damon_test_is_last_region),
{},
};