diff options
author | Jere Leppänen <jere.leppanen@nokia.com> | 2021-04-20 16:55:03 +0300 |
---|---|---|
committer | Matias Elo <matias.elo@nokia.com> | 2021-05-05 11:10:39 +0300 |
commit | ab29119cb6b71bb07afdc8022e6a561fcea20098 (patch) | |
tree | 5b051cd4cb87e09878c80216a07927df2ea55959 /test/validation/api | |
parent | c054a02ccb9a6c3db8e320b13477526e82326713 (diff) |
validation: init: test thread specific log function
Test that a thread specific log function is called if and only if it
is set.
Signed-off-by: Jere Leppänen <jere.leppanen@nokia.com>
Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
Diffstat (limited to 'test/validation/api')
-rw-r--r-- | test/validation/api/Makefile.am | 1 | ||||
-rw-r--r-- | test/validation/api/init/.gitignore | 1 | ||||
-rw-r--r-- | test/validation/api/init/Makefile.am | 4 | ||||
-rw-r--r-- | test/validation/api/init/init_main.c | 51 |
4 files changed, 55 insertions, 2 deletions
diff --git a/test/validation/api/Makefile.am b/test/validation/api/Makefile.am index 9fb77bcf7..ce29781d6 100644 --- a/test/validation/api/Makefile.am +++ b/test/validation/api/Makefile.am @@ -47,6 +47,7 @@ TESTS = \ init/init_defaults$(EXEEXT) \ init/init_abort$(EXEEXT) \ init/init_log$(EXEEXT) \ + init/init_log_thread$(EXEEXT) \ init/init_num_thr$(EXEEXT) \ init/init_feature_enabled$(EXEEXT) \ init/init_feature_disabled$(EXEEXT) \ diff --git a/test/validation/api/init/.gitignore b/test/validation/api/init/.gitignore index 05301baac..5001771bf 100644 --- a/test/validation/api/init/.gitignore +++ b/test/validation/api/init/.gitignore @@ -1,6 +1,7 @@ init_defaults init_abort init_log +init_log_thread init_num_thr init_feature_enabled init_feature_disabled diff --git a/test/validation/api/init/Makefile.am b/test/validation/api/init/Makefile.am index 297f33dc4..479e3a71b 100644 --- a/test/validation/api/init/Makefile.am +++ b/test/validation/api/init/Makefile.am @@ -3,7 +3,7 @@ include ../Makefile.inc # Keep init test cases in separate binaries. Some implementations may not allow # the same application process to call odp_init_global() multiple times. test_PROGRAMS = init_defaults init_abort init_log init_num_thr \ - init_feature_enabled init_feature_disabled + init_feature_enabled init_feature_disabled init_log_thread init_defaults_CPPFLAGS = -DINIT_TEST=0 $(AM_CPPFLAGS) init_abort_CPPFLAGS = -DINIT_TEST=1 $(AM_CPPFLAGS) @@ -11,6 +11,7 @@ init_log_CPPFLAGS = -DINIT_TEST=2 $(AM_CPPFLAGS) init_num_thr_CPPFLAGS = -DINIT_TEST=3 $(AM_CPPFLAGS) init_feature_enabled_CPPFLAGS = -DINIT_TEST=4 $(AM_CPPFLAGS) init_feature_disabled_CPPFLAGS = -DINIT_TEST=5 $(AM_CPPFLAGS) +init_log_thread_CPPFLAGS = -DINIT_TEST=6 $(AM_CPPFLAGS) init_defaults_SOURCES = init_main.c init_abort_SOURCES = init_main.c @@ -18,3 +19,4 @@ init_log_SOURCES = init_main.c init_num_thr_SOURCES = init_main.c init_feature_enabled_SOURCES = init_main.c init_feature_disabled_SOURCES = init_main.c +init_log_thread_SOURCES = init_main.c diff --git a/test/validation/api/init/init_main.c b/test/validation/api/init/init_main.c index baf6a5458..c335e10a3 100644 --- a/test/validation/api/init/init_main.c +++ b/test/validation/api/init/init_main.c @@ -10,6 +10,7 @@ #include <stdarg.h> #include <stdlib.h> +#include <stdio.h> /* Replacement abort function */ static void ODP_NORETURN my_abort_func(void) @@ -32,6 +33,20 @@ static int my_log_func(odp_log_level_t level __attribute__((unused)), return r; } +static uint32_t my_log_thread_func_count; + +/* Thread specific log function */ +ODP_PRINTF_FORMAT(2, 3) +static int my_log_thread_func(odp_log_level_t level, const char *fmt, ...) +{ + (void)level; + (void)fmt; + + my_log_thread_func_count++; + + return 0; +} + static void init_test_defaults(void) { int ret; @@ -97,6 +112,39 @@ static void init_test_log(void) CU_ASSERT(ret == 0); } +static void init_test_log_thread(void) +{ + int ret; + odp_instance_t instance; + odp_init_t param; + + odp_init_param_init(¶m); + + ret = odp_init_global(&instance, ¶m, NULL); + CU_ASSERT_FATAL(ret == 0); + + ret = odp_init_local(instance, ODP_THREAD_WORKER); + CU_ASSERT_FATAL(ret == 0); + + /* Test that our print function is called when set. */ + odp_log_thread_fn_set(my_log_thread_func); + my_log_thread_func_count = 0; + odp_sys_info_print(); + CU_ASSERT(my_log_thread_func_count != 0); + + /* Test that our print function is not called when not set. */ + odp_log_thread_fn_set(NULL); + my_log_thread_func_count = 0; + odp_sys_info_print(); + CU_ASSERT(my_log_thread_func_count == 0); + + ret = odp_term_local(); + CU_ASSERT_FATAL(ret == 0); + + ret = odp_term_global(instance); + CU_ASSERT(ret == 0); +} + static void init_test_num_thr(void) { int ret; @@ -178,7 +226,8 @@ odp_testinfo_t testinfo[] = { ODP_TEST_INFO(init_test_log), ODP_TEST_INFO(init_test_num_thr), ODP_TEST_INFO(init_test_feature_enabled), - ODP_TEST_INFO(init_test_feature_disabled) + ODP_TEST_INFO(init_test_feature_disabled), + ODP_TEST_INFO(init_test_log_thread), }; odp_testinfo_t init_suite[] = { |