diff options
author | Petri Savolainen <petri.savolainen@nokia.com> | 2022-11-08 17:07:57 +0200 |
---|---|---|
committer | Matias Elo <matias.elo@nokia.com> | 2022-11-30 12:43:46 +0200 |
commit | e51c5c80f22aa2b12f5c13f4f9e7d60b9f7a6981 (patch) | |
tree | 82384858cd98aa32e6f0d2ee55a9e5e9db27535e /test | |
parent | 12420db0842dccb57f6d8e8cd9b6e3168b121018 (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.c | 46 |
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, |