Skip to content

Commit 1a87967

Browse files
RichardWeiYangrppt
authored andcommitted
memblock tests: add memblock_overlaps_region_checks
Add a test case for memblock_overlaps_region(). Signed-off-by: Wei Yang <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mike Rapoport (IBM) <[email protected]>
1 parent 3aca2ce commit 1a87967

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

tools/testing/memblock/tests/basic_api.c

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2387,6 +2387,53 @@ static int memblock_trim_memory_checks(void)
23872387
return 0;
23882388
}
23892389

2390+
static int memblock_overlaps_region_check(void)
2391+
{
2392+
struct region r = {
2393+
.base = SZ_1G,
2394+
.size = SZ_4M
2395+
};
2396+
2397+
PREFIX_PUSH();
2398+
2399+
reset_memblock_regions();
2400+
memblock_add(r.base, r.size);
2401+
2402+
/* Far Away */
2403+
ASSERT_FALSE(memblock_overlaps_region(&memblock.memory, SZ_1M, SZ_1M));
2404+
ASSERT_FALSE(memblock_overlaps_region(&memblock.memory, SZ_2G, SZ_1M));
2405+
2406+
/* Neighbor */
2407+
ASSERT_FALSE(memblock_overlaps_region(&memblock.memory, SZ_1G - SZ_1M, SZ_1M));
2408+
ASSERT_FALSE(memblock_overlaps_region(&memblock.memory, SZ_1G + SZ_4M, SZ_1M));
2409+
2410+
/* Partial Overlap */
2411+
ASSERT_TRUE(memblock_overlaps_region(&memblock.memory, SZ_1G - SZ_1M, SZ_2M));
2412+
ASSERT_TRUE(memblock_overlaps_region(&memblock.memory, SZ_1G + SZ_2M, SZ_2M));
2413+
2414+
/* Totally Overlap */
2415+
ASSERT_TRUE(memblock_overlaps_region(&memblock.memory, SZ_1G, SZ_4M));
2416+
ASSERT_TRUE(memblock_overlaps_region(&memblock.memory, SZ_1G - SZ_2M, SZ_8M));
2417+
ASSERT_TRUE(memblock_overlaps_region(&memblock.memory, SZ_1G + SZ_1M, SZ_1M));
2418+
2419+
test_pass_pop();
2420+
2421+
return 0;
2422+
}
2423+
2424+
static int memblock_overlaps_region_checks(void)
2425+
{
2426+
prefix_reset();
2427+
prefix_push("memblock_overlaps_region");
2428+
test_print("Running memblock_overlaps_region tests...\n");
2429+
2430+
memblock_overlaps_region_check();
2431+
2432+
prefix_pop();
2433+
2434+
return 0;
2435+
}
2436+
23902437
int memblock_basic_checks(void)
23912438
{
23922439
memblock_initialization_check();
@@ -2396,6 +2443,7 @@ int memblock_basic_checks(void)
23962443
memblock_free_checks();
23972444
memblock_bottom_up_checks();
23982445
memblock_trim_memory_checks();
2446+
memblock_overlaps_region_checks();
23992447

24002448
return 0;
24012449
}

tools/testing/memblock/tests/common.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ enum test_flags {
4040
assert((_expected) == (_seen)); \
4141
} while (0)
4242

43+
#define ASSERT_TRUE(_seen) ASSERT_EQ(true, _seen)
44+
#define ASSERT_FALSE(_seen) ASSERT_EQ(false, _seen)
45+
4346
/**
4447
* ASSERT_NE():
4548
* Check the condition

0 commit comments

Comments
 (0)