Message ID | 1430150040-10463-3-git-send-email-christophe.milard@linaro.org |
---|---|
State | New |
Headers | show |
On 2015-05-07 18:09, Mike Holmes wrote: > On 5 May 2015 at 12:31, Christophe Milard <christophe.milard@linaro.org> > wrote: > > > This is the one I'd like to be reviewed... (v2) sorry for the confusion. > > > > On 27 April 2015 at 17:54, Christophe Milard <christophe.milard@linaro.org > > > wrote: > > > >> The 3 init tests (init, abort,log) now links with > >> common/odp_cunit_common, > >> as other tests. In main, ODP init is now performed via weak functions > >> which are overloaded (to do nothing) by the 3 init tests. > >> > >> Signed-off-by: Christophe Milard <christophe.milard@linaro.org> > >> > > > Reviewed-by: Mike Holmes <mike.holmes@linaro.org> > the review was not sent to the lng-odp list. Can this be applied now? Cheers, Christophe > > > > --- > >> test/validation/Makefile.am | 6 ++--- > >> test/validation/common/odp_cunit_common.c | 45 > >> +++++++++++++++---------------- > >> test/validation/init/odp_init.c | 34 +++++++++-------------- > >> test/validation/init/odp_init_abort.c | 35 ++++++++++-------------- > >> test/validation/init/odp_init_log.c | 35 ++++++++++-------------- > >> test/validation/odp_crypto.c | 20 ++++++++++++++ > >> test/validation/odp_synchronizers.c | 9 +++++++ > >> 7 files changed, 95 insertions(+), 89 deletions(-) > >> > >> diff --git a/test/validation/Makefile.am b/test/validation/Makefile.am > >> index 7ea86c4..ba622c3 100644 > >> --- a/test/validation/Makefile.am > >> +++ b/test/validation/Makefile.am > >> @@ -48,9 +48,9 @@ dist_odp_classification_SOURCES = > >> classification/odp_classification_tests.c \ > >> odp_crypto_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/crypto > >> dist_odp_crypto_SOURCES = crypto/odp_crypto_test_inp.c \ > >> odp_crypto.c $(ODP_CU_COMMON) > >> -dist_odp_init_SOURCES = init/odp_init.c > >> -dist_odp_init_abort_SOURCES = init/odp_init_abort.c > >> -dist_odp_init_log_SOURCES = init/odp_init_log.c > >> +dist_odp_init_SOURCES = init/odp_init.c $(ODP_CU_COMMON) > >> +dist_odp_init_abort_SOURCES = init/odp_init_abort.c $(ODP_CU_COMMON) > >> +dist_odp_init_log_SOURCES = init/odp_init_log.c $(ODP_CU_COMMON) > >> dist_odp_queue_SOURCES = odp_queue.c $(ODP_CU_COMMON) > >> dist_odp_random_SOURCES = odp_random.c $(ODP_CU_COMMON) > >> dist_odp_schedule_SOURCES = odp_schedule.c $(ODP_CU_COMMON) > >> diff --git a/test/validation/common/odp_cunit_common.c > >> b/test/validation/common/odp_cunit_common.c > >> index 2af4410..eac2d81 100644 > >> --- a/test/validation/common/odp_cunit_common.c > >> +++ b/test/validation/common/odp_cunit_common.c > >> @@ -39,13 +39,32 @@ int odp_cunit_thread_exit(pthrd_arg *arg) > >> return 0; > >> } > >> > >> -__attribute__((__weak__)) int tests_global_init(void) > >> +ODP_WEAK_SYMBOL int tests_global_init(void) > >> { > >> + if (0 != odp_init_global(NULL, NULL)) { > >> + fprintf(stderr, "error: odp_init_global() failed.\n"); > >> + return -1; > >> + } > >> + if (0 != odp_init_local()) { > >> + fprintf(stderr, "error: odp_init_local() failed.\n"); > >> + return -1; > >> + } > >> + > >> return 0; > >> } > >> > >> -__attribute__((__weak__)) int tests_global_term(void) > >> +ODP_WEAK_SYMBOL int tests_global_term(void) > >> { > >> + if (0 != odp_term_local()) { > >> + fprintf(stderr, "error: odp_term_local() failed.\n"); > >> + return -1; > >> + } > >> + > >> + if (0 != odp_term_global()) { > >> + fprintf(stderr, "error: odp_term_global() failed.\n"); > >> + return -1; > >> + } > >> + > >> return 0; > >> } > >> > >> @@ -56,18 +75,8 @@ int main(void) > >> printf("\tODP API version: %s\n", odp_version_api_str()); > >> printf("\tODP implementation version: %s\n", > >> odp_version_impl_str()); > >> > >> - if (0 != odp_init_global(NULL, NULL)) { > >> - fprintf(stderr, "error: odp_init_global() failed.\n"); > >> + if (0 != tests_global_init()) > >> return -1; > >> - } > >> - if (0 != odp_init_local()) { > >> - fprintf(stderr, "error: odp_init_local() failed.\n"); > >> - return -1; > >> - } > >> - > >> - ret = tests_global_init(); > >> - if (ret) > >> - return ret; > >> > >> CU_set_error_action(CUEA_ABORT); > >> > >> @@ -83,15 +92,5 @@ int main(void) > >> if (0 != tests_global_term()) > >> return -1; > >> > >> - if (0 != odp_term_local()) { > >> - fprintf(stderr, "error: odp_term_local() failed.\n"); > >> - return -1; > >> - } > >> - > >> - if (0 != odp_term_global()) { > >> - fprintf(stderr, "error: odp_term_global() failed.\n"); > >> - return -1; > >> - } > >> - > >> return (ret) ? -1 : 0; > >> } > >> diff --git a/test/validation/init/odp_init.c > >> b/test/validation/init/odp_init.c > >> index 82f8849..3bbec11 100644 > >> --- a/test/validation/init/odp_init.c > >> +++ b/test/validation/init/odp_init.c > >> @@ -7,10 +7,23 @@ > >> #include <stdarg.h> > >> #include <odp.h> > >> #include <CUnit/Basic.h> > >> +#include "odp_cunit_common.h" > >> > >> #define DEFAULT_MSG_POOL_SIZE (4*1024*1024) > >> #define DEFAULT_MSG_SIZE (8) > >> > >> +/* overwrite common default so as not to perform odp init in main */ > >> +int tests_global_init(void) > >> +{ > >> + return 0; > >> +} > >> + > >> +/* overwrite common default so as not to perform odp term in main */ > >> +int tests_global_term(void) > >> +{ > >> + return 0; > >> +} > >> + > >> static void test_odp_init_global(void) > >> { > >> int status; > >> @@ -30,24 +43,3 @@ CU_SuiteInfo odp_testsuites[] = { > >> {"Init", NULL, NULL, NULL, NULL, test_odp_init}, > >> CU_SUITE_INFO_NULL, > >> }; > >> - > >> -int main(void) > >> -{ > >> - int ret; > >> - > >> - printf("\tODP API version: %s\n", odp_version_api_str()); > >> - printf("\tODP implementation version: %s\n", > >> odp_version_impl_str()); > >> - > >> - CU_set_error_action(CUEA_ABORT); > >> - > >> - CU_initialize_registry(); > >> - CU_register_suites(odp_testsuites); > >> - CU_basic_set_mode(CU_BRM_VERBOSE); > >> - CU_basic_run_tests(); > >> - > >> - ret = CU_get_number_of_failure_records(); > >> - > >> - CU_cleanup_registry(); > >> - > >> - return ret; > >> -} > >> diff --git a/test/validation/init/odp_init_abort.c > >> b/test/validation/init/odp_init_abort.c > >> index ceb82b5..c83c8d3 100644 > >> --- a/test/validation/init/odp_init_abort.c > >> +++ b/test/validation/init/odp_init_abort.c > >> @@ -8,6 +8,20 @@ > >> #include <stdlib.h> > >> #include <odp.h> > >> #include <CUnit/Basic.h> > >> +#include "odp_cunit_common.h" > >> + > >> +/* overwrite common default so as not to perform odp init in main */ > >> +int tests_global_init(void) > >> +{ > >> + return 0; > >> +} > >> + > >> +/* overwrite common default so as not to perform odp term in main */ > >> +int tests_global_term(void) > >> +{ > >> + return 0; > >> +} > >> + > >> > >> static void odp_init_abort(void) ODP_NORETURN; > >> > >> @@ -36,27 +50,6 @@ CU_SuiteInfo odp_testsuites[] = { > >> CU_SUITE_INFO_NULL, > >> }; > >> > >> -int main(void) > >> -{ > >> - int ret; > >> - > >> - printf("\tODP API version: %s\n", odp_version_api_str()); > >> - printf("\tODP implementation version: %s\n", > >> odp_version_impl_str()); > >> - > >> - CU_set_error_action(CUEA_ABORT); > >> - > >> - CU_initialize_registry(); > >> - CU_register_suites(odp_testsuites); > >> - CU_basic_set_mode(CU_BRM_VERBOSE); > >> - CU_basic_run_tests(); > >> - > >> - ret = CU_get_number_of_failure_records(); > >> - > >> - CU_cleanup_registry(); > >> - > >> - return ret; > >> -} > >> - > >> void odp_init_abort(void) > >> { > >> abort(); > >> diff --git a/test/validation/init/odp_init_log.c > >> b/test/validation/init/odp_init_log.c > >> index 275d343..f37ed91 100644 > >> --- a/test/validation/init/odp_init_log.c > >> +++ b/test/validation/init/odp_init_log.c > >> @@ -7,9 +7,23 @@ > >> #include <stdarg.h> > >> #include <odp.h> > >> #include <CUnit/Basic.h> > >> +#include "odp_cunit_common.h" > >> > >> int replacement_logging_used; > >> > >> +/* overwrite common default so as not to perform odp init in main */ > >> +int tests_global_init(void) > >> +{ > >> + return 0; > >> +} > >> + > >> +/* overwrite common default so as not to perform odp term in main */ > >> +int tests_global_term(void) > >> +{ > >> + return 0; > >> +} > >> + > >> + > >> ODP_PRINTF_FORMAT(2, 3) > >> static int odp_init_log(odp_log_level_e level , const char *fmt, ...); > >> > >> @@ -42,27 +56,6 @@ CU_SuiteInfo odp_testsuites[] = { > >> CU_SUITE_INFO_NULL, > >> }; > >> > >> -int main(void) > >> -{ > >> - int ret; > >> - > >> - printf("\tODP API version: %s\n", odp_version_api_str()); > >> - printf("\tODP implementation version: %s\n", > >> odp_version_impl_str()); > >> - > >> - CU_set_error_action(CUEA_ABORT); > >> - > >> - CU_initialize_registry(); > >> - CU_register_suites(odp_testsuites); > >> - CU_basic_set_mode(CU_BRM_VERBOSE); > >> - CU_basic_run_tests(); > >> - > >> - ret = CU_get_number_of_failure_records(); > >> - > >> - CU_cleanup_registry(); > >> - > >> - return ret; > >> -} > >> - > >> int odp_init_log(odp_log_level_e level __attribute__((unused)), > >> const char *fmt, ...) > >> { > >> diff --git a/test/validation/odp_crypto.c b/test/validation/odp_crypto.c > >> index f364b1a..022c9bd 100644 > >> --- a/test/validation/odp_crypto.c > >> +++ b/test/validation/odp_crypto.c > >> @@ -28,6 +28,15 @@ int tests_global_init(void) > >> odp_pool_t pool; > >> odp_queue_t out_queue; > >> > >> + if (0 != odp_init_global(NULL, NULL)) { > >> + fprintf(stderr, "error: odp_init_global() failed.\n"); > >> + return -1; > >> + } > >> + if (0 != odp_init_local()) { > >> + fprintf(stderr, "error: odp_init_local() failed.\n"); > >> + return -1; > >> + } > >> + > >> memset(¶ms, 0, sizeof(params)); > >> params.pkt.seg_len = SHM_PKT_POOL_BUF_SIZE; > >> params.pkt.len = SHM_PKT_POOL_BUF_SIZE; > >> @@ -71,5 +80,16 @@ int tests_global_term(void) > >> fprintf(stderr, "Packet pool not found.\n"); > >> } > >> > >> + if (0 != odp_term_local()) { > >> + fprintf(stderr, "error: odp_term_local() failed.\n"); > >> + return -1; > >> + } > >> + > >> + if (0 != odp_term_global()) { > >> + fprintf(stderr, "error: odp_term_global() failed.\n"); > >> + return -1; > >> + } > >> + > >> + > >> return 0; > >> } > >> diff --git a/test/validation/odp_synchronizers.c > >> b/test/validation/odp_synchronizers.c > >> index edb6bf1..c334015 100644 > >> --- a/test/validation/odp_synchronizers.c > >> +++ b/test/validation/odp_synchronizers.c > >> @@ -1051,6 +1051,15 @@ int tests_global_init(void) > >> uint32_t core_count, max_threads; > >> int ret = 0; > >> > >> + if (0 != odp_init_global(NULL, NULL)) { > >> + fprintf(stderr, "error: odp_init_global() failed.\n"); > >> + return -1; > >> + } > >> + if (0 != odp_init_local()) { > >> + fprintf(stderr, "error: odp_init_local() failed.\n"); > >> + return -1; > >> + } > >> + > >> global_shm = odp_shm_reserve(GLOBAL_SHM_NAME, > >> sizeof(global_shared_mem_t), 64, > >> ODP_SHM_SW_ONLY); > >> -- > >> 1.9.1 > >> > >> > > > > > -- > Mike Holmes > Technical Manager - Linaro Networking Group > Linaro.org <http://www.linaro.org/> *│ *Open source software for ARM SoCs
On 05/19/2015 17:49, Christophe Milard wrote: > On 2015-05-07 18:09, Mike Holmes wrote: >> On 5 May 2015 at 12:31, Christophe Milard <christophe.milard@linaro.org> >> wrote: >> >>> This is the one I'd like to be reviewed... (v2) sorry for the confusion. >>> >>> On 27 April 2015 at 17:54, Christophe Milard <christophe.milard@linaro.org >>>> wrote: >>>> The 3 init tests (init, abort,log) now links with >>>> common/odp_cunit_common, >>>> as other tests. In main, ODP init is now performed via weak functions >>>> which are overloaded (to do nothing) by the 3 init tests. >>>> >>>> Signed-off-by: Christophe Milard <christophe.milard@linaro.org> >>>> >> Reviewed-by: Mike Holmes <mike.holmes@linaro.org> >> > the review was not sent to the lng-odp list. > Can this be applied now? > > Cheers, > Christophe This patch needs checkpatch errors fixed. Maxim. >> >>> --- >>>> test/validation/Makefile.am | 6 ++--- >>>> test/validation/common/odp_cunit_common.c | 45 >>>> +++++++++++++++---------------- >>>> test/validation/init/odp_init.c | 34 +++++++++-------------- >>>> test/validation/init/odp_init_abort.c | 35 ++++++++++-------------- >>>> test/validation/init/odp_init_log.c | 35 ++++++++++-------------- >>>> test/validation/odp_crypto.c | 20 ++++++++++++++ >>>> test/validation/odp_synchronizers.c | 9 +++++++ >>>> 7 files changed, 95 insertions(+), 89 deletions(-) >>>> >>>> diff --git a/test/validation/Makefile.am b/test/validation/Makefile.am >>>> index 7ea86c4..ba622c3 100644 >>>> --- a/test/validation/Makefile.am >>>> +++ b/test/validation/Makefile.am >>>> @@ -48,9 +48,9 @@ dist_odp_classification_SOURCES = >>>> classification/odp_classification_tests.c \ >>>> odp_crypto_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/crypto >>>> dist_odp_crypto_SOURCES = crypto/odp_crypto_test_inp.c \ >>>> odp_crypto.c $(ODP_CU_COMMON) >>>> -dist_odp_init_SOURCES = init/odp_init.c >>>> -dist_odp_init_abort_SOURCES = init/odp_init_abort.c >>>> -dist_odp_init_log_SOURCES = init/odp_init_log.c >>>> +dist_odp_init_SOURCES = init/odp_init.c $(ODP_CU_COMMON) >>>> +dist_odp_init_abort_SOURCES = init/odp_init_abort.c $(ODP_CU_COMMON) >>>> +dist_odp_init_log_SOURCES = init/odp_init_log.c $(ODP_CU_COMMON) >>>> dist_odp_queue_SOURCES = odp_queue.c $(ODP_CU_COMMON) >>>> dist_odp_random_SOURCES = odp_random.c $(ODP_CU_COMMON) >>>> dist_odp_schedule_SOURCES = odp_schedule.c $(ODP_CU_COMMON) >>>> diff --git a/test/validation/common/odp_cunit_common.c >>>> b/test/validation/common/odp_cunit_common.c >>>> index 2af4410..eac2d81 100644 >>>> --- a/test/validation/common/odp_cunit_common.c >>>> +++ b/test/validation/common/odp_cunit_common.c >>>> @@ -39,13 +39,32 @@ int odp_cunit_thread_exit(pthrd_arg *arg) >>>> return 0; >>>> } >>>> >>>> -__attribute__((__weak__)) int tests_global_init(void) >>>> +ODP_WEAK_SYMBOL int tests_global_init(void) >>>> { >>>> + if (0 != odp_init_global(NULL, NULL)) { >>>> + fprintf(stderr, "error: odp_init_global() failed.\n"); >>>> + return -1; >>>> + } >>>> + if (0 != odp_init_local()) { >>>> + fprintf(stderr, "error: odp_init_local() failed.\n"); >>>> + return -1; >>>> + } >>>> + >>>> return 0; >>>> } >>>> >>>> -__attribute__((__weak__)) int tests_global_term(void) >>>> +ODP_WEAK_SYMBOL int tests_global_term(void) >>>> { >>>> + if (0 != odp_term_local()) { >>>> + fprintf(stderr, "error: odp_term_local() failed.\n"); >>>> + return -1; >>>> + } >>>> + >>>> + if (0 != odp_term_global()) { >>>> + fprintf(stderr, "error: odp_term_global() failed.\n"); >>>> + return -1; >>>> + } >>>> + >>>> return 0; >>>> } >>>> >>>> @@ -56,18 +75,8 @@ int main(void) >>>> printf("\tODP API version: %s\n", odp_version_api_str()); >>>> printf("\tODP implementation version: %s\n", >>>> odp_version_impl_str()); >>>> >>>> - if (0 != odp_init_global(NULL, NULL)) { >>>> - fprintf(stderr, "error: odp_init_global() failed.\n"); >>>> + if (0 != tests_global_init()) >>>> return -1; >>>> - } >>>> - if (0 != odp_init_local()) { >>>> - fprintf(stderr, "error: odp_init_local() failed.\n"); >>>> - return -1; >>>> - } >>>> - >>>> - ret = tests_global_init(); >>>> - if (ret) >>>> - return ret; >>>> >>>> CU_set_error_action(CUEA_ABORT); >>>> >>>> @@ -83,15 +92,5 @@ int main(void) >>>> if (0 != tests_global_term()) >>>> return -1; >>>> >>>> - if (0 != odp_term_local()) { >>>> - fprintf(stderr, "error: odp_term_local() failed.\n"); >>>> - return -1; >>>> - } >>>> - >>>> - if (0 != odp_term_global()) { >>>> - fprintf(stderr, "error: odp_term_global() failed.\n"); >>>> - return -1; >>>> - } >>>> - >>>> return (ret) ? -1 : 0; >>>> } >>>> diff --git a/test/validation/init/odp_init.c >>>> b/test/validation/init/odp_init.c >>>> index 82f8849..3bbec11 100644 >>>> --- a/test/validation/init/odp_init.c >>>> +++ b/test/validation/init/odp_init.c >>>> @@ -7,10 +7,23 @@ >>>> #include <stdarg.h> >>>> #include <odp.h> >>>> #include <CUnit/Basic.h> >>>> +#include "odp_cunit_common.h" >>>> >>>> #define DEFAULT_MSG_POOL_SIZE (4*1024*1024) >>>> #define DEFAULT_MSG_SIZE (8) >>>> >>>> +/* overwrite common default so as not to perform odp init in main */ >>>> +int tests_global_init(void) >>>> +{ >>>> + return 0; >>>> +} >>>> + >>>> +/* overwrite common default so as not to perform odp term in main */ >>>> +int tests_global_term(void) >>>> +{ >>>> + return 0; >>>> +} >>>> + >>>> static void test_odp_init_global(void) >>>> { >>>> int status; >>>> @@ -30,24 +43,3 @@ CU_SuiteInfo odp_testsuites[] = { >>>> {"Init", NULL, NULL, NULL, NULL, test_odp_init}, >>>> CU_SUITE_INFO_NULL, >>>> }; >>>> - >>>> -int main(void) >>>> -{ >>>> - int ret; >>>> - >>>> - printf("\tODP API version: %s\n", odp_version_api_str()); >>>> - printf("\tODP implementation version: %s\n", >>>> odp_version_impl_str()); >>>> - >>>> - CU_set_error_action(CUEA_ABORT); >>>> - >>>> - CU_initialize_registry(); >>>> - CU_register_suites(odp_testsuites); >>>> - CU_basic_set_mode(CU_BRM_VERBOSE); >>>> - CU_basic_run_tests(); >>>> - >>>> - ret = CU_get_number_of_failure_records(); >>>> - >>>> - CU_cleanup_registry(); >>>> - >>>> - return ret; >>>> -} >>>> diff --git a/test/validation/init/odp_init_abort.c >>>> b/test/validation/init/odp_init_abort.c >>>> index ceb82b5..c83c8d3 100644 >>>> --- a/test/validation/init/odp_init_abort.c >>>> +++ b/test/validation/init/odp_init_abort.c >>>> @@ -8,6 +8,20 @@ >>>> #include <stdlib.h> >>>> #include <odp.h> >>>> #include <CUnit/Basic.h> >>>> +#include "odp_cunit_common.h" >>>> + >>>> +/* overwrite common default so as not to perform odp init in main */ >>>> +int tests_global_init(void) >>>> +{ >>>> + return 0; >>>> +} >>>> + >>>> +/* overwrite common default so as not to perform odp term in main */ >>>> +int tests_global_term(void) >>>> +{ >>>> + return 0; >>>> +} >>>> + >>>> >>>> static void odp_init_abort(void) ODP_NORETURN; >>>> >>>> @@ -36,27 +50,6 @@ CU_SuiteInfo odp_testsuites[] = { >>>> CU_SUITE_INFO_NULL, >>>> }; >>>> >>>> -int main(void) >>>> -{ >>>> - int ret; >>>> - >>>> - printf("\tODP API version: %s\n", odp_version_api_str()); >>>> - printf("\tODP implementation version: %s\n", >>>> odp_version_impl_str()); >>>> - >>>> - CU_set_error_action(CUEA_ABORT); >>>> - >>>> - CU_initialize_registry(); >>>> - CU_register_suites(odp_testsuites); >>>> - CU_basic_set_mode(CU_BRM_VERBOSE); >>>> - CU_basic_run_tests(); >>>> - >>>> - ret = CU_get_number_of_failure_records(); >>>> - >>>> - CU_cleanup_registry(); >>>> - >>>> - return ret; >>>> -} >>>> - >>>> void odp_init_abort(void) >>>> { >>>> abort(); >>>> diff --git a/test/validation/init/odp_init_log.c >>>> b/test/validation/init/odp_init_log.c >>>> index 275d343..f37ed91 100644 >>>> --- a/test/validation/init/odp_init_log.c >>>> +++ b/test/validation/init/odp_init_log.c >>>> @@ -7,9 +7,23 @@ >>>> #include <stdarg.h> >>>> #include <odp.h> >>>> #include <CUnit/Basic.h> >>>> +#include "odp_cunit_common.h" >>>> >>>> int replacement_logging_used; >>>> >>>> +/* overwrite common default so as not to perform odp init in main */ >>>> +int tests_global_init(void) >>>> +{ >>>> + return 0; >>>> +} >>>> + >>>> +/* overwrite common default so as not to perform odp term in main */ >>>> +int tests_global_term(void) >>>> +{ >>>> + return 0; >>>> +} >>>> + >>>> + >>>> ODP_PRINTF_FORMAT(2, 3) >>>> static int odp_init_log(odp_log_level_e level , const char *fmt, ...); >>>> >>>> @@ -42,27 +56,6 @@ CU_SuiteInfo odp_testsuites[] = { >>>> CU_SUITE_INFO_NULL, >>>> }; >>>> >>>> -int main(void) >>>> -{ >>>> - int ret; >>>> - >>>> - printf("\tODP API version: %s\n", odp_version_api_str()); >>>> - printf("\tODP implementation version: %s\n", >>>> odp_version_impl_str()); >>>> - >>>> - CU_set_error_action(CUEA_ABORT); >>>> - >>>> - CU_initialize_registry(); >>>> - CU_register_suites(odp_testsuites); >>>> - CU_basic_set_mode(CU_BRM_VERBOSE); >>>> - CU_basic_run_tests(); >>>> - >>>> - ret = CU_get_number_of_failure_records(); >>>> - >>>> - CU_cleanup_registry(); >>>> - >>>> - return ret; >>>> -} >>>> - >>>> int odp_init_log(odp_log_level_e level __attribute__((unused)), >>>> const char *fmt, ...) >>>> { >>>> diff --git a/test/validation/odp_crypto.c b/test/validation/odp_crypto.c >>>> index f364b1a..022c9bd 100644 >>>> --- a/test/validation/odp_crypto.c >>>> +++ b/test/validation/odp_crypto.c >>>> @@ -28,6 +28,15 @@ int tests_global_init(void) >>>> odp_pool_t pool; >>>> odp_queue_t out_queue; >>>> >>>> + if (0 != odp_init_global(NULL, NULL)) { >>>> + fprintf(stderr, "error: odp_init_global() failed.\n"); >>>> + return -1; >>>> + } >>>> + if (0 != odp_init_local()) { >>>> + fprintf(stderr, "error: odp_init_local() failed.\n"); >>>> + return -1; >>>> + } >>>> + >>>> memset(¶ms, 0, sizeof(params)); >>>> params.pkt.seg_len = SHM_PKT_POOL_BUF_SIZE; >>>> params.pkt.len = SHM_PKT_POOL_BUF_SIZE; >>>> @@ -71,5 +80,16 @@ int tests_global_term(void) >>>> fprintf(stderr, "Packet pool not found.\n"); >>>> } >>>> >>>> + if (0 != odp_term_local()) { >>>> + fprintf(stderr, "error: odp_term_local() failed.\n"); >>>> + return -1; >>>> + } >>>> + >>>> + if (0 != odp_term_global()) { >>>> + fprintf(stderr, "error: odp_term_global() failed.\n"); >>>> + return -1; >>>> + } >>>> + >>>> + >>>> return 0; >>>> } >>>> diff --git a/test/validation/odp_synchronizers.c >>>> b/test/validation/odp_synchronizers.c >>>> index edb6bf1..c334015 100644 >>>> --- a/test/validation/odp_synchronizers.c >>>> +++ b/test/validation/odp_synchronizers.c >>>> @@ -1051,6 +1051,15 @@ int tests_global_init(void) >>>> uint32_t core_count, max_threads; >>>> int ret = 0; >>>> >>>> + if (0 != odp_init_global(NULL, NULL)) { >>>> + fprintf(stderr, "error: odp_init_global() failed.\n"); >>>> + return -1; >>>> + } >>>> + if (0 != odp_init_local()) { >>>> + fprintf(stderr, "error: odp_init_local() failed.\n"); >>>> + return -1; >>>> + } >>>> + >>>> global_shm = odp_shm_reserve(GLOBAL_SHM_NAME, >>>> sizeof(global_shared_mem_t), 64, >>>> ODP_SHM_SW_ONLY); >>>> -- >>>> 1.9.1 >>>> >>>> >> >> -- >> Mike Holmes >> Technical Manager - Linaro Networking Group >> Linaro.org <http://www.linaro.org/> *│ *Open source software for ARM SoCs
diff --git a/test/validation/Makefile.am b/test/validation/Makefile.am index 7ea86c4..ba622c3 100644 --- a/test/validation/Makefile.am +++ b/test/validation/Makefile.am @@ -48,9 +48,9 @@ dist_odp_classification_SOURCES = classification/odp_classification_tests.c \ odp_crypto_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/crypto dist_odp_crypto_SOURCES = crypto/odp_crypto_test_inp.c \ odp_crypto.c $(ODP_CU_COMMON) -dist_odp_init_SOURCES = init/odp_init.c -dist_odp_init_abort_SOURCES = init/odp_init_abort.c -dist_odp_init_log_SOURCES = init/odp_init_log.c +dist_odp_init_SOURCES = init/odp_init.c $(ODP_CU_COMMON) +dist_odp_init_abort_SOURCES = init/odp_init_abort.c $(ODP_CU_COMMON) +dist_odp_init_log_SOURCES = init/odp_init_log.c $(ODP_CU_COMMON) dist_odp_queue_SOURCES = odp_queue.c $(ODP_CU_COMMON) dist_odp_random_SOURCES = odp_random.c $(ODP_CU_COMMON) dist_odp_schedule_SOURCES = odp_schedule.c $(ODP_CU_COMMON) diff --git a/test/validation/common/odp_cunit_common.c b/test/validation/common/odp_cunit_common.c index 2af4410..eac2d81 100644 --- a/test/validation/common/odp_cunit_common.c +++ b/test/validation/common/odp_cunit_common.c @@ -39,13 +39,32 @@ int odp_cunit_thread_exit(pthrd_arg *arg) return 0; } -__attribute__((__weak__)) int tests_global_init(void) +ODP_WEAK_SYMBOL int tests_global_init(void) { + if (0 != odp_init_global(NULL, NULL)) { + fprintf(stderr, "error: odp_init_global() failed.\n"); + return -1; + } + if (0 != odp_init_local()) { + fprintf(stderr, "error: odp_init_local() failed.\n"); + return -1; + } + return 0; } -__attribute__((__weak__)) int tests_global_term(void) +ODP_WEAK_SYMBOL int tests_global_term(void) { + if (0 != odp_term_local()) { + fprintf(stderr, "error: odp_term_local() failed.\n"); + return -1; + } + + if (0 != odp_term_global()) { + fprintf(stderr, "error: odp_term_global() failed.\n"); + return -1; + } + return 0; } @@ -56,18 +75,8 @@ int main(void) printf("\tODP API version: %s\n", odp_version_api_str()); printf("\tODP implementation version: %s\n", odp_version_impl_str()); - if (0 != odp_init_global(NULL, NULL)) { - fprintf(stderr, "error: odp_init_global() failed.\n"); + if (0 != tests_global_init()) return -1; - } - if (0 != odp_init_local()) { - fprintf(stderr, "error: odp_init_local() failed.\n"); - return -1; - } - - ret = tests_global_init(); - if (ret) - return ret; CU_set_error_action(CUEA_ABORT); @@ -83,15 +92,5 @@ int main(void) if (0 != tests_global_term()) return -1; - if (0 != odp_term_local()) { - fprintf(stderr, "error: odp_term_local() failed.\n"); - return -1; - } - - if (0 != odp_term_global()) { - fprintf(stderr, "error: odp_term_global() failed.\n"); - return -1; - } - return (ret) ? -1 : 0; } diff --git a/test/validation/init/odp_init.c b/test/validation/init/odp_init.c index 82f8849..3bbec11 100644 --- a/test/validation/init/odp_init.c +++ b/test/validation/init/odp_init.c @@ -7,10 +7,23 @@ #include <stdarg.h> #include <odp.h> #include <CUnit/Basic.h> +#include "odp_cunit_common.h" #define DEFAULT_MSG_POOL_SIZE (4*1024*1024) #define DEFAULT_MSG_SIZE (8) +/* overwrite common default so as not to perform odp init in main */ +int tests_global_init(void) +{ + return 0; +} + +/* overwrite common default so as not to perform odp term in main */ +int tests_global_term(void) +{ + return 0; +} + static void test_odp_init_global(void) { int status; @@ -30,24 +43,3 @@ CU_SuiteInfo odp_testsuites[] = { {"Init", NULL, NULL, NULL, NULL, test_odp_init}, CU_SUITE_INFO_NULL, }; - -int main(void) -{ - int ret; - - printf("\tODP API version: %s\n", odp_version_api_str()); - printf("\tODP implementation version: %s\n", odp_version_impl_str()); - - CU_set_error_action(CUEA_ABORT); - - CU_initialize_registry(); - CU_register_suites(odp_testsuites); - CU_basic_set_mode(CU_BRM_VERBOSE); - CU_basic_run_tests(); - - ret = CU_get_number_of_failure_records(); - - CU_cleanup_registry(); - - return ret; -} diff --git a/test/validation/init/odp_init_abort.c b/test/validation/init/odp_init_abort.c index ceb82b5..c83c8d3 100644 --- a/test/validation/init/odp_init_abort.c +++ b/test/validation/init/odp_init_abort.c @@ -8,6 +8,20 @@ #include <stdlib.h> #include <odp.h> #include <CUnit/Basic.h> +#include "odp_cunit_common.h" + +/* overwrite common default so as not to perform odp init in main */ +int tests_global_init(void) +{ + return 0; +} + +/* overwrite common default so as not to perform odp term in main */ +int tests_global_term(void) +{ + return 0; +} + static void odp_init_abort(void) ODP_NORETURN; @@ -36,27 +50,6 @@ CU_SuiteInfo odp_testsuites[] = { CU_SUITE_INFO_NULL, }; -int main(void) -{ - int ret; - - printf("\tODP API version: %s\n", odp_version_api_str()); - printf("\tODP implementation version: %s\n", odp_version_impl_str()); - - CU_set_error_action(CUEA_ABORT); - - CU_initialize_registry(); - CU_register_suites(odp_testsuites); - CU_basic_set_mode(CU_BRM_VERBOSE); - CU_basic_run_tests(); - - ret = CU_get_number_of_failure_records(); - - CU_cleanup_registry(); - - return ret; -} - void odp_init_abort(void) { abort(); diff --git a/test/validation/init/odp_init_log.c b/test/validation/init/odp_init_log.c index 275d343..f37ed91 100644 --- a/test/validation/init/odp_init_log.c +++ b/test/validation/init/odp_init_log.c @@ -7,9 +7,23 @@ #include <stdarg.h> #include <odp.h> #include <CUnit/Basic.h> +#include "odp_cunit_common.h" int replacement_logging_used; +/* overwrite common default so as not to perform odp init in main */ +int tests_global_init(void) +{ + return 0; +} + +/* overwrite common default so as not to perform odp term in main */ +int tests_global_term(void) +{ + return 0; +} + + ODP_PRINTF_FORMAT(2, 3) static int odp_init_log(odp_log_level_e level , const char *fmt, ...); @@ -42,27 +56,6 @@ CU_SuiteInfo odp_testsuites[] = { CU_SUITE_INFO_NULL, }; -int main(void) -{ - int ret; - - printf("\tODP API version: %s\n", odp_version_api_str()); - printf("\tODP implementation version: %s\n", odp_version_impl_str()); - - CU_set_error_action(CUEA_ABORT); - - CU_initialize_registry(); - CU_register_suites(odp_testsuites); - CU_basic_set_mode(CU_BRM_VERBOSE); - CU_basic_run_tests(); - - ret = CU_get_number_of_failure_records(); - - CU_cleanup_registry(); - - return ret; -} - int odp_init_log(odp_log_level_e level __attribute__((unused)), const char *fmt, ...) { diff --git a/test/validation/odp_crypto.c b/test/validation/odp_crypto.c index f364b1a..022c9bd 100644 --- a/test/validation/odp_crypto.c +++ b/test/validation/odp_crypto.c @@ -28,6 +28,15 @@ int tests_global_init(void) odp_pool_t pool; odp_queue_t out_queue; + if (0 != odp_init_global(NULL, NULL)) { + fprintf(stderr, "error: odp_init_global() failed.\n"); + return -1; + } + if (0 != odp_init_local()) { + fprintf(stderr, "error: odp_init_local() failed.\n"); + return -1; + } + memset(¶ms, 0, sizeof(params)); params.pkt.seg_len = SHM_PKT_POOL_BUF_SIZE; params.pkt.len = SHM_PKT_POOL_BUF_SIZE; @@ -71,5 +80,16 @@ int tests_global_term(void) fprintf(stderr, "Packet pool not found.\n"); } + if (0 != odp_term_local()) { + fprintf(stderr, "error: odp_term_local() failed.\n"); + return -1; + } + + if (0 != odp_term_global()) { + fprintf(stderr, "error: odp_term_global() failed.\n"); + return -1; + } + + return 0; } diff --git a/test/validation/odp_synchronizers.c b/test/validation/odp_synchronizers.c index edb6bf1..c334015 100644 --- a/test/validation/odp_synchronizers.c +++ b/test/validation/odp_synchronizers.c @@ -1051,6 +1051,15 @@ int tests_global_init(void) uint32_t core_count, max_threads; int ret = 0; + if (0 != odp_init_global(NULL, NULL)) { + fprintf(stderr, "error: odp_init_global() failed.\n"); + return -1; + } + if (0 != odp_init_local()) { + fprintf(stderr, "error: odp_init_local() failed.\n"); + return -1; + } + global_shm = odp_shm_reserve(GLOBAL_SHM_NAME, sizeof(global_shared_mem_t), 64, ODP_SHM_SW_ONLY);
The 3 init tests (init, abort,log) now links with common/odp_cunit_common, as other tests. In main, ODP init is now performed via weak functions which are overloaded (to do nothing) by the 3 init tests. Signed-off-by: Christophe Milard <christophe.milard@linaro.org> --- test/validation/Makefile.am | 6 ++--- test/validation/common/odp_cunit_common.c | 45 +++++++++++++++---------------- test/validation/init/odp_init.c | 34 +++++++++-------------- test/validation/init/odp_init_abort.c | 35 ++++++++++-------------- test/validation/init/odp_init_log.c | 35 ++++++++++-------------- test/validation/odp_crypto.c | 20 ++++++++++++++ test/validation/odp_synchronizers.c | 9 +++++++ 7 files changed, 95 insertions(+), 89 deletions(-)