diff --git a/test/Makefile.inc b/test/Makefile.inc
index e20a848..c579c46 100644
--- a/test/Makefile.inc
+++ b/test/Makefile.inc
@@ -1,7 +1,12 @@
 include $(top_srcdir)/Makefile.inc
 include $(top_srcdir)/platform/@with_platform@/Makefile.inc
 LIB   = $(top_builddir)/lib
-LDADD = $(LIB)/libodp.la
+
+#in the following line, the libs using the symbols should come before
+#the libs using them! The includer is given a chance to add things before libodp
+#by setting PRE_LDDAD before the inclusion.
+LDADD = $(PRE_LDDAD) $(LIB)/libodp.la
+
 INCFLAGS = -I$(srcdir) \
 	-I$(top_srcdir)/test \
 	-I$(top_srcdir)/platform/@with_platform@/include \
diff --git a/test/validation/Makefile.am b/test/validation/Makefile.am
index 965f603..8299e01 100644
--- a/test/validation/Makefile.am
+++ b/test/validation/Makefile.am
@@ -1,13 +1,9 @@
+PRE_LDDAD = $(top_builddir)/test/validation/common/libcunit_common_as_main.a
 include $(top_srcdir)/test/Makefile.inc
 
 AM_CFLAGS += -I$(srcdir)/common
 AM_LDFLAGS += -static
 
-#warning: in the following line, the libs using the symbols should come before
-#the libs using them!
-LDADD = $(top_builddir)/test/validation/common/libcunit_common_as_main.a \
-	$(LIB)/libodp.la
-
 TESTS_ENVIRONMENT = ODP_PLATFORM=${with_platform} TEST_DIR=${builddir}
 
 EXECUTABLES = odp_buffer \
@@ -62,6 +58,8 @@ dist_odp_shared_memory_SOURCES	= odp_shared_memory.c
 dist_odp_synchronizers_SOURCES = odp_synchronizers.c
 dist_odp_time_SOURCES   = odp_time.c
 dist_odp_timer_SOURCES  = odp_timer.c
+odp_pktio_LDADD = $(top_builddir)/test/validation/common/libcunit_common.a \
+	$(LIB)/libodp.la
 dist_odp_pktio_SOURCES	= odp_pktio.c
 dist_odp_packet_SOURCES = odp_packet.c
 dist_odp_pool_SOURCES = odp_pool.c
diff --git a/test/validation/odp_pktio.c b/test/validation/odp_pktio.c
index d4bf7bf..9806376 100644
--- a/test/validation/odp_pktio.c
+++ b/test/validation/odp_pktio.c
@@ -420,7 +420,7 @@ static void pktio_txrx_multi(pktio_info_t *pktio_a, pktio_info_t *pktio_b,
 	CU_ASSERT(i == num_pkts);
 }
 
-static void pktio_test_txrx(odp_queue_type_t q_type, int num_pkts)
+static void test_txrx(odp_queue_type_t q_type, int num_pkts)
 {
 	int ret, i, if_b;
 	pktio_info_t pktios[MAX_NUM_IFACES];
@@ -456,34 +456,34 @@ static void pktio_test_txrx(odp_queue_type_t q_type, int num_pkts)
 	}
 }
 
-static void test_odp_pktio_poll_queue(void)
+static void pktio_test_poll_queue(void)
 {
-	pktio_test_txrx(ODP_QUEUE_TYPE_POLL, 1);
+	test_txrx(ODP_QUEUE_TYPE_POLL, 1);
 }
 
-static void test_odp_pktio_poll_multi(void)
+static void pktio_test_poll_multi(void)
 {
-	pktio_test_txrx(ODP_QUEUE_TYPE_POLL, 4);
+	test_txrx(ODP_QUEUE_TYPE_POLL, 4);
 }
 
-static void test_odp_pktio_sched_queue(void)
+static void pktio_test_sched_queue(void)
 {
-	pktio_test_txrx(ODP_QUEUE_TYPE_SCHED, 1);
+	test_txrx(ODP_QUEUE_TYPE_SCHED, 1);
 }
 
-static void test_odp_pktio_sched_multi(void)
+static void pktio_test_sched_multi(void)
 {
-	pktio_test_txrx(ODP_QUEUE_TYPE_SCHED, 4);
+	test_txrx(ODP_QUEUE_TYPE_SCHED, 4);
 }
 
-static void test_odp_pktio_jumbo(void)
+static void pktio_test_jumbo(void)
 {
 	packet_len = PKT_LEN_JUMBO;
-	test_odp_pktio_sched_multi();
+	pktio_test_sched_multi();
 	packet_len = PKT_LEN_NORMAL;
 }
 
