Memory managed by LMB is now persistent and global. With that, it
could be possible for multiple callers to try to add memory that has
already been added. Add a test case to check that the LMB module
handles it as expected.

Signed-off-by: Sughosh Ganu <sughosh.g...@linaro.org>
---
 test/lib/lmb.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/test/lib/lmb.c b/test/lib/lmb.c
index 260ebcfcd3..9b0e023b67 100644
--- a/test/lib/lmb.c
+++ b/test/lib/lmb.c
@@ -419,6 +419,22 @@ static int lib_test_lmb_at_0(struct unit_test_state *uts)
 }
 LIB_TEST(lib_test_lmb_at_0, 0);
 
+static int lib_test_lmb_overlapping_add(struct unit_test_state *uts)
+{
+       const phys_addr_t ram = 0x40000000;
+       const phys_size_t ram_size = 0x20000000;
+       long ret;
+
+       ret = lmb_add(ram, ram_size);
+       ut_asserteq(ret, 0);
+
+       ret = lmb_add(ram, ram_size);
+       ut_asserteq(ret, 0);
+
+       return 0;
+}
+LIB_TEST(lib_test_lmb_overlapping_add, 0);
+
 /* Check that calling lmb_reserve with overlapping regions fails. */
 static int lib_test_lmb_overlapping_reserve(struct unit_test_state *uts)
 {
-- 
2.34.1

Reply via email to