memblock test: Add test to memblock_add() 129th region
authorShaoqin Huang <shaoqin.huang@intel.com>
Tue, 11 Oct 2022 06:21:20 +0000 (14:21 +0800)
committerMike Rapoport <rppt@linux.ibm.com>
Mon, 31 Oct 2022 08:15:00 +0000 (10:15 +0200)
commit085bdaa6eb1476ec054164bdc4001bc3916ff5cb
treecd8e197921ba412b48332db6d418818446ba8015
parent30a0b95b1335e12efef89dd78518ed3e4a71a763
memblock test: Add test to memblock_add() 129th region

Add 129th region into the memblock, and this will trigger the
memblock_double_array() function, this needs valid memory regions. So
using dummy_physical_memory_init() to allocate a large enough memory
region, and split it into a large enough memory which can be choosed by
memblock_double_array(), and the left memory will be split into small
memory region, and add them into the memblock. It make sure the
memblock_double_array() will always choose the valid memory region that
is allocated by the dummy_physical_memory_init().
So memblock_double_array() must success.

Another thing should be done is to restore the memory.regions after
memblock_double_array(), due to now the memory.regions is pointing to a
memory region allocated by dummy_physical_memory_init(). And it will
affect the subsequent tests if we don't restore the memory region. So
simply record the origin region, and restore it after the test.

Signed-off-by: Shaoqin Huang <shaoqin.huang@intel.com>
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
Link: https://lore.kernel.org/r/20221011062128.49359-2-shaoqin.huang@intel.com
tools/testing/memblock/tests/basic_api.c
tools/testing/memblock/tests/common.c
tools/testing/memblock/tests/common.h