memblock tests: add VERBOSE and MEMBLOCK_DEBUG Makefile options
cover memblock tests: add VERBOSE and MEMBLOCK_DEBUG Makefile options
These patches add options VERBOSE and MEMBLOCK_DEBUG to Memblock simulator, which can be specified when running make. These patches also implement the functionality for these options.
VERBOSE
Usage:
$ make VERBOSE=1
Passing VERBOSE=1 will enable verbose output from Memblock simulator. For each test, the verbose output includes the name of the memblock function being tested, the name of the test, and whether the test passed or failed. Since all the tests in Memblock simulator run as one monolithic test, this output is a quick way to get a summary of test results.
MEMBLOCK_DEBUG
Usage:
$ make MEMBLOCK_DEBUG=1
Passing MEMBLOCK_DEBUG=1 will enable memblock_dbg() messages. These are debug messages built into several functions in memblock that include information such as the name of the function and the size and start and end addresses of the memblock region.
Rebecca Mckeever (4):
memblock tests: add user-provided arguments to Makefile memblock tests: add verbose output to memblock tests memblock tests: set memblock_debug to enable memblock_dbg() messages memblock tests: remove completed TODO items
tools/testing/memblock/Makefile | 4 + tools/testing/memblock/README | 10 +- tools/testing/memblock/TODO | 14 +- tools/testing/memblock/internal.h | 7 + .../testing/memblock/scripts/Makefile.include | 10 + tools/testing/memblock/tests/alloc_api.c | 241 ++++++++---- .../memblock/tests/alloc_helpers_api.c | 135 +++++-- tools/testing/memblock/tests/alloc_nid_api.c | 371 ++++++++++++------ tools/testing/memblock/tests/basic_api.c | 365 ++++++++++++----- tools/testing/memblock/tests/common.c | 60 +++ tools/testing/memblock/tests/common.h | 54 +++ 11 files changed, 915 insertions(+), 356 deletions(-)
Signature · 1 line
2.34.1
PATCH 1/4 memblock tests: add user-provided arguments to Makefile
Add VERBOSE and MEMBLOCK_DEBUG user-provided arguments. VERBOSE will enable verbose output from Memblock simulator. MEMBLOCK_DEBUG will enable memblock_dbg() messages.
Update the help message to include VERBOSE and MEMBLOCK_DEBUG. Update the README to include VERBOSE. The README does not include all available options and refers to the help message for the remaining options. Therefore, omit MEMBLOCK_DEBUG from README.
--- tools/testing/memblock/Makefile | 4 ++++ tools/testing/memblock/README | 10 +++++++++- tools/testing/memblock/scripts/Makefile.include | 10 ++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-)
tools/testing/memblock/Makefile +4 -0
@@ -45,6 +45,10 @@ help: @echo ' clean - Remove generated files and symlinks in the directory' @echo '' @echo 'Configuration:' + @echo ' make VERBOSE=1 - enable verbose output, which includes the' + @echo ' names of functions being tested and the' + @echo ' number of test cases passing' + @echo ' make MEMBLOCK_DEBUG=1 - enable memblock_dbg() messages' @echo ' make NUMA=1 - simulate enabled NUMA' @echo ' make MOVABLE_NODE=1 - override `movable_node_is_enabled`' @echo ' definition to simulate movable NUMA nodes'
tools/testing/memblock/README +9 -1
@@ -34,7 +34,15 @@ To run the tests, build the main target and run it: $ make && ./main A successful run produces no output. It is also possible to override different -configuration parameters. For example, to simulate enabled NUMA, use: +configuration parameters. For example, to include verbose output, specify the +VERBOSE flag when building the main target: + +$ make VERBOSE=1 + +This will print information about which functions are being tested and the +number of test cases that passed. + +To simulate enabled NUMA, use: $ make NUMA=1
tools/testing/memblock/scripts/Makefile.include +10 -0
@@ -17,3 +17,13 @@ ifeq ($(32BIT_PHYS_ADDR_T), 1) CFLAGS += -m32 -U CONFIG_PHYS_ADDR_T_64BIT LDFLAGS += -m32 endif + +# Enable verbose testing output +ifeq ($(VERBOSE), 1) + CFLAGS += -D VERBOSE +endif + +# Enable memblock_dbg() messages +ifeq ($(MEMBLOCK_DEBUG), 1) + CFLAGS += -D MEMBLOCK_DEBUG +endif
Signature · 1 line
2.34.1
PATCH 2/4 memblock tests: add verbose output to memblock tests
In reply to Rebecca MckeeverAdd and use functions for printing verbose testing output.
If the Memblock simulator was compiled with VERBOSE=1:
prefix_push() appends the given string to a prefix string that will be
printed in the test functions.
prefix_pop() removes the last prefix from the prefix string. prefix_reset() clears the prefix string.
test_fail() prints a message after a test fails containing the test
number of the failing test and the prefix.
test_pass() prints a message after a test passes containing its test
number and the prefix.
test_print() prints the given formatted output string.
If the Memblock simulator was not compiled with VERBOSE=1, these functions do nothing.
Add the assert wrapper macros ASSERT_EQ(), ASSERT_NE(), and ASSERT_LT(). If the assert condition fails, these macros call test_fail() before executing assert().
--- tools/testing/memblock/tests/alloc_api.c | 241 ++++++++---- .../memblock/tests/alloc_helpers_api.c | 135 +++++-- tools/testing/memblock/tests/alloc_nid_api.c | 371 ++++++++++++------ tools/testing/memblock/tests/basic_api.c | 365 ++++++++++++----- tools/testing/memblock/tests/common.c | 60 +++ tools/testing/memblock/tests/common.h | 54 +++ 6 files changed, 882 insertions(+), 344 deletions(-)
tools/testing/memblock/tests/alloc_api.c +170 -71
@@ -10,6 +10,8 @@ static int alloc_top_down_simple_check(void)struct memblock_region *rgn = &memblock.reserved.regions[0 ];void *allocated_ptr =NULL ; +prefix_push (__func__); +phys_addr_t size =SZ_2 ;phys_addr_t expected_start;
@@ -19,12 +21,15 @@ static int alloc_top_down_simple_check(void) allocated_ptr =memblock_alloc (size,SMP_CACHE_BYTES ); -assert (allocated_ptr); -assert (rgn->size == size); -assert (rgn->base == expected_start); +ASSERT_NE (allocated_ptr,NULL ); +ASSERT_EQ (rgn->size, size); +ASSERT_EQ (rgn->base, expected_start); + +ASSERT_EQ (memblock.reserved.cnt,1 ); +ASSERT_EQ (memblock.reserved.total_size, size); -assert (memblock.reserved.cnt ==1 ); -assert (memblock.reserved.total_size == size); +test_pass (); +prefix_pop ();return 0 ; }
@@ -55,6 +60,8 @@ static int alloc_top_down_disjoint_check(void)struct region r1;void *allocated_ptr =NULL ; +prefix_push (__func__); +phys_addr_t r2_size =SZ_16 ;/* Use custom alignment */ phys_addr_t alignment =SMP_CACHE_BYTES *2 ;
@@ -73,15 +80,18 @@ static int alloc_top_down_disjoint_check(void) allocated_ptr =memblock_alloc (r2_size, alignment); -assert (allocated_ptr); -assert (rgn1->size == r1.size); -assert (rgn1->base == r1.base); +ASSERT_NE (allocated_ptr,NULL ); +ASSERT_EQ (rgn1->size, r1.size); +ASSERT_EQ (rgn1->base, r1.base); -assert (rgn2->size == r2_size); -assert (rgn2->base == expected_start); +ASSERT_EQ (rgn2->size, r2_size); +ASSERT_EQ (rgn2->base, expected_start); -assert (memblock.reserved.cnt ==2 ); -assert (memblock.reserved.total_size == total_size); +ASSERT_EQ (memblock.reserved.cnt,2 ); +ASSERT_EQ (memblock.reserved.total_size, total_size); + +test_pass (); +prefix_pop ();return 0 ; }
@@ -101,6 +111,8 @@ static int alloc_top_down_before_check(void)struct memblock_region *rgn = &memblock.reserved.regions[0 ];void *allocated_ptr =NULL ; +prefix_push (__func__); +/* * The first region ends at the aligned address to test region merging */
@@ -114,12 +126,15 @@ static int alloc_top_down_before_check(void) allocated_ptr =memblock_alloc (r2_size,SMP_CACHE_BYTES ); -assert (allocated_ptr); -assert (rgn->size == total_size); -assert (rgn->base ==memblock_end_of_DRAM () - total_size); +ASSERT_NE (allocated_ptr,NULL ); +ASSERT_EQ (rgn->size, total_size); +ASSERT_EQ (rgn->base,memblock_end_of_DRAM () - total_size); -assert (memblock.reserved.cnt ==1 ); -assert (memblock.reserved.total_size == total_size); +ASSERT_EQ (memblock.reserved.cnt,1 ); +ASSERT_EQ (memblock.reserved.total_size, total_size); + +test_pass (); +prefix_pop ();return 0 ; }
@@ -141,6 +156,8 @@ static int alloc_top_down_after_check(void)struct region r1;void *allocated_ptr =NULL ; +prefix_push (__func__); +phys_addr_t r2_size =SZ_512 ;phys_addr_t total_size;
@@ -158,12 +175,15 @@ static int alloc_top_down_after_check(void) allocated_ptr =memblock_alloc (r2_size,SMP_CACHE_BYTES ); -assert (allocated_ptr); -assert (rgn->size == total_size); -assert (rgn->base == r1.base - r2_size); +ASSERT_NE (allocated_ptr,NULL ); +ASSERT_EQ (rgn->size, total_size); +ASSERT_EQ (rgn->base, r1.base - r2_size); -assert (memblock.reserved.cnt ==1 ); -assert (memblock.reserved.total_size == total_size); +ASSERT_EQ (memblock.reserved.cnt,1 ); +ASSERT_EQ (memblock.reserved.total_size, total_size); + +test_pass (); +prefix_pop ();return 0 ; }
@@ -186,6 +206,8 @@ static int alloc_top_down_second_fit_check(void)struct region r1, r2;void *allocated_ptr =NULL ; +prefix_push (__func__); +phys_addr_t r3_size =SZ_1K ;phys_addr_t total_size;
@@ -204,12 +226,15 @@ static int alloc_top_down_second_fit_check(void) allocated_ptr =memblock_alloc (r3_size,SMP_CACHE_BYTES ); -assert (allocated_ptr); -assert (rgn->size == r2.size + r3_size); -assert (rgn->base == r2.base - r3_size); +ASSERT_NE (allocated_ptr,NULL ); +ASSERT_EQ (rgn->size, r2.size + r3_size); +ASSERT_EQ (rgn->base, r2.base - r3_size); -assert (memblock.reserved.cnt ==2 ); -assert (memblock.reserved.total_size == total_size); +ASSERT_EQ (memblock.reserved.cnt,2 ); +ASSERT_EQ (memblock.reserved.total_size, total_size); + +test_pass (); +prefix_pop ();return 0 ; }
@@ -231,6 +256,8 @@ static int alloc_in_between_generic_check(void)struct region r1, r2;void *allocated_ptr =NULL ; +prefix_push (__func__); +phys_addr_t gap_size =SMP_CACHE_BYTES ;phys_addr_t r3_size =SZ_64 ;/*
@@ -254,12 +281,15 @@ static int alloc_in_between_generic_check(void) allocated_ptr =memblock_alloc (r3_size,SMP_CACHE_BYTES ); -assert (allocated_ptr); -assert (rgn->size == total_size); -assert (rgn->base == r1.base - r2.size - r3_size); +ASSERT_NE (allocated_ptr,NULL ); +ASSERT_EQ (rgn->size, total_size); +ASSERT_EQ (rgn->base, r1.base - r2.size - r3_size); + +ASSERT_EQ (memblock.reserved.cnt,1 ); +ASSERT_EQ (memblock.reserved.total_size, total_size); -assert (memblock.reserved.cnt ==1 ); -assert (memblock.reserved.total_size == total_size); +test_pass (); +prefix_pop ();return 0 ; }
@@ -281,6 +311,8 @@ static int alloc_small_gaps_generic_check(void) {void *allocated_ptr =NULL ; +prefix_push (__func__); +phys_addr_t region_size =SZ_1K ;phys_addr_t gap_size =SZ_256 ;phys_addr_t region_end;
@@ -296,7 +328,10 @@ static int alloc_small_gaps_generic_check(void) allocated_ptr =memblock_alloc (region_size,SMP_CACHE_BYTES ); -assert (!allocated_ptr); +ASSERT_EQ (allocated_ptr,NULL ); + +test_pass (); +prefix_pop ();return 0 ; }
@@ -309,6 +344,8 @@ static int alloc_all_reserved_generic_check(void) {void *allocated_ptr =NULL ; +prefix_push (__func__); +setup_memblock ();/* Simulate full memory */
@@ -316,7 +353,10 @@ static int alloc_all_reserved_generic_check(void) allocated_ptr =memblock_alloc (SZ_256 ,SMP_CACHE_BYTES ); -assert (!allocated_ptr); +ASSERT_EQ (allocated_ptr,NULL ); + +test_pass (); +prefix_pop ();return 0 ; }
@@ -338,6 +378,8 @@ static int alloc_no_space_generic_check(void) {void *allocated_ptr =NULL ; +prefix_push (__func__); +setup_memblock ();phys_addr_t available_size =SZ_256 ;
@@ -348,7 +390,10 @@ static int alloc_no_space_generic_check(void) allocated_ptr =memblock_alloc (SZ_1K ,SMP_CACHE_BYTES ); -assert (!allocated_ptr); +ASSERT_EQ (allocated_ptr,NULL ); + +test_pass (); +prefix_pop ();return 0 ; }
@@ -369,6 +414,8 @@ static int alloc_limited_space_generic_check(void)struct memblock_region *rgn = &memblock.reserved.regions[0 ];void *allocated_ptr =NULL ; +prefix_push (__func__); +phys_addr_t available_size =SZ_256 ;phys_addr_t reserved_size =MEM_SIZE - available_size;
@@ -379,12 +426,15 @@ static int alloc_limited_space_generic_check(void) allocated_ptr =memblock_alloc (available_size,SMP_CACHE_BYTES ); -assert (allocated_ptr); -assert (rgn->size ==MEM_SIZE ); -assert (rgn->base ==memblock_start_of_DRAM ()); +ASSERT_NE (allocated_ptr,NULL ); +ASSERT_EQ (rgn->size,MEM_SIZE ); +ASSERT_EQ (rgn->base,memblock_start_of_DRAM ()); + +ASSERT_EQ (memblock.reserved.cnt,1 ); +ASSERT_EQ (memblock.reserved.total_size,MEM_SIZE ); -assert (memblock.reserved.cnt ==1 ); -assert (memblock.reserved.total_size ==MEM_SIZE ); +test_pass (); +prefix_pop ();return 0 ; }
@@ -399,14 +449,19 @@ static int alloc_no_memory_generic_check(void)struct memblock_region *rgn = &memblock.reserved.regions[0 ];void *allocated_ptr =NULL ; +prefix_push (__func__); +reset_memblock_regions (); allocated_ptr =memblock_alloc (SZ_1K ,SMP_CACHE_BYTES ); -assert (!allocated_ptr); -assert (rgn->size ==0 ); -assert (rgn->base ==0 ); -assert (memblock.reserved.total_size ==0 ); +ASSERT_EQ (allocated_ptr,NULL ); +ASSERT_EQ (rgn->size,0 ); +ASSERT_EQ (rgn->base,0 ); +ASSERT_EQ (memblock.reserved.total_size,0 ); + +test_pass (); +prefix_pop ();return 0 ; }
@@ -421,16 +476,21 @@ static int alloc_bottom_up_simple_check(void)struct memblock_region *rgn = &memblock.reserved.regions[0 ];void *allocated_ptr =NULL ; +prefix_push (__func__); +setup_memblock (); allocated_ptr =memblock_alloc (SZ_2 ,SMP_CACHE_BYTES ); -assert (allocated_ptr); -assert (rgn->size ==SZ_2 ); -assert (rgn->base ==memblock_start_of_DRAM ()); +ASSERT_NE (allocated_ptr,NULL ); +ASSERT_EQ (rgn->size,SZ_2 ); +ASSERT_EQ (rgn->base,memblock_start_of_DRAM ()); -assert (memblock.reserved.cnt ==1 ); -assert (memblock.reserved.total_size ==SZ_2 ); +ASSERT_EQ (memblock.reserved.cnt,1 ); +ASSERT_EQ (memblock.reserved.total_size,SZ_2 ); + +test_pass (); +prefix_pop ();return 0 ; }
@@ -459,6 +519,8 @@ static int alloc_bottom_up_disjoint_check(void)struct region r1;void *allocated_ptr =NULL ; +prefix_push (__func__); +phys_addr_t r2_size =SZ_16 ;/* Use custom alignment */ phys_addr_t alignment =SMP_CACHE_BYTES *2 ;
@@ -477,16 +539,19 @@ static int alloc_bottom_up_disjoint_check(void) allocated_ptr =memblock_alloc (r2_size, alignment); -assert (allocated_ptr); +ASSERT_NE (allocated_ptr,NULL ); -assert (rgn1->size == r1.size); -assert (rgn1->base == r1.base); +ASSERT_EQ (rgn1->size, r1.size); +ASSERT_EQ (rgn1->base, r1.base); -assert (rgn2->size == r2_size); -assert (rgn2->base == expected_start); +ASSERT_EQ (rgn2->size, r2_size); +ASSERT_EQ (rgn2->base, expected_start); -assert (memblock.reserved.cnt ==2 ); -assert (memblock.reserved.total_size == total_size); +ASSERT_EQ (memblock.reserved.cnt,2 ); +ASSERT_EQ (memblock.reserved.total_size, total_size); + +test_pass (); +prefix_pop ();return 0 ; }
@@ -506,6 +571,8 @@ static int alloc_bottom_up_before_check(void)struct memblock_region *rgn = &memblock.reserved.regions[0 ];void *allocated_ptr =NULL ; +prefix_push (__func__); +phys_addr_t r1_size =SZ_512 ;phys_addr_t r2_size =SZ_128 ;phys_addr_t total_size = r1_size + r2_size;
@@ -516,12 +583,15 @@ static int alloc_bottom_up_before_check(void) allocated_ptr =memblock_alloc (r1_size,SMP_CACHE_BYTES ); -assert (allocated_ptr); -assert (rgn->size == total_size); -assert (rgn->base ==memblock_start_of_DRAM ()); +ASSERT_NE (allocated_ptr,NULL ); +ASSERT_EQ (rgn->size, total_size); +ASSERT_EQ (rgn->base,memblock_start_of_DRAM ()); -assert (memblock.reserved.cnt ==1 ); -assert (memblock.reserved.total_size == total_size); +ASSERT_EQ (memblock.reserved.cnt,1 ); +ASSERT_EQ (memblock.reserved.total_size, total_size); + +test_pass (); +prefix_pop ();return 0 ; }
@@ -542,6 +612,8 @@ static int alloc_bottom_up_after_check(void)struct region r1;void *allocated_ptr =NULL ; +prefix_push (__func__); +phys_addr_t r2_size =SZ_512 ;phys_addr_t total_size;
@@ -559,12 +631,15 @@ static int alloc_bottom_up_after_check(void) allocated_ptr =memblock_alloc (r2_size,SMP_CACHE_BYTES ); -assert (allocated_ptr); -assert (rgn->size == total_size); -assert (rgn->base == r1.base); +ASSERT_NE (allocated_ptr,NULL ); +ASSERT_EQ (rgn->size, total_size); +ASSERT_EQ (rgn->base, r1.base); -assert (memblock.reserved.cnt ==1 ); -assert (memblock.reserved.total_size == total_size); +ASSERT_EQ (memblock.reserved.cnt,1 ); +ASSERT_EQ (memblock.reserved.total_size, total_size); + +test_pass (); +prefix_pop ();return 0 ; }
@@ -588,6 +663,8 @@ static int alloc_bottom_up_second_fit_check(void)struct region r1, r2;void *allocated_ptr =NULL ; +prefix_push (__func__); +phys_addr_t r3_size =SZ_1K ;phys_addr_t total_size;
@@ -606,12 +683,15 @@ static int alloc_bottom_up_second_fit_check(void) allocated_ptr =memblock_alloc (r3_size,SMP_CACHE_BYTES ); -assert (allocated_ptr); -assert (rgn->size == r2.size + r3_size); -assert (rgn->base == r2.base); +ASSERT_NE (allocated_ptr,NULL ); +ASSERT_EQ (rgn->size, r2.size + r3_size); +ASSERT_EQ (rgn->base, r2.base); -assert (memblock.reserved.cnt ==2 ); -assert (memblock.reserved.total_size == total_size); +ASSERT_EQ (memblock.reserved.cnt,2 ); +ASSERT_EQ (memblock.reserved.total_size, total_size); + +test_pass (); +prefix_pop ();return 0 ; }
@@ -619,6 +699,7 @@ static int alloc_bottom_up_second_fit_check(void)/* Test case wrappers */ static int alloc_simple_check (void ) { +test_print ("\tRunning %s...\n" , __func__);memblock_set_bottom_up (false);alloc_top_down_simple_check ();memblock_set_bottom_up (true);
@@ -629,6 +710,7 @@ static int alloc_simple_check(void)static int alloc_disjoint_check (void ) { +test_print ("\tRunning %s...\n" , __func__);memblock_set_bottom_up (false);alloc_top_down_disjoint_check ();memblock_set_bottom_up (true);
@@ -639,6 +721,7 @@ static int alloc_disjoint_check(void)static int alloc_before_check (void ) { +test_print ("\tRunning %s...\n" , __func__);memblock_set_bottom_up (false);alloc_top_down_before_check ();memblock_set_bottom_up (true);
@@ -649,6 +732,7 @@ static int alloc_before_check(void)static int alloc_after_check (void ) { +test_print ("\tRunning %s...\n" , __func__);memblock_set_bottom_up (false);alloc_top_down_after_check ();memblock_set_bottom_up (true);
@@ -659,6 +743,7 @@ static int alloc_after_check(void)static int alloc_in_between_check (void ) { +test_print ("\tRunning %s...\n" , __func__);memblock_set_bottom_up (false);alloc_in_between_generic_check ();memblock_set_bottom_up (true);
@@ -669,6 +754,7 @@ static int alloc_in_between_check(void)static int alloc_second_fit_check (void ) { +test_print ("\tRunning %s...\n" , __func__);memblock_set_bottom_up (false);alloc_top_down_second_fit_check ();memblock_set_bottom_up (true);
@@ -679,6 +765,7 @@ static int alloc_second_fit_check(void)static int alloc_small_gaps_check (void ) { +test_print ("\tRunning %s...\n" , __func__);memblock_set_bottom_up (false);alloc_small_gaps_generic_check ();memblock_set_bottom_up (true);
@@ -689,6 +776,7 @@ static int alloc_small_gaps_check(void)static int alloc_all_reserved_check (void ) { +test_print ("\tRunning %s...\n" , __func__);memblock_set_bottom_up (false);alloc_all_reserved_generic_check ();memblock_set_bottom_up (true);
@@ -699,6 +787,7 @@ static int alloc_all_reserved_check(void)static int alloc_no_space_check (void ) { +test_print ("\tRunning %s...\n" , __func__);memblock_set_bottom_up (false);alloc_no_space_generic_check ();memblock_set_bottom_up (true);
@@ -709,6 +798,7 @@ static int alloc_no_space_check(void)static int alloc_limited_space_check (void ) { +test_print ("\tRunning %s...\n" , __func__);memblock_set_bottom_up (false);alloc_limited_space_generic_check ();memblock_set_bottom_up (true);
@@ -719,6 +809,7 @@ static int alloc_limited_space_check(void)static int alloc_no_memory_check (void ) { +test_print ("\tRunning %s...\n" , __func__);memblock_set_bottom_up (false);alloc_no_memory_generic_check ();memblock_set_bottom_up (true);
@@ -729,6 +820,12 @@ static int alloc_no_memory_check(void)int memblock_alloc_checks (void ) { +static const char func_testing[] ="memblock_alloc" ; + +prefix_reset (); +prefix_push (func_testing); +test_print ("Running %s tests...\n" , func_testing); +reset_memblock_attributes ();dummy_physical_memory_init ();
@@ -746,5 +843,7 @@ int memblock_alloc_checks(void)dummy_physical_memory_cleanup (); +prefix_pop (); +return 0 ; }
tools/testing/memblock/tests/alloc_helpers_api.c +93 -42
277 lines not on this page · raw message
tools/testing/memblock/tests/alloc_nid_api.c +246 -125
741 lines not on this page · raw message
tools/testing/memblock/tests/basic_api.c +259 -106
701 lines not on this page · raw message
tools/testing/memblock/tests/common.c +60 -0
69 lines not on this page · raw message
tools/testing/memblock/tests/common.h +54 -0
67 lines not on this page · raw message
Signature · 1 line
2.34.1
PATCH 3/4 memblock tests: set memblock_debug to enable memblock_dbg() messages
In reply to Rebecca MckeeverIf Memblock simulator was compiled with MEMBLOCK_DEBUG=1, set memblock_debug to 1 so that memblock_dbg() will print debug information when memblock functions are tested in Memblock simulator.
--- tools/testing/memblock/internal.h | 7 +++++++ 1 file changed, 7 insertions(+)
tools/testing/memblock/internal.h +7 -0
@@ -2,6 +2,13 @@#ifndef _MM_INTERNAL_H#define _MM_INTERNAL_H +/* +* Enable memblock_dbg() messages +*/ +#ifdef MEMBLOCK_DEBUG +static int memblock_debug =1 ; +#endif +struct page {}; void memblock_free_pages(struct page *page, unsigned long pfn,
Signature · 1 line
2.34.1
PATCH 4/4 memblock tests: remove completed TODO items
In reply to Rebecca MckeeverRemove completed items from TODO list.
--- tools/testing/memblock/TODO | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-)
tools/testing/memblock/TODO +3 -11
@@ -1,25 +1,17 @@ TODO ===== -1. Add verbose output (e.g., what is being tested and how many tests cases are - passing) - -2. Add flags to Makefile: - + verbosity level - + enable memblock_dbg() messages (i.e. pass "-D CONFIG_DEBUG_MEMORY_INIT" - flag) - -3. Add tests trying to memblock_add() or memblock_reserve() 129th region. +1. Add tests trying to memblock_add() or memblock_reserve() 129th region. This will trigger memblock_double_array(), make sure it succeeds. *Important:* These tests require valid memory ranges, use dummy physical memory block from common.c to implement them. It is also very likely that the current MEM_SIZE won't be enough for these test cases. Use realloc to adjust the size accordingly. -4. Add test cases using this functions (implement them for both directions): +2. Add test cases using this functions (implement them for both directions): + memblock_alloc_raw() + memblock_alloc_exact_nid_raw() + memblock_alloc_try_nid_raw() -5. Add tests for memblock_alloc_node() to check if the correct NUMA node is set +3. Add tests for memblock_alloc_node() to check if the correct NUMA node is set for the new region
Signature · 1 line
2.34.1
Re: [PATCH 1/4] memblock tests: add user-provided arguments to Makefile
In reply to Rebecca MckeeverQuoted 10 lines · Rebecca Mckeever
Add VERBOSE and
MEMBLOCK_DEBUGuser-provided arguments. VERBOSE will enable verbose output from Memblock simulator.MEMBLOCK_DEBUGwill enablememblock_dbg()messages.Update the help message to include VERBOSE and
MEMBLOCK_DEBUG. Update the README to include VERBOSE. The README does not include all available options and refers to the help message for the remaining options. Therefore, omitMEMBLOCK_DEBUGfrom README.Signed-off-by Rebecca Mckeever <[email protected]>
Signature · 3 lines
Thanks, David / dhildenb