lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 16 Dec 2020 10:42:11 +0100 From: SeongJae Park <sjpark@...zon.com> To: <akpm@...ux-foundation.org> CC: SeongJae Park <sjpark@...zon.de>, <Jonathan.Cameron@...wei.com>, <aarcange@...hat.com>, <acme@...nel.org>, <alexander.shishkin@...ux.intel.com>, <amit@...nel.org>, <benh@...nel.crashing.org>, <brendan.d.gregg@...il.com>, <brendanhiggins@...gle.com>, <cai@....pw>, <colin.king@...onical.com>, <corbet@....net>, <david@...hat.com>, <dwmw@...zon.com>, <elver@...gle.com>, <fan.du@...el.com>, <foersleo@...zon.de>, <gthelen@...gle.com>, <irogers@...gle.com>, <jolsa@...hat.com>, <kirill@...temov.name>, <mark.rutland@....com>, <mgorman@...e.de>, <minchan@...nel.org>, <mingo@...hat.com>, <namhyung@...nel.org>, <peterz@...radead.org>, <rdunlap@...radead.org>, <riel@...riel.com>, <rientjes@...gle.com>, <rostedt@...dmis.org>, <rppt@...nel.org>, <sblbir@...zon.com>, <shakeelb@...gle.com>, <shuah@...nel.org>, <sj38.park@...il.com>, <snu@...zon.de>, <vbabka@...e.cz>, <vdavydov.dev@...il.com>, <yang.shi@...ux.alibaba.com>, <ying.huang@...el.com>, <zgf574564920@...il.com>, <linux-damon@...zon.com>, <linux-mm@...ck.org>, <linux-doc@...r.kernel.org>, <linux-kernel@...r.kernel.org> Subject: [RFC v10 03/13] damon/dbgfs-test: Add a unit test case for 'init_regions' From: SeongJae Park <sjpark@...zon.de> This commit adds another test case for the new feature, 'init_regions'. Signed-off-by: SeongJae Park <sjpark@...zon.de> Reviewed-by: Brendan Higgins <brendanhiggins@...gle.com> --- mm/damon/dbgfs-test.h | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/mm/damon/dbgfs-test.h b/mm/damon/dbgfs-test.h index ce9c6784ad47..91138b53fe2a 100644 --- a/mm/damon/dbgfs-test.h +++ b/mm/damon/dbgfs-test.h @@ -189,12 +189,67 @@ static void damon_dbgfs_test_aggregate(struct kunit *test) damon_destroy_ctx(ctx); } + +static void damon_dbgfs_test_set_init_regions(struct kunit *test) +{ + struct damon_ctx *ctx = damon_new_ctx(DAMON_ADAPTIVE_TARGET); + unsigned long ids[] = {1, 2, 3}; + /* Each line represents one region in ``<target id> <start> <end>`` */ + char * const valid_inputs[] = {"2 10 20\n 2 20 30\n2 35 45", + "2 10 20\n", + "2 10 20\n1 39 59\n1 70 134\n 2 20 25\n", + ""}; + /* Reading the file again will show sorted, clean output */ + char * const valid_expects[] = {"2 10 20\n2 20 30\n2 35 45\n", + "2 10 20\n", + "1 39 59\n1 70 134\n2 10 20\n2 20 25\n", + ""}; + char * const invalid_inputs[] = {"4 10 20\n", /* target not exists */ + "2 10 20\n 2 14 26\n", /* regions overlap */ + "1 10 20\n2 30 40\n 1 5 8"}; /* not sorted by address */ + char *input, *expect; + int i, rc; + char buf[256]; + + damon_set_targets(ctx, ids, 3); + + /* Put valid inputs and check the results */ + for (i = 0; i < ARRAY_SIZE(valid_inputs); i++) { + input = valid_inputs[i]; + expect = valid_expects[i]; + + rc = set_init_regions(ctx, input, strnlen(input, 256)); + KUNIT_EXPECT_EQ(test, rc, 0); + + memset(buf, 0, 256); + sprint_init_regions(ctx, buf, 256); + + KUNIT_EXPECT_STREQ(test, (char *)buf, expect); + } + /* Put invlid inputs and check the return error code */ + for (i = 0; i < ARRAY_SIZE(invalid_inputs); i++) { + input = invalid_inputs[i]; + pr_info("input: %s\n", input); + rc = set_init_regions(ctx, input, strnlen(input, 256)); + KUNIT_EXPECT_EQ(test, rc, -EINVAL); + + memset(buf, 0, 256); + sprint_init_regions(ctx, buf, 256); + + KUNIT_EXPECT_STREQ(test, (char *)buf, ""); + } + + damon_set_targets(ctx, NULL, 0); + damon_destroy_ctx(ctx); +} + static struct kunit_case damon_test_cases[] = { KUNIT_CASE(damon_dbgfs_test_str_to_target_ids), KUNIT_CASE(damon_dbgfs_test_set_targets), KUNIT_CASE(damon_dbgfs_test_set_recording), KUNIT_CASE(damon_dbgfs_test_write_rbuf), KUNIT_CASE(damon_dbgfs_test_aggregate), + KUNIT_CASE(damon_dbgfs_test_set_init_regions), {}, }; -- 2.17.1
Powered by blists - more mailing lists