summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShu Anzai <shu17az@gmail.com>2025-12-24 07:21:59 +0300
committerAndrew Morton <akpm@linux-foundation.org>2026-01-21 06:24:53 +0300
commit2caf45764a4fdb5d35524e364c963bb9e2d07fce (patch)
treef1809fa787589cdfccc7c30dc87a49598d8bf2a3
parent65a17a3e609f63c7ea2887096dc232a6c05d02a2 (diff)
downloadlinux-2caf45764a4fdb5d35524e364c963bb9e2d07fce.tar.xz
mm/damon/tests/core-kunit: add test cases for multiple regions in damon_test_split_regions_of()
Extend damon_test_split_regions_of() to verify that it correctly handles multiple regions with various 'min_sz_region'. [sj@kernel.org: remove braces in damon_test_split_regions_of()] Link: https://lkml.kernel.org/r/20251224153125.69194-1-sj@kernel.org Link: https://lkml.kernel.org/r/20251224042200.2061847-5-shu17az@gmail.com Signed-off-by: Shu Anzai <shu17az@gmail.com> Reviewed-by: SeongJae Park <sj@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r--mm/damon/tests/core-kunit.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/mm/damon/tests/core-kunit.h b/mm/damon/tests/core-kunit.h
index 2eb6f41635a8..252ce3e001c8 100644
--- a/mm/damon/tests/core-kunit.h
+++ b/mm/damon/tests/core-kunit.h
@@ -275,6 +275,9 @@ static void damon_test_split_regions_of(struct kunit *test)
{
struct damon_target *t;
struct damon_region *r;
+ unsigned long sa[] = {0, 300, 500};
+ unsigned long ea[] = {220, 400, 700};
+ int i;
t = damon_new_target();
if (!t)
@@ -301,6 +304,23 @@ static void damon_test_split_regions_of(struct kunit *test)
damon_split_regions_of(t, 4, 1);
KUNIT_EXPECT_LE(test, damon_nr_regions(t), 4u);
damon_free_target(t);
+
+ t = damon_new_target();
+ if (!t)
+ kunit_skip(test, "third target alloc fail");
+ for (i = 0; i < ARRAY_SIZE(sa); i++) {
+ r = damon_new_region(sa[i], ea[i]);
+ if (!r) {
+ damon_free_target(t);
+ kunit_skip(test, "region alloc fail");
+ }
+ damon_add_region(r, t);
+ }
+ damon_split_regions_of(t, 4, 5);
+ KUNIT_EXPECT_LE(test, damon_nr_regions(t), 12u);
+ damon_for_each_region(r, t)
+ KUNIT_EXPECT_GE(test, damon_sz_region(r) % 5ul, 0ul);
+ damon_free_target(t);
}
static void damon_test_ops_registration(struct kunit *test)