There is a FAQ on the website explaining the compiler error, which
could (eventually) be removed after this change.
DEPENDENCIES | 2 +-
test/validation/common/odp_cunit_common.c | 22 +++++++++++-----------
test/validation/common/odp_cunit_common.h | 11 ++++++-----
3 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/DEPENDENCIES b/DEPENDENCIES
index 341fe69..fec65d2 100644
--- a/DEPENDENCIES
+++ b/DEPENDENCIES
@@ -162,7 +162,7 @@ Prerequisites for building the OpenDataPlane
(ODP) API
4.1 Native Cunit install
- # Debian/Ubuntu check it is 2.1-3
+ # Debian/Ubuntu
$ apt-get install libcunit1-dev
4.2 Built from src
diff --git a/test/validation/common/odp_cunit_common.c
b/test/validation/common/odp_cunit_common.c
index a98042d..bc786ec 100644
--- a/test/validation/common/odp_cunit_common.c
+++ b/test/validation/common/odp_cunit_common.c
@@ -108,8 +108,8 @@ static odp_testinfo_t
*cunit_get_test_info(odp_suiteinfo_t *sinfo,
{
odp_testinfo_t *tinfo;
- for (tinfo = sinfo->pTests; tinfo->testinfo.pName; tinfo++)
- if (strcmp(tinfo->testinfo.pName, test_name) == 0)
+ for (tinfo = sinfo->pTests; tinfo->pName; tinfo++)
+ if (strcmp(tinfo->pName, test_name) == 0)
return tinfo;
return NULL;
@@ -144,7 +144,7 @@ static int _cunit_suite_init(void)
}
/* run any configured conditional checks and mark inactive
tests */
- for (tinfo = sinfo->pTests; tinfo->testinfo.pName; tinfo++) {
+ for (tinfo = sinfo->pTests; tinfo->pName; tinfo++) {
CU_pTest ptest;
CU_ErrorCode err;
@@ -152,7 +152,7 @@ static int _cunit_suite_init(void)
continue;
/* test is inactive, mark it as such */
- ptest = CU_get_test_by_name(tinfo->testinfo.pName, cur_suite);
+ ptest = CU_get_test_by_name(tinfo->pName, cur_suite);
if (ptest)
err = CU_set_test_active(ptest, CU_FALSE);
else
@@ -160,7 +160,7 @@ static int _cunit_suite_init(void)
if (err != CUE_SUCCESS) {
fprintf(stderr, "%s: failed to set test %s inactive\n",
- __func__, tinfo->testinfo.pName);
+ __func__, tinfo->pName);
return -1;
}
}
@@ -187,9 +187,9 @@ static int cunit_register_suites(odp_suiteinfo_t
testsuites[])
if (!suite)
return CU_get_error();
- for (tinfo = sinfo->pTests; tinfo->testinfo.pName; tinfo++) {
- test = CU_add_test(suite, tinfo->testinfo.pName,
- tinfo->testinfo.pTestFunc);
+ for (tinfo = sinfo->pTests; tinfo->pName; tinfo++) {
+ test = CU_add_test(suite, tinfo->pName,
+ tinfo->pTestFunc);
if (!test)
return CU_get_error();
}
@@ -205,7 +205,7 @@ static int cunit_update_test(CU_pSuite suite,
CU_pTest test = NULL;
CU_ErrorCode err;
odp_testinfo_t *tinfo;
- const char *test_name = updated_tinfo->testinfo.pName;
+ const char *test_name = updated_tinfo->pName;
tinfo = cunit_get_test_info(sinfo, test_name);
if (tinfo)
@@ -217,7 +217,7 @@ static int cunit_update_test(CU_pSuite suite,
return -1;
}
- err = CU_set_test_func(test, updated_tinfo->testinfo.pTestFunc);
+ err = CU_set_test_func(test, updated_tinfo->pTestFunc);
if (err != CUE_SUCCESS) {
fprintf(stderr, "%s: failed to update test func for %s\n",
__func__, test_name);
@@ -261,7 +261,7 @@ static int cunit_update_suite(odp_suiteinfo_t
*updated_sinfo)
return -1;
}
- for (tinfo = updated_sinfo->pTests; tinfo->testinfo.pName;
tinfo++) {
+ for (tinfo = updated_sinfo->pTests; tinfo->pName; tinfo++) {
int ret;
ret = cunit_update_test(suite, sinfo, tinfo);
diff --git a/test/validation/common/odp_cunit_common.h
b/test/validation/common/odp_cunit_common.h
index c689054..8dbbb9f 100644
--- a/test/validation/common/odp_cunit_common.h
+++ b/test/validation/common/odp_cunit_common.h
@@ -22,7 +22,8 @@
typedef int (*cunit_test_check_active)(void);
typedef struct {
- CU_TestInfo testinfo;
+ const char *pName;
+ CU_TestFunc pTestFunc;
cunit_test_check_active check_active;
} odp_testinfo_t;
@@ -38,21 +39,21 @@ static inline void odp_cunit_test_missing(void) { }
/* An active test case, with the test name matching the test
function name */
#define ODP_TEST_INFO(test_func) \
- {{#test_func, test_func}, NULL}
+ {#test_func, test_func, NULL}
/* A test case that is unconditionally inactive. Its name will be
registered
* with CUnit but it won't be executed and will be reported as
inactive in
* the result summary. */
#define ODP_TEST_INFO_INACTIVE(test_func) \
- {{#test_func, odp_cunit_test_missing}, odp_cunit_test_inactive}
+ {#test_func, odp_cunit_test_missing, odp_cunit_test_inactive}
/* A test case that may be marked as inactive at runtime based on the
* return value of the cond_func function. A return value of 0 means
* inactive, anything else is active. */
#define ODP_TEST_INFO_CONDITIONAL(test_func, cond_func) \
- {{#test_func, test_func}, cond_func}
+ {#test_func, test_func, cond_func}
-#define ODP_TEST_INFO_NULL {CU_TEST_INFO_NULL, NULL}
+#define ODP_TEST_INFO_NULL {NULL, NULL, NULL}
#define ODP_SUITE_INFO_NULL {NULL, NULL, NULL, NULL}
typedef struct {