On Mon, Dec 29, 2014 at 09:24:01PM -0500, Mike Holmes wrote: > Add tests for odp_thread_core and odp_thread_id > > Signed-off-by: Mike Holmes <mike.hol...@linaro.org> > --- > test/validation/.gitignore | 1 + > test/validation/Makefile.am | 5 +++-- > test/validation/odp_thread.c | 47 > ++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 51 insertions(+), 2 deletions(-) > create mode 100644 test/validation/odp_thread.c > > diff --git a/test/validation/.gitignore b/test/validation/.gitignore > index d08db73..5b80834 100644 > --- a/test/validation/.gitignore > +++ b/test/validation/.gitignore > @@ -8,3 +8,4 @@ odp_shm > odp_system > odp_pktio > odp_buffer > +odp_thread > diff --git a/test/validation/Makefile.am b/test/validation/Makefile.am > index c0545b7..d52fbdb 100644 > --- a/test/validation/Makefile.am > +++ b/test/validation/Makefile.am > @@ -6,9 +6,9 @@ AM_LDFLAGS += -static > TESTS_ENVIRONMENT = ODP_PLATFORM=${with_platform} > > if ODP_CUNIT_ENABLED > -TESTS = odp_init odp_queue odp_crypto odp_shm odp_schedule odp_pktio_run > odp_buffer odp_system > +TESTS = odp_init odp_queue odp_crypto odp_shm odp_schedule odp_pktio_run > odp_buffer odp_system odp_thread > check_PROGRAMS = ${bin_PROGRAMS} > -bin_PROGRAMS = odp_init odp_queue odp_crypto odp_shm odp_schedule odp_pktio > odp_buffer odp_system > +bin_PROGRAMS = odp_init odp_queue odp_crypto odp_shm odp_schedule odp_pktio > odp_buffer odp_system odp_thread > odp_crypto_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/crypto > odp_buffer_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/buffer > endif > @@ -27,3 +27,4 @@ dist_odp_buffer_SOURCES = buffer/odp_buffer_pool_test.c \ > buffer/odp_packet_test.c \ > odp_buffer.c common/odp_cunit_common.c > dist_odp_system_SOURCES = odp_system.c common/odp_cunit_common.c > +dist_odp_thread_SOURCES = odp_thread.c common/odp_cunit_common.c > diff --git a/test/validation/odp_thread.c b/test/validation/odp_thread.c > new file mode 100644 > index 0000000..1c03b16 > --- /dev/null > +++ b/test/validation/odp_thread.c > @@ -0,0 +1,47 @@ > +/* Copyright (c) 2014, Linaro Limited > + * All rights reserved. > + * > + * SPDX-License-Identifier: BSD-3-Clause > + */ > + > +#include <odp.h> > +#include <odp_cunit_common.h> > + > +static void *run_thread_id_core(void *arg) > +{ > + int thr, core; > + pthrd_arg *thrdarg = arg; > + > + thr = odp_thread_id(); > + core = odp_thread_core(); > + > + /* cores start from 0 */ > + CU_ASSERT((core >= 0) && (core <= thrdarg->numthrds-1));
thrdarg is pointing to the stack(allocated in test_odp_thread_id_core()). Use odp shared mem to share the data between the cores or in this case, odp_sys_core_count()/MAX_WORKERS can be use here to find thrdarg->numthrds in run_thread_id_core() > + /* threads start from 1 */ > + CU_ASSERT((thr >= 1) && (core <= thrdarg->numthrds)); Is there any specific reason why thread id has to be start from one(Why not zero)? > + return arg; > +} > + > +static void test_odp_thread_id_core(void) > +{ > + pthrd_arg thrdarg; > + > + thrdarg.numthrds = odp_sys_core_count(); > + > + if (thrdarg.numthrds > MAX_WORKERS) > + thrdarg.numthrds = MAX_WORKERS; > + > + odp_cunit_thread_create(run_thread_id_core, &thrdarg); > + odp_cunit_thread_exit(&thrdarg); > +} > + > +CU_TestInfo test_odp_thread[] = { > + {"id & core range", test_odp_thread_id_core}, > + CU_TEST_INFO_NULL, > +}; > + > +CU_SuiteInfo odp_testsuites[] = { > + {"Thread", NULL, NULL, NULL, NULL, test_odp_thread}, > + CU_SUITE_INFO_NULL, > +}; > + > -- > 2.1.0 > > > _______________________________________________ > lng-odp mailing list > lng-odp@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/lng-odp _______________________________________________ lng-odp mailing list lng-odp@lists.linaro.org http://lists.linaro.org/mailman/listinfo/lng-odp