Skip to content

Commit d0f31a4

Browse files
committed
tests: c_lib: Add tests for mallinfo2
This adds basic tests in a single testcase to verify the functionality of mallinfo2. Signed-off-by: Chaitanya Tata <[email protected]>
1 parent 24bb6b9 commit d0f31a4

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

tests/lib/c_lib/src/main.c

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1194,6 +1194,61 @@ ZTEST(test_c_lib, test_rand_reproducibility)
11941194
#endif
11951195
}
11961196

1197+
/**
1198+
* @brief Test mallinfo2 function
1199+
*
1200+
*/
1201+
ZTEST(test_c_lib, test_mallinfo2)
1202+
{
1203+
#ifdef CONFIG_MINIMAL_LIBC
1204+
struct mallinfo2 info;
1205+
1206+
info = mallinfo2();
1207+
zassert_equal(info.arena, 0, "mallinfo2 failed");
1208+
zassert_equal(info.ordblks, 0, "mallinfo2 failed");
1209+
zassert_equal(info.smblks, 0, "mallinfo2 failed");
1210+
zassert_equal(info.hblks, 0, "mallinfo2 failed");
1211+
zassert_equal(info.hblkhd, 0, "mallinfo2 failed");
1212+
zassert_equal(info.usmblks, 0, "mallinfo2 failed");
1213+
zassert_equal(info.fsmblks, 0, "mallinfo2 failed");
1214+
zassert_equal(info.uordblks, 0, "mallinfo2 failed");
1215+
zassert_equal(info.fordblks, 0, "mallinfo2 failed");
1216+
zassert_equal(info.keepcost, 0, "mallinfo2 failed");
1217+
1218+
/* Allocate and verify */
1219+
char *ptr = malloc(10);
1220+
zassert_not_null(ptr, "malloc failed");
1221+
info = mallinfo2();
1222+
zassert_equal(info.arena, 4096, "mallinfo2 failed");
1223+
zassert_equal(info.ordblks, 1, "mallinfo2 failed");
1224+
zassert_equal(info.smblks, 0, "mallinfo2 failed");
1225+
zassert_equal(info.hblks, 0, "mallinfo2 failed");
1226+
zassert_equal(info.hblkhd, 4096, "mallinfo2 failed");
1227+
zassert_equal(info.usmblks, 0, "mallinfo2 failed");
1228+
zassert_equal(info.fsmblks, 0, "mallinfo2 failed");
1229+
zassert_equal(info.uordblks, 0, "mallinfo2 failed");
1230+
zassert_equal(info.fordblks, 4086, "mallinfo2 failed");
1231+
zassert_equal(info.keepcost, 10, "mallinfo2 failed");
1232+
1233+
/* Free and verify */
1234+
free(ptr);
1235+
info = mallinfo2();
1236+
zassert_equal(info.arena, 4096, "mallinfo2 failed");
1237+
zassert_equal(info.ordblks, 0, "mallinfo2 failed");
1238+
zassert_equal(info.smblks, 0, "mallinfo2 failed");
1239+
zassert_equal(info.hblks, 0, "mallinfo2 failed");
1240+
zassert_equal(info.hblkhd, 4096, "mallinfo2 failed");
1241+
zassert_equal(info.usmblks, 0, "mallinfo2 failed");
1242+
zassert_equal(info.fsmblks, 0, "mallinfo2 failed");
1243+
zassert_equal(info.uordblks, 0, "mallinfo2 failed");
1244+
zassert_equal(info.fordblks, 4096, "mallinfo2 failed");
1245+
zassert_equal(info.keepcost, 0, "mallinfo2 failed");
1246+
#else
1247+
ztest_test_skip();
1248+
#endif /* CONFIG_MINIMAL_LIBC */
1249+
}
1250+
1251+
11971252
/**
11981253
*
11991254
* @brief test abort functions

0 commit comments

Comments
 (0)