Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

memblock tests: add memblock_overlaps_region_checks

Add a test case for memblock_overlaps_region().

Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Link: https://lore.kernel.org/r/20240507075833.6346-5-richard.weiyang@gmail.com
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>

authored by

Wei Yang and committed by
Mike Rapoport (IBM)
1a879671 3aca2cea

+51
+48
tools/testing/memblock/tests/basic_api.c
··· 2387 2387 return 0; 2388 2388 } 2389 2389 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 + 2390 2437 int memblock_basic_checks(void) 2391 2438 { 2392 2439 memblock_initialization_check(); ··· 2443 2396 memblock_free_checks(); 2444 2397 memblock_bottom_up_checks(); 2445 2398 memblock_trim_memory_checks(); 2399 + memblock_overlaps_region_checks(); 2446 2400 2447 2401 return 0; 2448 2402 }
+3
tools/testing/memblock/tests/common.h
··· 40 40 assert((_expected) == (_seen)); \ 41 41 } while (0) 42 42 43 + #define ASSERT_TRUE(_seen) ASSERT_EQ(true, _seen) 44 + #define ASSERT_FALSE(_seen) ASSERT_EQ(false, _seen) 45 + 43 46 /** 44 47 * ASSERT_NE(): 45 48 * Check the condition