-static void test_odp_pktio_mtu(void)
+static void pktio_test_mtu(void)
 {
 	int ret;
 	int mtu;
@@ -500,7 +500,7 @@ static void test_odp_pktio_mtu(void)
 	return;
 }
 
-static void test_odp_pktio_promisc(void)
+static void pktio_test_promisc(void)
 {
 	int ret;
 	odp_pktio_t pktio = create_pktio(iface_name[0]);
@@ -525,7 +525,7 @@ static void test_odp_pktio_promisc(void)
 	return;
 }
 
-static void test_odp_pktio_mac(void)
+static void pktio_test_mac(void)
 {
 	unsigned char mac_addr[ODPH_ETHADDR_LEN];
 	int mac_len;
@@ -551,7 +551,7 @@ static void test_odp_pktio_mac(void)
 	return;
 }
 
-static void test_odp_pktio_inq_remdef(void)
+static void pktio_test_inq_remdef(void)
 {
 	odp_pktio_t pktio = create_pktio(iface_name[0]);
 	odp_queue_t inq;
@@ -575,7 +575,7 @@ static void test_odp_pktio_inq_remdef(void)
 	CU_ASSERT(odp_pktio_close(pktio) == 0);
 }
 
-static void test_odp_pktio_open(void)
+static void pktio_test_open(void)
 {
 	odp_pktio_t pktio;
 	int i;
@@ -591,7 +591,7 @@ static void test_odp_pktio_open(void)
 	CU_ASSERT(pktio == ODP_PKTIO_INVALID);
 }
 
-static void test_odp_pktio_lookup(void)
+static void pktio_test_lookup(void)
 {
 	odp_pktio_t pktio, pktio_inval;
 
@@ -609,7 +609,7 @@ static void test_odp_pktio_lookup(void)
 	CU_ASSERT(odp_pktio_lookup(iface_name[0]) == ODP_PKTIO_INVALID);
 }
 
-static void test_odp_pktio_inq(void)
+static void pktio_test_inq(void)
 {
 	odp_pktio_t pktio;
 
@@ -621,7 +621,7 @@ static void test_odp_pktio_inq(void)
 	CU_ASSERT(odp_pktio_close(pktio) == 0);
 }
 
-static int init_pktio_suite(void)
+static int pktio_suite_init(void)
 {
 	odp_atomic_init_u32(&ip_seq, 0);
 	iface_name[0] = getenv("ODP_PKTIO_IF0");
@@ -647,7 +647,7 @@ static int init_pktio_suite(void)
 	return 0;
 }
 
-static int term_pktio_suite(void)
+static int pktio_suite_term(void)
 {
 	char pool_name[ODP_POOL_NAME_LEN];
 	odp_pool_t pool;
@@ -676,24 +676,35 @@ static int term_pktio_suite(void)
 	return ret;
 }
 
-CU_TestInfo pktio_tests[] = {
-	{"pktio open",		test_odp_pktio_open},
-	{"pktio lookup",	test_odp_pktio_lookup},
-	{"pktio inq",		test_odp_pktio_inq},
-	{"pktio poll queues",	test_odp_pktio_poll_queue},
-	{"pktio poll multi",	test_odp_pktio_poll_multi},
-	{"pktio sched queues",	test_odp_pktio_sched_queue},
-	{"pktio sched multi",	test_odp_pktio_sched_multi},
-	{"pktio jumbo frames",	test_odp_pktio_jumbo},
-	{"pktio mtu",		test_odp_pktio_mtu},
-	{"pktio promisc mode",	test_odp_pktio_promisc},
-	{"pktio mac",		test_odp_pktio_mac},
-	{"pktio inq_remdef",	test_odp_pktio_inq_remdef},
+CU_TestInfo pktio_suite[] = {
+	{"pktio open",		pktio_test_open},
+	{"pktio lookup",	pktio_test_lookup},
+	{"pktio inq",		pktio_test_inq},
+	{"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},
+	{"pktio mtu",		pktio_test_mtu},
+	{"pktio promisc mode",	pktio_test_promisc},
+	{"pktio mac",		pktio_test_mac},
+	{"pktio inq_remdef",	pktio_test_inq_remdef},
 	CU_TEST_INFO_NULL
 };
 
-CU_SuiteInfo odp_testsuites[] = {
+static CU_SuiteInfo pktio_suites[] = {
 	{"Packet I/O",
-		init_pktio_suite, term_pktio_suite, NULL, NULL, pktio_tests},
+		pktio_suite_init, pktio_suite_term, NULL, NULL, pktio_suite},
 	CU_SUITE_INFO_NULL
 };
+
+static int pktio_main(void)
+{
+	return odp_cunit_run(pktio_suites);
+}
+
+/* the following main function will be separated when lib is created */
+int main(void)
+{
+	return pktio_main();
+}
