@@ -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