Re: [RFC PATCH 07/10] mm/damon/tests/core-kunit: test damon_nr_samples_per_aggr()
[email protected] Tue, 28 Jul 2026 05:33:44 +0000
| Newsgroups | dev.linux.lists.damon |
|---|---|
| Message-ID | <[email protected]> |
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] The newly added `damon_test_nr_samples_per_aggr` test uses tautological assertions that will always pass, failing to detect the regressions it was intended to prevent. Additionally, the test setup overflows to zero on 32-bit architectures. -- --- Patch [7]: [RFC PATCH 07/10] mm/damon/tests/core-kunit: test damon_nr_samples_per_aggr() --- commit 50a7320dda40ca169bc23924caa1421599f78314 Author: SJ Park <[email protected]> mm/damon/tests/core-kunit: test damon_nr_samples_per_aggr() This commit adds a kunit test for damon_nr_samples_per_aggr() to ensure that extreme interval setups are handled properly without returning zero or random overflowed values. > diff --git a/mm/damon/tests/core-kunit.h b/mm/damon/tests/core-kunit.h > index 3041b8288ec26..511f2856d343c 100644 > --- a/mm/damon/tests/core-kunit.h > +++ b/mm/damon/tests/core-kunit.h [ ... ] > +static void damon_test_nr_samples_per_aggr(struct kunit *test) > +{ > + struct damon_attrs attrs = { > + .sample_interval = 0, > + .aggr_interval = 0, > + }; > + > + /* Zero aggregation interval doesn't cause division by zero */ > + KUNIT_EXPECT_EQ(test, damon_nr_samples_per_aggr(&attrs), 1); > + > + /* Too large aggregation interval doesn't cause overflow */ > + attrs.aggr_interval = (unsigned long)UINT_MAX + 1; [Severity: Medium] On 32-bit systems where unsigned long is 32-bits wide, does this assignment overflow to 0? If it overflows, the test would configure an interval of 0 instead of a value larger than UINT_MAX, failing to test the large-interval scenario. > + KUNIT_EXPECT_GE(test, damon_nr_samples_per_aggr(&attrs), 0); > + KUNIT_EXPECT_LE(test, damon_nr_samples_per_aggr(&attrs), UINT_MAX); > +} [Severity: Medium] Since damon_nr_samples_per_aggr() returns an unsigned int, are these assertions tautological? An unsigned int is inherently always >= 0 and <= UINT_MAX. This means the test will pass regardless of the function's return value, and it wouldn't catch if the function unexpectedly returned 0. -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=7