[PATCH] mm/damon/tests/core-kunit: improve nr_samples_per_aggr test isolation
From: Kunwu Chan
Date: Tue Sep 08 2026 - 02:57:06 EST
The damon_nr_samples_per_aggr() test sets both intervals to zero,
which exercises two different fallback paths at once.
Use separate compound initializers for each case so that each case
tests one fallback path independently. Also make the overflow case
use an explicit non-zero sample interval so that it does not depend
on the zero sample interval fallback.
Signed-off-by: Kunwu Chan <kunwu.chan@xxxxxxxxx>
---
mm/damon/tests/core-kunit.h | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/mm/damon/tests/core-kunit.h b/mm/damon/tests/core-kunit.h
index c01e6a75cad..ff23208c181 100644
--- a/mm/damon/tests/core-kunit.h
+++ b/mm/damon/tests/core-kunit.h
@@ -627,12 +627,20 @@ static void damon_test_set_regions(struct kunit *test)
static void damon_test_nr_samples_per_aggr(struct kunit *test)
{
- struct damon_attrs attrs = {
+ struct damon_attrs attrs;
+
+ /* Zero sample interval is treated as one. */
+ attrs = (struct damon_attrs){
.sample_interval = 0,
- .aggr_interval = 0,
+ .aggr_interval = 5000,
};
+ KUNIT_EXPECT_EQ(test, damon_nr_samples_per_aggr(&attrs), 5000);
- /* Zero aggregation interval doesn't cause division by zero */
+ /* Zero samples per aggregation is treated as one. */
+ attrs = (struct damon_attrs){
+ .sample_interval = 5000,
+ .aggr_interval = 0,
+ };
KUNIT_EXPECT_EQ(test, damon_nr_samples_per_aggr(&attrs), 1);
/*
@@ -640,7 +648,10 @@ static void damon_test_nr_samples_per_aggr(struct kunit *test)
* overflow
*/
if (ULONG_MAX > UINT_MAX) {
- attrs.aggr_interval = (unsigned long)UINT_MAX + 1;
+ attrs = (struct damon_attrs){
+ .sample_interval = 1,
+ .aggr_interval = (unsigned long)UINT_MAX + 1,
+ };
KUNIT_EXPECT_EQ(test, damon_nr_samples_per_aggr(&attrs),
UINT_MAX);
}
base-commit: d118502628f8b673be9023db8bdf878f64a7ed45
--
2.43.0