aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPetri Savolainen <petri.savolainen@nokia.com>2022-11-08 17:07:57 +0200
committerMatias Elo <matias.elo@nokia.com>2022-11-30 12:43:46 +0200
commite51c5c80f22aa2b12f5c13f4f9e7d60b9f7a6981 (patch)
tree82384858cd98aa32e6f0d2ee55a9e5e9db27535e /test
parent12420db0842dccb57f6d8e8cd9b6e3168b121018 (diff)
validation: system: add meminfo test
Added a test case for the new odp_system_meminfo() call. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Harman Kalra <hkalra@marvell.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Diffstat (limited to 'test')
-rw-r--r--test/validation/api/system/system.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/test/validation/api/system/system.c b/test/validation/api/system/system.c
index b1fcbe3c3..f0cf48738 100644
--- a/test/validation/api/system/system.c
+++ b/test/validation/api/system/system.c
@@ -579,6 +579,51 @@ static void system_test_info(void)
}
}
+static void system_test_meminfo(void)
+{
+ const int32_t max_num = 128;
+ odp_system_meminfo_t info, info_0;
+ int32_t ret, ret_0, num, i;
+ odp_system_memblock_t block[max_num];
+
+ /* Meminfo without blocks */
+ ret_0 = odp_system_meminfo(&info_0, NULL, 0);
+ CU_ASSERT_FATAL(ret_0 >= 0);
+
+ ret = odp_system_meminfo(&info, block, max_num);
+ CU_ASSERT_FATAL(ret >= 0);
+
+ /* Totals should match independent of per block output */
+ CU_ASSERT(ret == ret_0);
+ CU_ASSERT(info_0.total_mapped == info.total_mapped);
+ CU_ASSERT(info_0.total_used == info.total_used);
+ CU_ASSERT(info_0.total_overhead == info.total_overhead);
+
+ CU_ASSERT(info.total_mapped >= info.total_used);
+ CU_ASSERT(info.total_used >= info.total_overhead);
+
+ num = ret;
+ if (ret > max_num)
+ num = max_num;
+
+ printf("\n\n");
+ printf("System meminfo contain %i blocks, printing %i blocks:\n", ret, num);
+
+ printf(" %s %-32s %16s %14s %14s %12s\n", "index", "name", "addr",
+ "used", "overhead", "page_size");
+
+ for (i = 0; i < num; i++) {
+ printf(" [%3i] %-32s %16" PRIxPTR " %14" PRIu64 " %14" PRIu64 " %12" PRIu64 "\n",
+ i, block[i].name, block[i].addr, block[i].used, block[i].overhead,
+ block[i].page_size);
+ }
+
+ printf("\n");
+ printf("Total mapped: %" PRIu64 "\n", info.total_mapped);
+ printf("Total used: %" PRIu64 "\n", info.total_used);
+ printf("Total overhead: %" PRIu64 "\n\n", info.total_overhead);
+}
+
odp_testinfo_t system_suite[] = {
ODP_TEST_INFO(test_version_api_str),
ODP_TEST_INFO(test_version_str),
@@ -609,6 +654,7 @@ odp_testinfo_t system_suite[] = {
ODP_TEST_INFO_CONDITIONAL(system_test_cpu_cycles_long_period,
system_check_cycle_counter),
ODP_TEST_INFO(system_test_info),
+ ODP_TEST_INFO(system_test_meminfo),
ODP_TEST_INFO(system_test_info_print),
ODP_TEST_INFO(system_test_config_print),
ODP_TEST_INFO_NULL,