diff --git a/test/validation/buffer/buffer.c b/test/validation/buffer/buffer.c
index c62938d..4600e59 100644
--- a/test/validation/buffer/buffer.c
+++ b/test/validation/buffer/buffer.c
@@ -139,20 +139,16 @@ void buffer_test_management_basic(void)
 	CU_ASSERT(odp_event_to_u64(ev) != odp_event_to_u64(ODP_EVENT_INVALID));
 }
 
-CU_TestInfo buffer_suite[] = {
-	_CU_TEST_INFO(buffer_test_pool_alloc),
-	_CU_TEST_INFO(buffer_test_pool_free),
-	_CU_TEST_INFO(buffer_test_management_basic),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t buffer_suite[] = {
+	ODP_TEST_INFO(buffer_test_pool_alloc),
+	ODP_TEST_INFO(buffer_test_pool_free),
+	ODP_TEST_INFO(buffer_test_management_basic),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo buffer_suites[] = {
-	{ .pName = "buffer tests",
-			.pTests = buffer_suite,
-			.pInitFunc = buffer_suite_init,
-			.pCleanupFunc = buffer_suite_term,
-	},
-	CU_SUITE_INFO_NULL,
+odp_suiteinfo_t buffer_suites[] = {
+	{"buffer tests", buffer_suite_init, buffer_suite_term, buffer_suite},
+	ODP_SUITE_INFO_NULL,
 };
 
 int buffer_main(void)
diff --git a/test/validation/buffer/buffer.h b/test/validation/buffer/buffer.h
index 4916624..8b61bf5 100644
--- a/test/validation/buffer/buffer.h
+++ b/test/validation/buffer/buffer.h
@@ -7,7 +7,7 @@
 #ifndef _ODP_TEST_BUFFER_H_
 #define _ODP_TEST_BUFFER_H_
 
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 void buffer_test_pool_alloc(void);
@@ -15,14 +15,14 @@ void buffer_test_pool_free(void);
 void buffer_test_management_basic(void);
 
 /* test arrays: */
-extern CU_TestInfo buffer_suite[];
+extern odp_testinfo_t buffer_suite[];
 
 /* test array init/term functions: */
 int buffer_suite_init(void);
 int buffer_suite_term(void);
 
 /* test registry: */
-extern CU_SuiteInfo buffer_suites[];
+extern odp_suiteinfo_t buffer_suites[];
 
 /* main test program: */
 int buffer_main(void);
diff --git a/test/validation/classification/classification.c b/test/validation/classification/classification.c
index d0fef93..b868c61 100644
--- a/test/validation/classification/classification.c
+++ b/test/validation/classification/classification.c
@@ -9,7 +9,7 @@
 #include "odp_classification_testsuites.h"
 #include "classification.h"
 
-CU_SuiteInfo classification_suites[] = {
+odp_suiteinfo_t classification_suites[] = {
 	{ .pName = "classification basic",
 			.pTests = classification_suite_basic,
 	},
@@ -18,7 +18,7 @@ CU_SuiteInfo classification_suites[] = {
 			.pInitFunc = classification_suite_init,
 			.pCleanupFunc = classification_suite_term,
 	},
-	CU_SUITE_INFO_NULL,
+	ODP_SUITE_INFO_NULL,
 };
 
 int classification_main(void)
diff --git a/test/validation/classification/classification.h b/test/validation/classification/classification.h
index d2847e5..ddb1164 100644
--- a/test/validation/classification/classification.h
+++ b/test/validation/classification/classification.h
@@ -7,7 +7,7 @@
 #ifndef _ODP_TEST_CLASSIFICATION_H_
 #define _ODP_TEST_CLASSIFICATION_H_
 
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 void classification_test_create_cos(void);
@@ -27,15 +27,15 @@ void classification_test_pktio_configure(void);
 void classification_test_pktio_test(void);
 
 /* test arrays: */
-extern CU_TestInfo classification_suite_basic[];
-extern CU_TestInfo classification_suite[];
+extern odp_testinfo_t classification_suite_basic[];
+extern odp_testinfo_t classification_suite[];
 
 /* test array init/term functions: */
 int classification_suite_init(void);
 int classification_suite_term(void);
 
 /* test registry: */
-extern CU_SuiteInfo classification_suites[];
+extern odp_suiteinfo_t classification_suites[];
 
 /* main test program: */
 int classification_main(void);
diff --git a/test/validation/classification/odp_classification_basic.c b/test/validation/classification/odp_classification_basic.c
index 3ae0128..1b7c0a5 100644
--- a/test/validation/classification/odp_classification_basic.c
+++ b/test/validation/classification/odp_classification_basic.c
@@ -155,14 +155,14 @@ void classification_test_pmr_match_set_destroy(void)
 	CU_ASSERT(retval == 0);
 }
 
-CU_TestInfo classification_suite_basic[] = {
-	_CU_TEST_INFO(classification_test_create_cos),
-	_CU_TEST_INFO(classification_test_destroy_cos),
-	_CU_TEST_INFO(classification_test_create_pmr_match),
-	_CU_TEST_INFO(classification_test_destroy_pmr),
-	_CU_TEST_INFO(classification_test_cos_set_queue),
-	_CU_TEST_INFO(classification_test_cos_set_drop),
-	_CU_TEST_INFO(classification_test_pmr_match_set_create),
-	_CU_TEST_INFO(classification_test_pmr_match_set_destroy),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t classification_suite_basic[] = {
+	ODP_TEST_INFO(classification_test_create_cos),
+	ODP_TEST_INFO(classification_test_destroy_cos),
+	ODP_TEST_INFO(classification_test_create_pmr_match),
+	ODP_TEST_INFO(classification_test_destroy_pmr),
+	ODP_TEST_INFO(classification_test_cos_set_queue),
+	ODP_TEST_INFO(classification_test_cos_set_drop),
+	ODP_TEST_INFO(classification_test_pmr_match_set_create),
+	ODP_TEST_INFO(classification_test_pmr_match_set_destroy),
+	ODP_TEST_INFO_NULL,
 };
diff --git a/test/validation/classification/odp_classification_tests.c b/test/validation/classification/odp_classification_tests.c
index 9e8ac1b..5e1ad5a 100644
--- a/test/validation/classification/odp_classification_tests.c
+++ b/test/validation/classification/odp_classification_tests.c
@@ -857,12 +857,12 @@ void classification_test_pktio_test(void)
 		test_pktio_pmr_match_set_cos();
 }
 
-CU_TestInfo classification_suite[] = {
-	_CU_TEST_INFO(classification_test_pmr_terms_avail),
-	_CU_TEST_INFO(classification_test_pktio_set_skip),
-	_CU_TEST_INFO(classification_test_pktio_set_headroom),
-	_CU_TEST_INFO(classification_test_pmr_terms_cap),
-	_CU_TEST_INFO(classification_test_pktio_configure),
-	_CU_TEST_INFO(classification_test_pktio_test),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t classification_suite[] = {
+	ODP_TEST_INFO(classification_test_pmr_terms_avail),
+	ODP_TEST_INFO(classification_test_pktio_set_skip),
+	ODP_TEST_INFO(classification_test_pktio_set_headroom),
+	ODP_TEST_INFO(classification_test_pmr_terms_cap),
+	ODP_TEST_INFO(classification_test_pktio_configure),
+	ODP_TEST_INFO(classification_test_pktio_test),
+	ODP_TEST_INFO_NULL,
 };
diff --git a/test/validation/classification/odp_classification_testsuites.h b/test/validation/classification/odp_classification_testsuites.h
index 37c019d..ac27122 100644
--- a/test/validation/classification/odp_classification_testsuites.h
+++ b/test/validation/classification/odp_classification_testsuites.h
@@ -8,11 +8,10 @@
 #define ODP_CLASSIFICATION_TESTSUITES_H_
 
 #include <odp.h>
-#include <CUnit/CUnit.h>
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
-extern CU_TestInfo classification_suite[];
-extern CU_TestInfo classification_suite_basic[];
+extern odp_testinfo_t classification_suite[];
+extern odp_testinfo_t classification_suite_basic[];
 
 int classification_suite_init(void);
 int classification_suite_term(void);
diff --git a/test/validation/common/odp_cunit_common.c b/test/validation/common/odp_cunit_common.c
index d995ad3..d63e87e 100644
--- a/test/validation/common/odp_cunit_common.c
+++ b/test/validation/common/odp_cunit_common.c
@@ -22,6 +22,8 @@ static struct {
 	int (*global_term_ptr)(void);
 } global_init_term = {tests_global_init, tests_global_term};
 
+static odp_suiteinfo_t *global_testsuites;
+
 /** create test thread */
 int odp_cunit_thread_create(void *func_ptr(void *), pthrd_arg *arg)
 {
@@ -90,7 +92,82 @@ void odp_cunit_register_global_term(int (*func_term_ptr)(void))
 	global_init_term.global_term_ptr = func_term_ptr;
 }
 
-int odp_cunit_run(CU_SuiteInfo testsuites[])
+/* A wrapper for the suite's init function. This is done to allow for a
+ * potential runtime check to determine whether each test in the suite
+ * is active (enabled by using ODP_TEST_INFO_CONDITIONAL()). If present,
+ * the conditional check is run after the suite's init function.
+ */
+static int _cunit_suite_init(void)
+{
+	int ret = 0;
+	CU_pSuite cur_suite = CU_get_current_suite();
+	odp_suiteinfo_t *suite;
+	odp_testinfo_t *test;
+
+	/* find the suite currently being run */
+	for (suite = global_testsuites; suite->pName; suite++)
+		if (strcmp(suite->pName, cur_suite->pName) == 0)
+			break;
+
+	if (!suite || !suite->pName)
+		return -1;
+
+	/* execute its init function */
+	if (suite->pInitFunc) {
+		ret = suite->pInitFunc();
+		if (ret)
+			return ret;
+	}
+
+	/* run any configured conditional checks and mark inactive tests */
+	for (test = suite->pTests; test->testinfo.pName; test++) {
+		if (test->check_active && !test->check_active()) {
+			CU_pTest ptest = CU_get_test_by_name(
+						test->testinfo.pName,
+						cur_suite);
+
+			if (CU_set_test_active(ptest, CU_FALSE) != CUE_SUCCESS)
+				return -1;
+		}
+	}
+
+	return ret;
+}
+
+/*
+ * Register suites and tests with CUnit.
+ *
+ * Similar to CU_register_suites() but using locally defined wrapper
+ * types.
+ */
+static int cunit_register_suites(odp_suiteinfo_t testsuites[])
+{
+	odp_suiteinfo_t *sinfo;
+	odp_testinfo_t *tinfo;
+	CU_pSuite suite;
+	CU_pTest test;
+
+	for (sinfo = testsuites; sinfo->pName; sinfo++) {
+		suite = CU_add_suite(sinfo->pName,
+				     _cunit_suite_init, sinfo->pCleanupFunc);
+		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);
+			if (!test)
+				return CU_get_error();
+		}
+	}
+
+	return 0;
+}
+
+/*
+ * Register test suites to be run via odp_cunit_run()
+ */
+int odp_cunit_run(odp_suiteinfo_t testsuites[])
 {
 	int ret;
 
@@ -105,7 +182,9 @@ int odp_cunit_run(CU_SuiteInfo testsuites[])
 	CU_set_error_action(CUEA_ABORT);
 
 	CU_initialize_registry();
-	CU_register_suites(testsuites);
+	global_testsuites = testsuites;
+	cunit_register_suites(testsuites);
+	CU_set_fail_on_inactive(CU_FALSE);
 	CU_basic_set_mode(CU_BRM_VERBOSE);
 	CU_basic_run_tests();
 
diff --git a/test/validation/common/odp_cunit_common.h b/test/validation/common/odp_cunit_common.h
index 6cafaaa..218146c 100644
--- a/test/validation/common/odp_cunit_common.h
+++ b/test/validation/common/odp_cunit_common.h
@@ -15,14 +15,45 @@
 
 #include <stdint.h>
 #include "CUnit/Basic.h"
+#include "CUnit/TestDB.h"
 
 #define MAX_WORKERS 32 /**< Maximum number of work threads */
 
-/* the function, called by module main(), to run the testsuites: */
-int odp_cunit_run(CU_SuiteInfo testsuites[]);
+typedef int (*cunit_test_check_active)(void);
 
-/* the macro used to have test names (strings) matching function symbols */
-#define _CU_TEST_INFO(test_func) {#test_func, test_func}
+typedef struct {
+	CU_TestInfo testinfo;
+	cunit_test_check_active check_active;
+} odp_testinfo_t;
+
+typedef struct {
+	const char       *pName;
+	CU_InitializeFunc pInitFunc;
+	CU_CleanupFunc    pCleanupFunc;
+	odp_testinfo_t   *pTests;
+} odp_suiteinfo_t;
+
+static inline int odp_cunit_test_inactive(void) { return 0; }
+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}
+
+/* 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}
+
+/* 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}
+
+#define ODP_TEST_INFO_NULL {CU_TEST_INFO_NULL, NULL}
+#define ODP_SUITE_INFO_NULL {NULL, NULL, NULL, NULL}
 
 typedef struct {
 	uint32_t foo;
diff --git a/test/validation/cpumask/cpumask.c b/test/validation/cpumask/cpumask.c
index 6d57028..37dee6a 100644
--- a/test/validation/cpumask/cpumask.c
+++ b/test/validation/cpumask/cpumask.c
@@ -72,31 +72,31 @@ void cpumask_test_odp_cpumask_def(void)
 	CU_ASSERT(num_worker > 0);
 }
 
-CU_TestInfo cpumask_suite[] = {
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_to_from_str),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_equal),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_zero),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_set),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_clr),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_isset),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_count),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_and),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_or),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_xor),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_copy),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_first),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_last),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_next),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_setall),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_def_control),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_def_worker),
-	_CU_TEST_INFO(cpumask_test_odp_cpumask_def),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t cpumask_suite[] = {
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_to_from_str),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_equal),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_zero),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_set),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_clr),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_isset),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_count),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_and),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_or),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_xor),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_copy),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_first),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_last),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_next),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_setall),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_def_control),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_def_worker),
+	ODP_TEST_INFO(cpumask_test_odp_cpumask_def),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo cpumask_suites[] = {
-	{"Cpumask", NULL, NULL, NULL, NULL, cpumask_suite},
-	CU_SUITE_INFO_NULL,
+odp_suiteinfo_t cpumask_suites[] = {
+	{"Cpumask", NULL, NULL, cpumask_suite},
+	ODP_SUITE_INFO_NULL,
 };
 
 int cpumask_main(void)
diff --git a/test/validation/cpumask/cpumask.h b/test/validation/cpumask/cpumask.h
index 7a58b5d..c6f9cde 100644
--- a/test/validation/cpumask/cpumask.h
+++ b/test/validation/cpumask/cpumask.h
@@ -8,7 +8,7 @@
 #define _ODP_TEST_CPUMASK_H_
 
 #include <odp.h>
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 #include "mask_common.h"
@@ -17,10 +17,10 @@ void cpumask_test_odp_cpumask_def_worker(void);
 void cpumask_test_odp_cpumask_def(void);
 
 /* test arrays: */
-extern CU_TestInfo cpumask_suite[];
+extern odp_testinfo_t cpumask_suite[];
 
 /* test registry: */
-extern CU_SuiteInfo cpumask_suites[];
+extern odp_suiteinfo_t cpumask_suites[];
 
 /* main test program: */
 int cpumask_main(void);
diff --git a/test/validation/crypto/crypto.c b/test/validation/crypto/crypto.c
index cad6601..b2f9d96 100644
--- a/test/validation/crypto/crypto.c
+++ b/test/validation/crypto/crypto.c
@@ -5,7 +5,7 @@
  */
 
 #include <odp.h>
-#include "odp_cunit_common.h"
+#include <odp_cunit_common.h>
 #include "odp_crypto_test_inp.h"
 #include "crypto.h"
 
@@ -15,12 +15,10 @@
 #define SHM_COMPL_POOL_SIZE	(128 * 1024)
 #define SHM_COMPL_POOL_BUF_SIZE	128
 
-CU_SuiteInfo crypto_suites[] = {
-	{ODP_CRYPTO_SYNC_INP, crypto_suite_sync_init, NULL, NULL, NULL,
-			crypto_suite},
-	{ODP_CRYPTO_ASYNC_INP, crypto_suite_async_init, NULL, NULL, NULL,
-			crypto_suite},
-	CU_SUITE_INFO_NULL,
+odp_suiteinfo_t crypto_suites[] = {
+	{ODP_CRYPTO_SYNC_INP, crypto_suite_sync_init, NULL, crypto_suite},
+	{ODP_CRYPTO_ASYNC_INP, crypto_suite_async_init, NULL, crypto_suite},
+	ODP_SUITE_INFO_NULL,
 };
 
 int crypto_init(void)
diff --git a/test/validation/crypto/crypto.h b/test/validation/crypto/crypto.h
index 41dd4ed..7cb60d4 100644
--- a/test/validation/crypto/crypto.h
+++ b/test/validation/crypto/crypto.h
@@ -7,7 +7,7 @@
 #ifndef _ODP_TEST_CRYPTO_H_
 #define _ODP_TEST_CRYPTO_H_
 
-#include <CUnit/Basic.h>
+#include "odp_cunit_common.h"
 
 /* test functions: */
 void crypto_test_enc_alg_3des_cbc(void);
@@ -17,14 +17,14 @@ void crypto_test_dec_alg_3des_cbc_ovr_iv(void);
 void crypto_test_alg_hmac_md5(void);
 
 /* test arrays: */
-extern CU_TestInfo crypto_suite[];
+extern odp_testinfo_t crypto_suite[];
 
 /* test array init/term functions: */
 int crypto_suite_sync_init(void);
 int crypto_suite_async_init(void);
 
 /* test registry: */
-extern CU_SuiteInfo crypto_suites[];
+extern odp_suiteinfo_t crypto_suites[];
 
 /* executable init/term functions: */
 int crypto_init(void);
diff --git a/test/validation/crypto/odp_crypto_test_inp.c b/test/validation/crypto/odp_crypto_test_inp.c
index 187a04c..69325a4 100644
--- a/test/validation/crypto/odp_crypto_test_inp.c
+++ b/test/validation/crypto/odp_crypto_test_inp.c
@@ -319,11 +319,11 @@ int crypto_suite_async_init(void)
 	return 0;
 }
 
-CU_TestInfo crypto_suite[] = {
-	_CU_TEST_INFO(crypto_test_enc_alg_3des_cbc),
-	_CU_TEST_INFO(crypto_test_dec_alg_3des_cbc),
-	_CU_TEST_INFO(crypto_test_enc_alg_3des_cbc_ovr_iv),
-	_CU_TEST_INFO(crypto_test_dec_alg_3des_cbc_ovr_iv),
-	_CU_TEST_INFO(crypto_test_alg_hmac_md5),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t crypto_suite[] = {
+	ODP_TEST_INFO(crypto_test_enc_alg_3des_cbc),
+	ODP_TEST_INFO(crypto_test_dec_alg_3des_cbc),
+	ODP_TEST_INFO(crypto_test_enc_alg_3des_cbc_ovr_iv),
+	ODP_TEST_INFO(crypto_test_dec_alg_3des_cbc_ovr_iv),
+	ODP_TEST_INFO(crypto_test_alg_hmac_md5),
+	ODP_TEST_INFO_NULL,
 };
diff --git a/test/validation/crypto/odp_crypto_test_inp.h b/test/validation/crypto/odp_crypto_test_inp.h
index d46994f..8bda344 100644
--- a/test/validation/crypto/odp_crypto_test_inp.h
+++ b/test/validation/crypto/odp_crypto_test_inp.h
@@ -6,14 +6,14 @@
 #ifndef ODP_CRYPTO_TEST_ASYNC_INP_
 #define ODP_CRYPTO_TEST_ASYNC_INP_
 
-#include "CUnit/TestDB.h"
+#include <odp_cunit_common.h>
 
 /* Suite names */
 #define ODP_CRYPTO_ASYNC_INP	"odp_crypto_async_inp"
 #define ODP_CRYPTO_SYNC_INP    "odp_crypto_sync_inp"
 
 /* Suite test array */
-extern CU_TestInfo crypto_suite[];
+extern odp_testinfo_t crypto_suite[];
 
 int crypto_suite_sync_init(void);
 int crypto_suite_async_init(void);
diff --git a/test/validation/errno/errno.c b/test/validation/errno/errno.c
index c4f4aab..6196164 100644
--- a/test/validation/errno/errno.c
+++ b/test/validation/errno/errno.c
@@ -19,14 +19,14 @@ void errno_test_odp_errno_sunny_day(void)
 	CU_ASSERT_PTR_NOT_NULL(odp_errno_str(my_errno));
 }
 
-CU_TestInfo errno_suite[] = {
-	_CU_TEST_INFO(errno_test_odp_errno_sunny_day),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t errno_suite[] = {
+	ODP_TEST_INFO(errno_test_odp_errno_sunny_day),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo errno_suites[] = {
-	{"Errno",	NULL, NULL, NULL, NULL, errno_suite},
-	CU_SUITE_INFO_NULL,
+odp_suiteinfo_t errno_suites[] = {
+	{"Errno", NULL, NULL, errno_suite},
+	ODP_SUITE_INFO_NULL,
 };
 
 int errno_main(void)
diff --git a/test/validation/errno/errno.h b/test/validation/errno/errno.h
index 374a3c9..3e217b5 100644
--- a/test/validation/errno/errno.h
+++ b/test/validation/errno/errno.h
@@ -7,16 +7,16 @@
 #ifndef _ODP_TEST_ERRNO_H_
 #define _ODP_TEST_ERRNO_H_
 
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 void errno_test_odp_errno_sunny_day(void);
 
 /* test arrays: */
-extern CU_TestInfo errno_suite[];
+extern odp_testinfo_t errno_suite[];
 
 /* test registry: */
-extern CU_SuiteInfo errno_suites[];
+extern odp_suiteinfo_t errno_suites[];
 
 /* main test program: */
 int errno_main(void);
diff --git a/test/validation/init/init.c b/test/validation/init/init.c
index 3a04fc9..d5ec333 100644
--- a/test/validation/init/init.c
+++ b/test/validation/init/init.c
@@ -8,7 +8,6 @@
 #include <stdlib.h>
 #include <odp.h>
 #include <CUnit/Basic.h>
-#include "odp_cunit_common.h"
 #include "init.h"
 
 /* flag set when the replacement logging function is used */
@@ -37,14 +36,14 @@ void init_test_odp_init_global_replace_abort(void)
 	CU_ASSERT(status == 0);
 }
 
-CU_TestInfo init_suite_abort[] = {
-	_CU_TEST_INFO(init_test_odp_init_global_replace_abort),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t init_suite_abort[] = {
+	ODP_TEST_INFO(init_test_odp_init_global_replace_abort),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo init_suites_abort[] = {
-	{"Init", NULL, NULL, NULL, NULL, init_suite_abort},
-	CU_SUITE_INFO_NULL,
+odp_suiteinfo_t init_suites_abort[] = {
+	{"Init", NULL, NULL, init_suite_abort},
+	ODP_SUITE_INFO_NULL,
 };
 
 static void odp_init_abort(void)
@@ -82,14 +81,14 @@ void init_test_odp_init_global_replace_log(void)
 	CU_ASSERT(status == 0);
 }
 
-CU_TestInfo init_suite_log[] = {
-	_CU_TEST_INFO(init_test_odp_init_global_replace_log),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t init_suite_log[] = {
+	ODP_TEST_INFO(init_test_odp_init_global_replace_log),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo init_suites_log[] = {
-	{"Init", NULL, NULL, NULL, NULL, init_suite_log},
-	CU_SUITE_INFO_NULL,
+odp_suiteinfo_t init_suites_log[] = {
+	{"Init", NULL, NULL, init_suite_log},
+	ODP_SUITE_INFO_NULL,
 };
 
 static int odp_init_log(odp_log_level_e level __attribute__((unused)),
@@ -130,14 +129,14 @@ void init_test_odp_init_global(void)
 	CU_ASSERT(status == 0);
 }
 
-CU_TestInfo init_suite_ok[] = {
-	_CU_TEST_INFO(init_test_odp_init_global),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t init_suite_ok[] = {
+	ODP_TEST_INFO(init_test_odp_init_global),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo init_suites_ok[] = {
-	{"Init", NULL, NULL, NULL, NULL, init_suite_ok},
-	CU_SUITE_INFO_NULL,
+odp_suiteinfo_t init_suites_ok[] = {
+	{"Init", NULL, NULL, init_suite_ok},
+	ODP_SUITE_INFO_NULL,
 };
 
 int init_main_ok(void)
diff --git a/test/validation/init/init.h b/test/validation/init/init.h
index 08f09e5..272d426 100644
--- a/test/validation/init/init.h
+++ b/test/validation/init/init.h
@@ -7,7 +7,7 @@
 #ifndef _ODP_TEST_INIT_H_
 #define _ODP_TEST_INIT_H_
 
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 void init_test_odp_init_global_replace_abort(void);
@@ -15,14 +15,14 @@ void init_test_odp_init_global_replace_log(void);
 void init_test_odp_init_global(void);
 
 /* test arrays: */
-extern CU_TestInfo init_suite_abort[];
-extern CU_TestInfo init_suite_log[];
-extern CU_TestInfo init_suite_ok[];
+extern odp_testinfo_t init_suite_abort[];
+extern odp_testinfo_t init_suite_log[];
+extern odp_testinfo_t init_suite_ok[];
 
 /* test registry: */
-extern CU_SuiteInfo init_suites_abort[];
-extern CU_SuiteInfo init_suites_log[];
-extern CU_SuiteInfo init_suites_ok[];
+extern odp_suiteinfo_t init_suites_abort[];
+extern odp_suiteinfo_t init_suites_log[];
+extern odp_suiteinfo_t init_suites_ok[];
 
 /* main test program: */
 int init_main_abort(void);
diff --git a/test/validation/packet/packet.c b/test/validation/packet/packet.c
index 31ac4d3..8a4f0a6 100644
--- a/test/validation/packet/packet.c
+++ b/test/validation/packet/packet.c
@@ -7,7 +7,7 @@
 #include <stdlib.h>
 
 #include <odp.h>
-#include "odp_cunit_common.h"
+#include <odp_cunit_common.h>
 #include "packet.h"
 
 #define PACKET_BUF_LEN	ODP_CONFIG_PACKET_SEG_LEN_MIN
@@ -772,35 +772,35 @@ void packet_test_offset(void)
 	CU_ASSERT_PTR_NOT_NULL(ptr);
 }
 
-CU_TestInfo packet_suite[] = {
-	_CU_TEST_INFO(packet_test_alloc_free),
-	_CU_TEST_INFO(packet_test_alloc_segmented),
-	_CU_TEST_INFO(packet_test_basic_metadata),
-	_CU_TEST_INFO(packet_test_debug),
-	_CU_TEST_INFO(packet_test_length),
-	_CU_TEST_INFO(packet_test_headroom),
-	_CU_TEST_INFO(packet_test_tailroom),
-	_CU_TEST_INFO(packet_test_context),
-	_CU_TEST_INFO(packet_test_event_conversion),
-	_CU_TEST_INFO(packet_test_layer_offsets),
-	_CU_TEST_INFO(packet_test_segments),
-	_CU_TEST_INFO(packet_test_segment_last),
-	_CU_TEST_INFO(packet_test_in_flags),
-	_CU_TEST_INFO(packet_test_error_flags),
-	_CU_TEST_INFO(packet_test_add_rem_data),
-	_CU_TEST_INFO(packet_test_copy),
-	_CU_TEST_INFO(packet_test_copydata),
-	_CU_TEST_INFO(packet_test_offset),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t packet_suite[] = {
+	ODP_TEST_INFO(packet_test_alloc_free),
+	ODP_TEST_INFO(packet_test_alloc_segmented),
+	ODP_TEST_INFO(packet_test_basic_metadata),
+	ODP_TEST_INFO(packet_test_debug),
+	ODP_TEST_INFO(packet_test_length),
+	ODP_TEST_INFO(packet_test_headroom),
+	ODP_TEST_INFO(packet_test_tailroom),
+	ODP_TEST_INFO(packet_test_context),
+	ODP_TEST_INFO(packet_test_event_conversion),
+	ODP_TEST_INFO(packet_test_layer_offsets),
+	ODP_TEST_INFO(packet_test_segments),
+	ODP_TEST_INFO(packet_test_segment_last),
+	ODP_TEST_INFO(packet_test_in_flags),
+	ODP_TEST_INFO(packet_test_error_flags),
+	ODP_TEST_INFO(packet_test_add_rem_data),
+	ODP_TEST_INFO(packet_test_copy),
+	ODP_TEST_INFO(packet_test_copydata),
+	ODP_TEST_INFO(packet_test_offset),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo packet_suites[] = {
+odp_suiteinfo_t packet_suites[] = {
 	{ .pName = "packet tests",
 			.pTests = packet_suite,
 			.pInitFunc = packet_suite_init,
 			.pCleanupFunc = packet_suite_term,
 	},
-	CU_SUITE_INFO_NULL,
+	ODP_SUITE_INFO_NULL,
 };
 
 int packet_main(void)
diff --git a/test/validation/packet/packet.h b/test/validation/packet/packet.h
index f8a16a8..096a1e2 100644
--- a/test/validation/packet/packet.h
+++ b/test/validation/packet/packet.h
@@ -7,7 +7,7 @@
 #ifndef _ODP_TEST_PACKET_H_
 #define _ODP_TEST_PACKET_H_
 
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 void packet_test_alloc_free(void);
@@ -30,14 +30,14 @@ void packet_test_copydata(void);
 void packet_test_offset(void);
 
 /* test arrays: */
-extern CU_TestInfo packet_suite[];
+extern odp_testinfo_t packet_suite[];
 
 /* test array init/term functions: */
 int packet_suite_init(void);
 int packet_suite_term(void);
 
 /* test registry: */
-extern CU_SuiteInfo packet_suites[];
+extern odp_suiteinfo_t packet_suites[];
 
 /* main test program: */
 int packet_main(void);
diff --git a/test/validation/pktio/pktio.c b/test/validation/pktio/pktio.c
index 5c0799b..bfcaace 100644
--- a/test/validation/pktio/pktio.c
+++ b/test/validation/pktio/pktio.c
@@ -790,7 +790,8 @@ static int create_pool(const char *iface, int num)
 
 	pool[num] = odp_pool_create(pool_name, &params);
 	if (ODP_POOL_INVALID == pool[num]) {
-		CU_FAIL("unable to create pool");
+		fprintf(stderr, "%s: failed to create pool: %d",
+			__func__, odp_errno());
 		return -1;
 	}
 
@@ -871,38 +872,38 @@ int pktio_suite_term(void)
 	return ret;
 }
 
-CU_TestInfo pktio_suite_unsegmented[] = {
-	_CU_TEST_INFO(pktio_test_open),
-	_CU_TEST_INFO(pktio_test_lookup),
-	_CU_TEST_INFO(pktio_test_inq),
-	_CU_TEST_INFO(pktio_test_poll_queue),
-	_CU_TEST_INFO(pktio_test_poll_multi),
-	_CU_TEST_INFO(pktio_test_sched_queue),
-	_CU_TEST_INFO(pktio_test_sched_multi),
-	_CU_TEST_INFO(pktio_test_jumbo),
-	_CU_TEST_INFO(pktio_test_mtu),
-	_CU_TEST_INFO(pktio_test_promisc),
-	_CU_TEST_INFO(pktio_test_mac),
-	_CU_TEST_INFO(pktio_test_inq_remdef),
-	_CU_TEST_INFO(pktio_test_start_stop),
-	CU_TEST_INFO_NULL
+odp_testinfo_t pktio_suite_unsegmented[] = {
+	ODP_TEST_INFO(pktio_test_open),
+	ODP_TEST_INFO(pktio_test_lookup),
+	ODP_TEST_INFO(pktio_test_inq),
+	ODP_TEST_INFO(pktio_test_poll_queue),
+	ODP_TEST_INFO(pktio_test_poll_multi),
+	ODP_TEST_INFO(pktio_test_sched_queue),
+	ODP_TEST_INFO(pktio_test_sched_multi),
+	ODP_TEST_INFO(pktio_test_jumbo),
+	ODP_TEST_INFO(pktio_test_mtu),
+	ODP_TEST_INFO(pktio_test_promisc),
+	ODP_TEST_INFO(pktio_test_mac),
+	ODP_TEST_INFO(pktio_test_inq_remdef),
+	ODP_TEST_INFO(pktio_test_start_stop),
+	ODP_TEST_INFO_NULL
 };
 
-CU_TestInfo pktio_suite_segmented[] = {
-	{"pktio poll queues",	pktio_test_poll_queue},
-	{"pktio poll multi",	pktio_test_poll_multi},
-	{"pktio sched queues",	pktio_test_sched_queue},
-	{"pktio sched multi",	pktio_test_sched_multi},
-	{"pktio jumbo frames",	pktio_test_jumbo},
-	CU_TEST_INFO_NULL
+odp_testinfo_t pktio_suite_segmented[] = {
+	ODP_TEST_INFO(pktio_test_poll_queue),
+	ODP_TEST_INFO(pktio_test_poll_multi),
+	ODP_TEST_INFO(pktio_test_sched_queue),
+	ODP_TEST_INFO(pktio_test_sched_multi),
+	ODP_TEST_INFO(pktio_test_jumbo),
+	ODP_TEST_INFO_NULL
 };
 
-CU_SuiteInfo pktio_suites[] = {
+odp_suiteinfo_t pktio_suites[] = {
 	{"Packet I/O Unsegmented", pktio_suite_init_unsegmented,
-	 pktio_suite_term, NULL, NULL, pktio_suite_unsegmented},
+	 pktio_suite_term, pktio_suite_unsegmented},
 	{"Packet I/O Segmented", pktio_suite_init_segmented,
-	 pktio_suite_term, NULL, NULL, pktio_suite_segmented},
-	CU_SUITE_INFO_NULL
+	 pktio_suite_term, pktio_suite_segmented},
+	ODP_SUITE_INFO_NULL
 };
 
 int pktio_main(void)
diff --git a/test/validation/pktio/pktio.h b/test/validation/pktio/pktio.h
index feaf7fb..2928dbe 100644
--- a/test/validation/pktio/pktio.h
+++ b/test/validation/pktio/pktio.h
@@ -7,7 +7,7 @@
 #ifndef _ODP_TEST_PKTIO_H_
 #define _ODP_TEST_PKTIO_H_
 
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 void pktio_test_poll_queue(void);
@@ -24,7 +24,7 @@ void pktio_test_lookup(void);
 void pktio_test_inq(void);
 
 /* test arrays: */
-extern CU_TestInfo pktio_suite[];
+extern odp_testinfo_t pktio_suite[];
 
 /* test array init/term functions: */
 int pktio_suite_term(void);
@@ -32,7 +32,7 @@ int pktio_suite_init_segmented(void);
 int pktio_suite_init_unsegmented(void);
 
 /* test registry: */
-extern CU_SuiteInfo pktio_suites[];
+extern odp_suiteinfo_t pktio_suites[];
 
 /* main test program: */
 int pktio_main(void);
diff --git a/test/validation/pool/pool.c b/test/validation/pool/pool.c
index 44ba155..3de2714 100644
--- a/test/validation/pool/pool.c
+++ b/test/validation/pool/pool.c
@@ -99,19 +99,19 @@ void pool_test_lookup_info_print(void)
 	CU_ASSERT(odp_pool_destroy(pool) == 0);
 }
 
-CU_TestInfo pool_suite[] = {
-	_CU_TEST_INFO(pool_test_create_destroy_buffer),
-	_CU_TEST_INFO(pool_test_create_destroy_packet),
-	_CU_TEST_INFO(pool_test_create_destroy_timeout),
-	_CU_TEST_INFO(pool_test_lookup_info_print),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t pool_suite[] = {
+	ODP_TEST_INFO(pool_test_create_destroy_buffer),
+	ODP_TEST_INFO(pool_test_create_destroy_packet),
+	ODP_TEST_INFO(pool_test_create_destroy_timeout),
+	ODP_TEST_INFO(pool_test_lookup_info_print),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo pool_suites[] = {
+odp_suiteinfo_t pool_suites[] = {
 	{ .pName = "Pool tests",
 			.pTests = pool_suite,
 	},
-	CU_SUITE_INFO_NULL,
+	ODP_SUITE_INFO_NULL,
 };
 
 int pool_main(void)
diff --git a/test/validation/pool/pool.h b/test/validation/pool/pool.h
index 12c6193..6a83a2e 100644
--- a/test/validation/pool/pool.h
+++ b/test/validation/pool/pool.h
@@ -7,7 +7,7 @@
 #ifndef _ODP_TEST_POOL_H_
 #define _ODP_TEST_POOL_H_
 
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 void pool_test_create_destroy_buffer(void);
@@ -17,10 +17,10 @@ void pool_test_create_destroy_buffer_shm(void);
 void pool_test_lookup_info_print(void);
 
 /* test arrays: */
-extern CU_TestInfo pool_suite[];
+extern odp_testinfo_t pool_suite[];
 
 /* test registry: */
-extern CU_SuiteInfo pool_suites[];
+extern odp_suiteinfo_t pool_suites[];
 
 /* main test program: */
 int pool_main(void);
diff --git a/test/validation/queue/queue.c b/test/validation/queue/queue.c
index 02a5538..7d6de54 100644
--- a/test/validation/queue/queue.c
+++ b/test/validation/queue/queue.c
@@ -125,15 +125,14 @@ void queue_test_sunnydays(void)
 	CU_ASSERT(odp_queue_destroy(queue_id) == 0);
 }
 
-CU_TestInfo queue_suite[] = {
-	_CU_TEST_INFO(queue_test_sunnydays),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t queue_suite[] = {
+	ODP_TEST_INFO(queue_test_sunnydays),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo queue_suites[] = {
-	{"Queue", queue_suite_init, queue_suite_term,
-			NULL, NULL, queue_suite},
-	CU_SUITE_INFO_NULL,
+odp_suiteinfo_t queue_suites[] = {
+	{"Queue", queue_suite_init, queue_suite_term, queue_suite},
+	ODP_SUITE_INFO_NULL,
 };
 
 int queue_main(void)
diff --git a/test/validation/queue/queue.h b/test/validation/queue/queue.h
index d2765ce..5de7b2c 100644
--- a/test/validation/queue/queue.h
+++ b/test/validation/queue/queue.h
@@ -7,20 +7,20 @@
 #ifndef _ODP_TEST_QUEUE_H_
 #define _ODP_TEST_QUEUE_H_
 
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 void queue_test_sunnydays(void);
 
 /* test arrays: */
-extern CU_TestInfo queue_suite[];
+extern odp_testinfo_t queue_suite[];
 
 /* test array init/term functions: */
 int queue_suite_init(void);
 int queue_suite_term(void);
 
 /* test registry: */
-extern CU_SuiteInfo queue_suites[];
+extern odp_suiteinfo_t queue_suites[];
 
 /* main test program: */
 int queue_main(void);
diff --git a/test/validation/random/random.c b/test/validation/random/random.c
index b6426f4..a9a5a01 100644
--- a/test/validation/random/random.c
+++ b/test/validation/random/random.c
@@ -17,14 +17,14 @@ void random_test_get_size(void)
 	CU_ASSERT(ret == sizeof(buf));
 }
 
-CU_TestInfo random_suite[] = {
-	_CU_TEST_INFO(random_test_get_size),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t random_suite[] = {
+	ODP_TEST_INFO(random_test_get_size),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo random_suites[] = {
-	{"Random", NULL, NULL, NULL, NULL, random_suite},
-	CU_SUITE_INFO_NULL,
+odp_suiteinfo_t random_suites[] = {
+	{"Random", NULL, NULL, random_suite},
+	ODP_SUITE_INFO_NULL,
 };
 
 int random_main(void)
diff --git a/test/validation/random/random.h b/test/validation/random/random.h
index cda1843..4101ef1 100644
--- a/test/validation/random/random.h
+++ b/test/validation/random/random.h
@@ -7,16 +7,16 @@
 #ifndef _ODP_TEST_RANDOM_H_
 #define _ODP_TEST_RANDOM_H_
 
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 void random_test_get_size(void);
 
 /* test arrays: */
-extern CU_TestInfo random_suite[];
+extern odp_testinfo_t random_suite[];
 
 /* test registry: */
-extern CU_SuiteInfo random_suites[];
+extern odp_suiteinfo_t random_suites[];
 
 /* main test program: */
 int random_main(void);
diff --git a/test/validation/scheduler/scheduler.c b/test/validation/scheduler/scheduler.c
index 1874889..81653c4 100644
--- a/test/validation/scheduler/scheduler.c
+++ b/test/validation/scheduler/scheduler.c
@@ -1105,46 +1105,46 @@ int scheduler_suite_term(void)
 	return 0;
 }
 
-CU_TestInfo scheduler_suite[] = {
-	_CU_TEST_INFO(scheduler_test_wait_time),
-	_CU_TEST_INFO(scheduler_test_num_prio),
-	_CU_TEST_INFO(scheduler_test_queue_destroy),
-	_CU_TEST_INFO(scheduler_test_groups),
-	_CU_TEST_INFO(scheduler_test_1q_1t_n),
-	_CU_TEST_INFO(scheduler_test_1q_1t_a),
-	_CU_TEST_INFO(scheduler_test_1q_1t_o),
-	_CU_TEST_INFO(scheduler_test_mq_1t_n),
-	_CU_TEST_INFO(scheduler_test_mq_1t_a),
-	_CU_TEST_INFO(scheduler_test_mq_1t_o),
-	_CU_TEST_INFO(scheduler_test_mq_1t_prio_n),
-	_CU_TEST_INFO(scheduler_test_mq_1t_prio_a),
-	_CU_TEST_INFO(scheduler_test_mq_1t_prio_o),
-	_CU_TEST_INFO(scheduler_test_mq_mt_prio_n),
-	_CU_TEST_INFO(scheduler_test_mq_mt_prio_a),
-	_CU_TEST_INFO(scheduler_test_mq_mt_prio_o),
-	_CU_TEST_INFO(scheduler_test_1q_mt_a_excl),
-	_CU_TEST_INFO(scheduler_test_multi_1q_1t_n),
-	_CU_TEST_INFO(scheduler_test_multi_1q_1t_a),
-	_CU_TEST_INFO(scheduler_test_multi_1q_1t_o),
-	_CU_TEST_INFO(scheduler_test_multi_mq_1t_n),
-	_CU_TEST_INFO(scheduler_test_multi_mq_1t_a),
-	_CU_TEST_INFO(scheduler_test_multi_mq_1t_o),
-	_CU_TEST_INFO(scheduler_test_multi_mq_1t_prio_n),
-	_CU_TEST_INFO(scheduler_test_multi_mq_1t_prio_a),
-	_CU_TEST_INFO(scheduler_test_multi_mq_1t_prio_o),
-	_CU_TEST_INFO(scheduler_test_multi_mq_mt_prio_n),
-	_CU_TEST_INFO(scheduler_test_multi_mq_mt_prio_a),
-	_CU_TEST_INFO(scheduler_test_multi_mq_mt_prio_o),
-	_CU_TEST_INFO(scheduler_test_multi_1q_mt_a_excl),
-	_CU_TEST_INFO(scheduler_test_pause_resume),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t scheduler_suite[] = {
+	ODP_TEST_INFO(scheduler_test_wait_time),
+	ODP_TEST_INFO(scheduler_test_num_prio),
+	ODP_TEST_INFO(scheduler_test_queue_destroy),
+	ODP_TEST_INFO(scheduler_test_groups),
+	ODP_TEST_INFO(scheduler_test_1q_1t_n),
+	ODP_TEST_INFO(scheduler_test_1q_1t_a),
+	ODP_TEST_INFO(scheduler_test_1q_1t_o),
+	ODP_TEST_INFO(scheduler_test_mq_1t_n),
+	ODP_TEST_INFO(scheduler_test_mq_1t_a),
+	ODP_TEST_INFO(scheduler_test_mq_1t_o),
+	ODP_TEST_INFO(scheduler_test_mq_1t_prio_n),
+	ODP_TEST_INFO(scheduler_test_mq_1t_prio_a),
+	ODP_TEST_INFO(scheduler_test_mq_1t_prio_o),
+	ODP_TEST_INFO(scheduler_test_mq_mt_prio_n),
+	ODP_TEST_INFO(scheduler_test_mq_mt_prio_a),
+	ODP_TEST_INFO(scheduler_test_mq_mt_prio_o),
+	ODP_TEST_INFO(scheduler_test_1q_mt_a_excl),
+	ODP_TEST_INFO(scheduler_test_multi_1q_1t_n),
+	ODP_TEST_INFO(scheduler_test_multi_1q_1t_a),
+	ODP_TEST_INFO(scheduler_test_multi_1q_1t_o),
+	ODP_TEST_INFO(scheduler_test_multi_mq_1t_n),
+	ODP_TEST_INFO(scheduler_test_multi_mq_1t_a),
+	ODP_TEST_INFO(scheduler_test_multi_mq_1t_o),
+	ODP_TEST_INFO(scheduler_test_multi_mq_1t_prio_n),
+	ODP_TEST_INFO(scheduler_test_multi_mq_1t_prio_a),
+	ODP_TEST_INFO(scheduler_test_multi_mq_1t_prio_o),
+	ODP_TEST_INFO(scheduler_test_multi_mq_mt_prio_n),
+	ODP_TEST_INFO(scheduler_test_multi_mq_mt_prio_a),
+	ODP_TEST_INFO(scheduler_test_multi_mq_mt_prio_o),
+	ODP_TEST_INFO(scheduler_test_multi_1q_mt_a_excl),
+	ODP_TEST_INFO(scheduler_test_pause_resume),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo scheduler_suites[] = {
+odp_suiteinfo_t scheduler_suites[] = {
 	{"Scheduler",
-	 scheduler_suite_init, scheduler_suite_term, NULL, NULL, scheduler_suite
+	 scheduler_suite_init, scheduler_suite_term, scheduler_suite
 	},
-	CU_SUITE_INFO_NULL,
+	ODP_SUITE_INFO_NULL,
 };
 
 int scheduler_main(void)
diff --git a/test/validation/scheduler/scheduler.h b/test/validation/scheduler/scheduler.h
index eab8787..c869e41 100644
--- a/test/validation/scheduler/scheduler.h
+++ b/test/validation/scheduler/scheduler.h
@@ -7,7 +7,7 @@
 #ifndef _ODP_TEST_SCHEDULER_H_
 #define _ODP_TEST_SCHEDULER_H_
 
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 void scheduler_test_wait_time(void);
@@ -43,14 +43,14 @@ void scheduler_test_multi_1q_mt_a_excl(void);
 void scheduler_test_pause_resume(void);
 
 /* test arrays: */
-extern CU_TestInfo scheduler_suite[];
+extern odp_testinfo_t scheduler_suite[];
 
 /* test array init/term functions: */
 int scheduler_suite_init(void);
 int scheduler_suite_term(void);
 
 /* test registry: */
-extern CU_SuiteInfo scheduler_suites[];
+extern odp_suiteinfo_t scheduler_suites[];
 
 /* main test program: */
 int scheduler_main(void);
diff --git a/test/validation/shmem/shmem.c b/test/validation/shmem/shmem.c
index 6dc579a..41ec725 100644
--- a/test/validation/shmem/shmem.c
+++ b/test/validation/shmem/shmem.c
@@ -76,14 +76,14 @@ void shmem_test_odp_shm_sunnyday(void)
 	odp_cunit_thread_exit(&thrdarg);
 }
 
-CU_TestInfo shmem_suite[] = {
-	_CU_TEST_INFO(shmem_test_odp_shm_sunnyday),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t shmem_suite[] = {
+	ODP_TEST_INFO(shmem_test_odp_shm_sunnyday),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo shmem_suites[] = {
-	{"Shared Memory", NULL, NULL, NULL, NULL, shmem_suite},
-	CU_SUITE_INFO_NULL,
+odp_suiteinfo_t shmem_suites[] = {
+	{"Shared Memory", NULL, NULL, shmem_suite},
+	ODP_SUITE_INFO_NULL,
 };
 
 int shmem_main(void)
diff --git a/test/validation/shmem/shmem.h b/test/validation/shmem/shmem.h
index 8de0bc6..d60cf64 100644
--- a/test/validation/shmem/shmem.h
+++ b/test/validation/shmem/shmem.h
@@ -7,16 +7,16 @@
 #ifndef _ODP_TEST_SHMEM_H_
 #define _ODP_TEST_SHMEM_H_
 
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 void shmem_test_odp_shm_sunnyday(void);
 
 /* test arrays: */
-extern CU_TestInfo shmem_suite[];
+extern odp_testinfo_t shmem_suite[];
 
 /* test registry: */
-extern CU_SuiteInfo shmem_suites[];
+extern odp_suiteinfo_t shmem_suites[];
 
 /* main test program: */
 int shmem_main(void);
diff --git a/test/validation/synchronizers/synchronizers.c b/test/validation/synchronizers/synchronizers.c
index 0a31a40..595be74 100644
--- a/test/validation/synchronizers/synchronizers.c
+++ b/test/validation/synchronizers/synchronizers.c
@@ -940,10 +940,10 @@ void synchronizers_test_barrier_functional(void)
 	odp_cunit_thread_exit(&arg);
 }
 
-CU_TestInfo synchronizers_suite_barrier[] = {
-	_CU_TEST_INFO(synchronizers_test_no_barrier_functional),
-	_CU_TEST_INFO(synchronizers_test_barrier_functional),
-	CU_TEST_INFO_NULL
+odp_testinfo_t synchronizers_suite_barrier[] = {
+	ODP_TEST_INFO(synchronizers_test_no_barrier_functional),
+	ODP_TEST_INFO(synchronizers_test_barrier_functional),
+	ODP_TEST_INFO_NULL
 };
 
 /* Thread-unsafe tests */
@@ -956,9 +956,9 @@ void synchronizers_test_no_lock_functional(void)
 	odp_cunit_thread_exit(&arg);
 }
 
-CU_TestInfo synchronizers_suite_no_locking[] = {
-	_CU_TEST_INFO(synchronizers_test_no_lock_functional),
-	CU_TEST_INFO_NULL
+odp_testinfo_t synchronizers_suite_no_locking[] = {
+	ODP_TEST_INFO(synchronizers_test_no_lock_functional),
+	ODP_TEST_INFO_NULL
 };
 
 /* Spin lock tests */
@@ -981,10 +981,10 @@ void synchronizers_test_spinlock_functional(void)
 	odp_cunit_thread_exit(&arg);
 }
 
-CU_TestInfo synchronizers_suite_spinlock[] = {
-	_CU_TEST_INFO(synchronizers_test_spinlock_api),
-	_CU_TEST_INFO(synchronizers_test_spinlock_functional),
-	CU_TEST_INFO_NULL
+odp_testinfo_t synchronizers_suite_spinlock[] = {
+	ODP_TEST_INFO(synchronizers_test_spinlock_api),
+	ODP_TEST_INFO(synchronizers_test_spinlock_functional),
+	ODP_TEST_INFO_NULL
 };
 
 /* Ticket lock tests */
@@ -1008,10 +1008,10 @@ void synchronizers_test_ticketlock_functional(void)
 	odp_cunit_thread_exit(&arg);
 }
 
-CU_TestInfo synchronizers_suite_ticketlock[] = {
-	_CU_TEST_INFO(synchronizers_test_ticketlock_api),
-	_CU_TEST_INFO(synchronizers_test_ticketlock_functional),
-	CU_TEST_INFO_NULL
+odp_testinfo_t synchronizers_suite_ticketlock[] = {
+	ODP_TEST_INFO(synchronizers_test_ticketlock_api),
+	ODP_TEST_INFO(synchronizers_test_ticketlock_functional),
+	ODP_TEST_INFO_NULL
 };
 
 /* RW lock tests */
@@ -1034,10 +1034,10 @@ void synchronizers_test_rwlock_functional(void)
 	odp_cunit_thread_exit(&arg);
 }
 
-CU_TestInfo synchronizers_suite_rwlock[] = {
-	_CU_TEST_INFO(synchronizers_test_rwlock_api),
-	_CU_TEST_INFO(synchronizers_test_rwlock_functional),
-	CU_TEST_INFO_NULL
+odp_testinfo_t synchronizers_suite_rwlock[] = {
+	ODP_TEST_INFO(synchronizers_test_rwlock_api),
+	ODP_TEST_INFO(synchronizers_test_rwlock_functional),
+	ODP_TEST_INFO_NULL
 };
 
 int synchronizers_suite_init(void)
@@ -1186,28 +1186,28 @@ void synchronizers_test_atomic_fetch_add_sub(void)
 	test_atomic_functional(test_atomic_fetch_add_sub_thread);
 }
 
-CU_TestInfo synchronizers_suite_atomic[] = {
-	_CU_TEST_INFO(synchronizers_test_atomic_inc_dec),
-	_CU_TEST_INFO(synchronizers_test_atomic_add_sub),
-	_CU_TEST_INFO(synchronizers_test_atomic_fetch_inc_dec),
-	_CU_TEST_INFO(synchronizers_test_atomic_fetch_add_sub),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t synchronizers_suite_atomic[] = {
+	ODP_TEST_INFO(synchronizers_test_atomic_inc_dec),
+	ODP_TEST_INFO(synchronizers_test_atomic_add_sub),
+	ODP_TEST_INFO(synchronizers_test_atomic_fetch_inc_dec),
+	ODP_TEST_INFO(synchronizers_test_atomic_fetch_add_sub),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo synchronizers_suites[] = {
-	{"barrier", NULL,
-	 NULL, NULL, NULL, synchronizers_suite_barrier},
-	{"nolocking", synchronizers_suite_init,
-	 NULL, NULL, NULL, synchronizers_suite_no_locking},
-	{"spinlock", synchronizers_suite_init,
-	 NULL, NULL, NULL, synchronizers_suite_spinlock},
-	{"ticketlock", synchronizers_suite_init,
-	 NULL, NULL, NULL, synchronizers_suite_ticketlock},
-	{"rwlock", synchronizers_suite_init,
-	 NULL, NULL, NULL, synchronizers_suite_rwlock},
-	{"atomic", NULL, NULL, NULL, NULL,
-	 synchronizers_suite_atomic},
-	CU_SUITE_INFO_NULL
+odp_suiteinfo_t synchronizers_suites[] = {
+	{"barrier", NULL, NULL,
+		synchronizers_suite_barrier},
+	{"nolocking", synchronizers_suite_init, NULL,
+		synchronizers_suite_no_locking},
+	{"spinlock", synchronizers_suite_init, NULL,
+		synchronizers_suite_spinlock},
+	{"ticketlock", synchronizers_suite_init, NULL,
+		synchronizers_suite_ticketlock},
+	{"rwlock", synchronizers_suite_init, NULL,
+		synchronizers_suite_rwlock},
+	{"atomic", NULL, NULL,
+		synchronizers_suite_atomic},
+	ODP_SUITE_INFO_NULL
 };
 
 int synchronizers_main(void)
diff --git a/test/validation/synchronizers/synchronizers.h b/test/validation/synchronizers/synchronizers.h
index 45b90e9..f16477c 100644
--- a/test/validation/synchronizers/synchronizers.h
+++ b/test/validation/synchronizers/synchronizers.h
@@ -7,7 +7,7 @@
 #ifndef _ODP_TEST_SYNCHRONIZERS_H_
 #define _ODP_TEST_SYNCHRONIZERS_H_
 
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 void synchronizers_test_no_barrier_functional(void);
@@ -25,18 +25,18 @@ void synchronizers_test_atomic_fetch_inc_dec(void);
 void synchronizers_test_atomic_fetch_add_sub(void);
 
 /* test arrays: */
-extern CU_TestInfo synchronizers_suite_barrier[];
-extern CU_TestInfo synchronizers_suite_no_locking[];
-extern CU_TestInfo synchronizers_suite_spinlock[];
-extern CU_TestInfo synchronizers_suite_ticketlock[];
-extern CU_TestInfo synchronizers_suite_rwlock[];
-extern CU_TestInfo synchronizers_suite_atomic[];
+extern odp_testinfo_t synchronizers_suite_barrier[];
+extern odp_testinfo_t synchronizers_suite_no_locking[];
+extern odp_testinfo_t synchronizers_suite_spinlock[];
+extern odp_testinfo_t synchronizers_suite_ticketlock[];
+extern odp_testinfo_t synchronizers_suite_rwlock[];
+extern odp_testinfo_t synchronizers_suite_atomic[];
 
 /* test array init/term functions: */
 int synchronizers_suite_init(void);
 
 /* test registry: */
-extern CU_SuiteInfo synchronizers_suites[];
+extern odp_suiteinfo_t synchronizers_suites[];
 
 /* executable init/term functions: */
 int synchronizers_init(void);
diff --git a/test/validation/system/system.c b/test/validation/system/system.c
index 15f3ac4..cf0ab0a 100644
--- a/test/validation/system/system.c
+++ b/test/validation/system/system.c
@@ -83,20 +83,20 @@ void system_test_odp_sys_cpu_hz(void)
 	CU_ASSERT(0 < hz);
 }
 
-CU_TestInfo system_suite[] = {
-	_CU_TEST_INFO(system_test_odp_version_numbers),
-	_CU_TEST_INFO(system_test_odp_cpu_count),
-	_CU_TEST_INFO(system_test_odp_sys_cache_line_size),
-	_CU_TEST_INFO(system_test_odp_sys_cpu_model_str),
-	_CU_TEST_INFO(system_test_odp_sys_page_size),
-	_CU_TEST_INFO(system_test_odp_sys_huge_page_size),
-	_CU_TEST_INFO(system_test_odp_sys_cpu_hz),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t system_suite[] = {
+	ODP_TEST_INFO(system_test_odp_version_numbers),
+	ODP_TEST_INFO(system_test_odp_cpu_count),
+	ODP_TEST_INFO(system_test_odp_sys_cache_line_size),
+	ODP_TEST_INFO(system_test_odp_sys_cpu_model_str),
+	ODP_TEST_INFO(system_test_odp_sys_page_size),
+	ODP_TEST_INFO(system_test_odp_sys_huge_page_size),
+	ODP_TEST_INFO(system_test_odp_sys_cpu_hz),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo system_suites[] = {
-	{"System Info", NULL, NULL, NULL, NULL, system_suite},
-	CU_SUITE_INFO_NULL,
+odp_suiteinfo_t system_suites[] = {
+	{"System Info", NULL, NULL, system_suite},
+	ODP_SUITE_INFO_NULL,
 };
 
 int system_main(void)
diff --git a/test/validation/system/system.h b/test/validation/system/system.h
index c8bd2d4..869aaff 100644
--- a/test/validation/system/system.h
+++ b/test/validation/system/system.h
@@ -7,7 +7,7 @@
 #ifndef _ODP_TEST_SYSTEM_H_
 #define _ODP_TEST_SYSTEM_H_
 
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 void system_test_odp_version_numbers(void);
@@ -19,10 +19,10 @@ void system_test_odp_sys_huge_page_size(void);
 void system_test_odp_sys_cpu_hz(void);
 
 /* test arrays: */
-extern CU_TestInfo system_suite[];
+extern odp_testinfo_t system_suite[];
 
 /* test registry: */
-extern CU_SuiteInfo system_suites[];
+extern odp_suiteinfo_t system_suites[];
 
 /* main test program: */
 int system_main(void);
diff --git a/test/validation/thread/thread.c b/test/validation/thread/thread.c
index d4f3ee0..b86ebd3 100644
--- a/test/validation/thread/thread.c
+++ b/test/validation/thread/thread.c
@@ -95,32 +95,32 @@ void thread_test_odp_thrmask_control(void)
 	CU_ASSERT(ret == 1);
 }
 
-CU_TestInfo thread_suite[] = {
-	_CU_TEST_INFO(thread_test_odp_cpu_id),
-	_CU_TEST_INFO(thread_test_odp_thread_id),
-	_CU_TEST_INFO(thread_test_odp_thread_count),
-	_CU_TEST_INFO(thread_test_odp_thrmask_to_from_str),
-	_CU_TEST_INFO(thread_test_odp_thrmask_equal),
-	_CU_TEST_INFO(thread_test_odp_thrmask_zero),
-	_CU_TEST_INFO(thread_test_odp_thrmask_set),
-	_CU_TEST_INFO(thread_test_odp_thrmask_clr),
-	_CU_TEST_INFO(thread_test_odp_thrmask_isset),
-	_CU_TEST_INFO(thread_test_odp_thrmask_count),
-	_CU_TEST_INFO(thread_test_odp_thrmask_and),
-	_CU_TEST_INFO(thread_test_odp_thrmask_or),
-	_CU_TEST_INFO(thread_test_odp_thrmask_xor),
-	_CU_TEST_INFO(thread_test_odp_thrmask_copy),
-	_CU_TEST_INFO(thread_test_odp_thrmask_first),
-	_CU_TEST_INFO(thread_test_odp_thrmask_last),
-	_CU_TEST_INFO(thread_test_odp_thrmask_next),
-	_CU_TEST_INFO(thread_test_odp_thrmask_worker),
-	_CU_TEST_INFO(thread_test_odp_thrmask_control),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t thread_suite[] = {
+	ODP_TEST_INFO(thread_test_odp_cpu_id),
+	ODP_TEST_INFO(thread_test_odp_thread_id),
+	ODP_TEST_INFO(thread_test_odp_thread_count),
+	ODP_TEST_INFO(thread_test_odp_thrmask_to_from_str),
+	ODP_TEST_INFO(thread_test_odp_thrmask_equal),
+	ODP_TEST_INFO(thread_test_odp_thrmask_zero),
+	ODP_TEST_INFO(thread_test_odp_thrmask_set),
+	ODP_TEST_INFO(thread_test_odp_thrmask_clr),
+	ODP_TEST_INFO(thread_test_odp_thrmask_isset),
+	ODP_TEST_INFO(thread_test_odp_thrmask_count),
+	ODP_TEST_INFO(thread_test_odp_thrmask_and),
+	ODP_TEST_INFO(thread_test_odp_thrmask_or),
+	ODP_TEST_INFO(thread_test_odp_thrmask_xor),
+	ODP_TEST_INFO(thread_test_odp_thrmask_copy),
+	ODP_TEST_INFO(thread_test_odp_thrmask_first),
+	ODP_TEST_INFO(thread_test_odp_thrmask_last),
+	ODP_TEST_INFO(thread_test_odp_thrmask_next),
+	ODP_TEST_INFO(thread_test_odp_thrmask_worker),
+	ODP_TEST_INFO(thread_test_odp_thrmask_control),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo thread_suites[] = {
-	{"thread", NULL, NULL, NULL, NULL, thread_suite},
-	CU_SUITE_INFO_NULL,
+odp_suiteinfo_t thread_suites[] = {
+	{"thread", NULL, NULL, thread_suite},
+	ODP_SUITE_INFO_NULL,
 };
 
 int thread_main(void)
diff --git a/test/validation/thread/thread.h b/test/validation/thread/thread.h
index ef645b4..6cbc694 100644
--- a/test/validation/thread/thread.h
+++ b/test/validation/thread/thread.h
@@ -8,7 +8,7 @@
 #define _ODP_TEST_THREAD_H_
 
 #include <odp.h>
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 #ifndef TEST_THRMASK
@@ -22,10 +22,10 @@ void thread_test_odp_thrmask_control(void);
 void thread_test_odp_thrmask_worker(void);
 
 /* test arrays: */
-extern CU_TestInfo thread_suite[];
+extern odp_testinfo_t thread_suite[];
 
 /* test registry: */
-extern CU_SuiteInfo thread_suites[];
+extern odp_suiteinfo_t thread_suites[];
 
 /* main test program: */
 int thread_main(void);
diff --git a/test/validation/time/time.c b/test/validation/time/time.c
index 4b81c2c..f2c196c 100644
--- a/test/validation/time/time.c
+++ b/test/validation/time/time.c
@@ -61,16 +61,16 @@ void time_test_odp_time_conversion(void)
 	CU_ASSERT((ns2 <= upper_limit) && (ns2 >= lower_limit));
 }
 
-CU_TestInfo time_suite_time[] = {
-	_CU_TEST_INFO(time_test_odp_cycles_diff),
-	_CU_TEST_INFO(time_test_odp_cycles_negative_diff),
-	_CU_TEST_INFO(time_test_odp_time_conversion),
-	 CU_TEST_INFO_NULL
+odp_testinfo_t time_suite_time[] = {
+	ODP_TEST_INFO(time_test_odp_cycles_diff),
+	ODP_TEST_INFO(time_test_odp_cycles_negative_diff),
+	ODP_TEST_INFO(time_test_odp_time_conversion),
+	ODP_TEST_INFO_NULL
 };
 
-CU_SuiteInfo time_suites[] = {
-		{"Time", NULL, NULL, NULL, NULL, time_suite_time},
-		 CU_SUITE_INFO_NULL
+odp_suiteinfo_t time_suites[] = {
+		{"Time", NULL, NULL, time_suite_time},
+		ODP_SUITE_INFO_NULL
 };
 
 int time_main(void)
diff --git a/test/validation/time/time.h b/test/validation/time/time.h
index 1f69826..9ccdeb7 100644
--- a/test/validation/time/time.h
+++ b/test/validation/time/time.h
@@ -7,7 +7,7 @@
 #ifndef _ODP_TEST_TIME_H_
 #define _ODP_TEST_TIME_H_
 
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 void time_test_odp_cycles_diff(void);
@@ -15,10 +15,10 @@ void time_test_odp_cycles_negative_diff(void);
 void time_test_odp_time_conversion(void);
 
 /* test arrays: */
-extern CU_TestInfo time_suite_time[];
+extern odp_testinfo_t time_suite_time[];
 
 /* test registry: */
-extern CU_SuiteInfo time_suites[];
+extern odp_suiteinfo_t time_suites[];
 
 /* main test program: */
 int time_main(void);
diff --git a/test/validation/timer/timer.c b/test/validation/timer/timer.c
index 7a8b98a..02398f7 100644
--- a/test/validation/timer/timer.c
+++ b/test/validation/timer/timer.c
@@ -529,17 +529,17 @@ void timer_test_odp_timer_all(void)
 	CU_PASS("ODP timer test");
 }
 
-CU_TestInfo timer_suite[] = {
-	_CU_TEST_INFO(timer_test_timeout_pool_alloc),
-	_CU_TEST_INFO(timer_test_timeout_pool_free),
-	_CU_TEST_INFO(timer_test_odp_timer_cancel),
-	_CU_TEST_INFO(timer_test_odp_timer_all),
-	CU_TEST_INFO_NULL,
+odp_testinfo_t timer_suite[] = {
+	ODP_TEST_INFO(timer_test_timeout_pool_alloc),
+	ODP_TEST_INFO(timer_test_timeout_pool_free),
+	ODP_TEST_INFO(timer_test_odp_timer_cancel),
+	ODP_TEST_INFO(timer_test_odp_timer_all),
+	ODP_TEST_INFO_NULL,
 };
 
-CU_SuiteInfo timer_suites[] = {
-	{"Timer", NULL, NULL, NULL, NULL, timer_suite},
-	CU_SUITE_INFO_NULL,
+odp_suiteinfo_t timer_suites[] = {
+	{"Timer", NULL, NULL, timer_suite},
+	ODP_SUITE_INFO_NULL,
 };
 
 int timer_main(void)
diff --git a/test/validation/timer/timer.h b/test/validation/timer/timer.h
index 3694671..46ea8d7 100644
--- a/test/validation/timer/timer.h
+++ b/test/validation/timer/timer.h
@@ -7,7 +7,7 @@
 #ifndef _ODP_TEST_TIMER_H_
 #define _ODP_TEST_TIMER_H_
 
-#include <CUnit/Basic.h>
+#include <odp_cunit_common.h>
 
 /* test functions: */
 void timer_test_timeout_pool_alloc(void);
@@ -16,10 +16,10 @@ void timer_test_odp_timer_cancel(void);
 void timer_test_odp_timer_all(void);
 
 /* test arrays: */
-extern CU_TestInfo timer_suite[];
+extern odp_testinfo_t timer_suite[];
 
 /* test registry: */
-extern CU_SuiteInfo timer_suites[];
+extern odp_suiteinfo_t timer_suites[];
 
 /* main test program: */
 int timer_main(void);
