aboutsummaryrefslogtreecommitdiff
path: root/test/validation/shmem/shmem.c
AgeCommit message (Collapse)Author
2016-07-21validation: moving api validation tests to prepare for new interfacesChristophe Milard
API tests are now moved to test/common_plat/validation/api (from test/validation), The reason for this move is two folded: * Moving down validation to all-plaforms/validation disambiguates the meaning of validation (which up to now was referring to both platform agnostic tests and to the set of tests to pass to be ODP compatible). Now things in test/common_plat/ are platform agnostic. So test/common_plat/validation/* are platform agnostic things for the validation tests, as much as test/common_plat/performance are platform agnostic things for the performance tests. * creating the api directory under "validation" simply enable adding other interfaces (such as future drv) as part of the validation tests Signed-off-by: Christophe Milard <christophe.milard@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Reviewed-and-tested-by: Yi He <yi.he@linaro.org> Reviewed-by: Mike Holmes <mike.holmes@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2016-05-23validation: using implementation agnostic function for ODP threadsChristophe Milard
cunit_common is changed to use the implementation agnostic ODP thread create and join functions, from helpers. Tests are no longer aware if an odp thread is a linux process or linux thread under the hood. The helper decides. The function pointer which is passed when creating the odp threads now points to a function returning an int instead of a ptr. This is changed so that when odp threads are processes, the int returned become the process exit code. The return code is nevertheless just used to detect erros (as before). Note that it is now important that the ODP threads return a correct status, as for processes, odp threads runs on a copy of the memory, so that c_unit assertions will not be reflected on the main process summary. Failing to return a proper status means that error will be lost when running the test in process mode. odp threads returning an error status code will be detected as an error on the main process at join time... Signed-off-by: Christophe Milard <christophe.milard@linaro.org> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Brian Brooks <brian.brooks@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2016-05-23validation: shmem: adding command line argument parsingChristophe Milard
As the test itself does not have specific args, it just calls the cunit_common parsing function to pick up cunit_common and helpers arguments. Signed-off-by: Christophe Milard <christophe.milard@linaro.org> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-by: Brian Brooks <brian.brooks@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2016-04-21test: correct worker count calculationGary S. Robertson
During the process of addressing Linaro BUG 2027 which relates to inaccurate reporting of available CPUs by ODP linux-generic when running atop a kernel compiled with NO_HZ_FULL support, a number of instances were encountered in the validation and performance test software where incorrect methods were used to determine the proper (or maximum) number of worker threads to create. See Linaro BUG 2027 for details. https://bugs.linaro.org/show_bug.cgi?id=2027 The use of odp_cpu_count() for this purpose is incorrect and deprecated... odp_cpumask_default_worker() should always be used to determine the set and number of CPUs available for creating worker threads. The use of odp_cpu_count() for this purpose in conjunction with the correct means of determining available CPUs resulted in some tests hanging in calls to odp_barrier_wait() as the barriers were initialized to expect threads on ALL CPUs rather than on worker CPUs alone... and there were too few worker threads created to satisfy the barriers. The changes below correct all instances I could find of this deprecated technique and allowed all tests to complete successfully with the BUG 2027 patch applied. (BTW they also run correctly without that patch after the application of the modifications included here.) Signed-off-by: Gary S. Robertson <gary.robertson@linaro.org> Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2016-03-04api: move include/odp.h to include/odp_api.hChristophe Milard
odp.h actually describes the applicatiion interface of ODP and is logicaly moved to odp_api.h. Applications now includes <odp_api.h>. This simplifies the addition of other ODP interfaces (e.g. drivers may include odp_drv.h in the future.) Signed-off-by: Christophe Milard <christophe.milard@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2016-01-25validation: shmem: sync threads with barrierIvan Khoronzhuk
It's not convenient to see reused a thread id for threads that are finished to fast. Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org> Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2015-10-15validation: add odp_cunit_update() to modify registered testsStuart Haslam
Add an odp_cunit_update() function to allow some attributes of previously registered tests to be modified, such as whether it's active or not. Previously, registering and running tests was done in a single step; odp_cunit_run(testsuites); But this is now split; odp_cunit_register(testsuites); odp_cunit_update(testsuites_updates); odp_cunit_run(); The odp_cunit_update() is optional and none of the currently defined tests use it, so there's no functional change in this patch. Signed-off-by: Stuart Haslam <stuart.haslam@linaro.org> Reviewed-by: Christophe Milard <christophe.milard@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2015-10-15validation: add ability to mark tests inactiveStuart Haslam
Add the ability for individual test cases to be marked as inactive, either unconditionally or based on the result of a check function which is called at test init time. Inactive tests are registered with CUnit and are reported as inactive in test reports without being executed. All uses of CU_TestInfo have been replaced with odp_testinfo_t in order to carry the conditional function pointer in addition to the CU_TestInfo struct, and some new macros added to make things a bit easier; _CU_TEST_INFO() is renamed to ODP_TEST_INFO() but remains functionally the same, these tests will be run unconditionally. ODP_TEST_INFO_INACTIVE() can be used to define an inactive test case. There's no good reason to do this in any of the modules under test/validation/ but the intention is to allow this to be done on a per-platform basis from within the platform/<platform>/test/ tree. ODP_TEST_INFO_CONDITIONAL() takes an additional parameter which is a pointer to a function to call at test suite initialisation time to determine whether that test should be marked as inactive. Signed-off-by: Stuart Haslam <stuart.haslam@linaro.org> Reviewed-by: Christophe Milard <christophe.milard@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2015-08-24validation: shmem: using _CU_TEST_INFO()Christophe Milard
Signed-off-by: Christophe Milard <christophe.milard@linaro.org> Reviewed-by: Stuart Haslam <stuart.haslam@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2015-07-29validation: shmem: lib populatedChristophe Milard
test symbols are now exported in the module lib. Signed-off-by: Christophe Milard <christophe.milard@linaro.org> Reviewed-by: Stuart Haslam <stuart.haslam@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
2015-07-09validation: creating own dir and lib for shmemChristophe Milard
Signed-off-by: Christophe Milard <christophe.milard@linaro.org> Reviewed-by: Stuart Haslam <stuart.haslam@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>