test: lmb: fix the lmb_alloc_addr() based test cases
authorSughosh Ganu <sughosh.ganu@linaro.org>
Wed, 26 Mar 2025 16:53:36 +0000 (22:23 +0530)
committerTom Rini <trini@konsulko.com>
Wed, 26 Mar 2025 20:05:36 +0000 (14:05 -0600)
Commit 56f186a68b3 ("lmb: check if a region can be reserved by
lmb_reserve()") fixed the lmb_reserve() and lmb_alloc_addr() API's for
some corner case scenarios, and also added corresonding test cases for
these corner cases. These tests were checking, among other things, the
lmb_alloc_addr() API. The above commit was applied to the next branch.

Subsequently, there was commit 67be24906fe
("lmb: change the return code on lmb_alloc_addr()") which was first
applied on the master branch, and subsequently got merged to next as
part of the rebase. The second commit changes the return value of the
lmb_alloc_addr() API, which now results in some of the tests added as
part of the first commit to fail. Fix those test cases.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
test/lib/lmb.c

index ad91674..3bf558f 100644 (file)
@@ -591,21 +591,21 @@ static int test_alloc_addr(struct unit_test_state *uts, const phys_addr_t ram)
         * region 2. Should fail.
         */
        a = lmb_alloc_addr(alloc_addr_a, 0x1000, LMB_NONE);
-       ut_asserteq(a, alloc_addr_a);
+       ut_asserteq(a, 0);
 
        b = lmb_alloc_addr(alloc_addr_a + 0x4000, 0x1000, LMB_NOOVERWRITE);
-       ut_asserteq(b, alloc_addr_a + 0x4000);
-       ASSERT_LMB(mem_lst, used_lst, ram, ram_size, 2, a, 0x1000,
-                  b, 0x1000, 0, 0);
+       ut_asserteq(b, 0);
+       ASSERT_LMB(mem_lst, used_lst, ram, ram_size, 2, alloc_addr_a, 0x1000,
+                  alloc_addr_a + 0x4000, 0x1000, 0, 0);
 
        c = lmb_alloc_addr(alloc_addr_a + 0x1000, 0x5000, LMB_NONE);
-       ut_asserteq(c, 0);
-       ASSERT_LMB(mem_lst, used_lst, ram, ram_size, 2, a, 0x1000,
-                  b, 0x1000, 0, 0);
+       ut_asserteq(c, -1);
+       ASSERT_LMB(mem_lst, used_lst, ram, ram_size, 2, alloc_addr_a, 0x1000,
+                  alloc_addr_a + 0x4000, 0x1000, 0, 0);
 
-       ret = lmb_free(a, 0x1000);
+       ret = lmb_free(alloc_addr_a, 0x1000);
        ut_asserteq(ret, 0);
-       ret = lmb_free(b, 0x1000);
+       ret = lmb_free(alloc_addr_a + 0x4000, 0x1000);
        ut_asserteq(ret, 0);
 
        /*
@@ -616,19 +616,19 @@ static int test_alloc_addr(struct unit_test_state *uts, const phys_addr_t ram)
         * single region.
         */
        a = lmb_alloc_addr(alloc_addr_a, 0x1000, LMB_NONE);
-       ut_asserteq(a, alloc_addr_a);
+       ut_asserteq(a, 0);
 
        b = lmb_alloc_addr(alloc_addr_a + 0x4000, 0x1000, LMB_NONE);
-       ut_asserteq(b, alloc_addr_a + 0x4000);
-       ASSERT_LMB(mem_lst, used_lst, ram, ram_size, 2, a, 0x1000,
-                  b, 0x1000, 0, 0);
+       ut_asserteq(b, 0);
+       ASSERT_LMB(mem_lst, used_lst, ram, ram_size, 2, alloc_addr_a, 0x1000,
+                  alloc_addr_a + 0x4000, 0x1000, 0, 0);
 
        c = lmb_alloc_addr(alloc_addr_a + 0x1000, 0x5000, LMB_NONE);
-       ut_asserteq(c, alloc_addr_a + 0x1000);
-       ASSERT_LMB(mem_lst, used_lst, ram, ram_size, 1, a, 0x6000,
+       ut_asserteq(c, 0);
+       ASSERT_LMB(mem_lst, used_lst, ram, ram_size, 1, alloc_addr_a, 0x6000,
                   0, 0, 0, 0);
 
-       ret = lmb_free(a, 0x6000);
+       ret = lmb_free(alloc_addr_a, 0x6000);
        ut_asserteq(ret, 0);
 
        /*
@@ -638,21 +638,21 @@ static int test_alloc_addr(struct unit_test_state *uts, const phys_addr_t ram)
         * region 2. Should fail.
         */
        a = lmb_alloc_addr(alloc_addr_a, 0x1000, LMB_NOOVERWRITE);
-       ut_asserteq(a, alloc_addr_a);
+       ut_asserteq(a, 0);
 
        b = lmb_alloc_addr(alloc_addr_a + 0x4000, 0x1000, LMB_NOOVERWRITE);
-       ut_asserteq(b, alloc_addr_a + 0x4000);
-       ASSERT_LMB(mem_lst, used_lst, ram, ram_size, 2, a, 0x1000,
-                  b, 0x1000, 0, 0);
+       ut_asserteq(b, 0);
+       ASSERT_LMB(mem_lst, used_lst, ram, ram_size, 2, alloc_addr_a, 0x1000,
+                  alloc_addr_a + 0x4000, 0x1000, 0, 0);
 
        c = lmb_alloc_addr(alloc_addr_a + 0x1000, 0x5000, LMB_NOOVERWRITE);
-       ut_asserteq(c, 0);
-       ASSERT_LMB(mem_lst, used_lst, ram, ram_size, 2, a, 0x1000,
-                  b, 0x1000, 0, 0);
+       ut_asserteq(c, -1);
+       ASSERT_LMB(mem_lst, used_lst, ram, ram_size, 2, alloc_addr_a, 0x1000,
+                  alloc_addr_a + 0x4000, 0x1000, 0, 0);
 
-       ret = lmb_free(a, 0x1000);
+       ret = lmb_free(alloc_addr_a, 0x1000);
        ut_asserteq(ret, 0);
-       ret = lmb_free(b, 0x1000);
+       ret = lmb_free(alloc_addr_a + 0x4000, 0x1000);
        ut_asserteq(ret, 0);
 
        /*  reserve 3 blocks */