diff --git a/platform/linux-generic/test/validation/api/pktio/.gitignore b/platform/linux-generic/test/validation/api/pktio/.gitignore
deleted file mode 100644
index 7e563b8b3..000000000
--- a/platform/linux-generic/test/validation/api/pktio/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.log
-*.trs
diff --git a/test/m4/configure.m4 b/test/m4/configure.m4
index dd07839ff..5a0b4d685 100644
--- a/test/m4/configure.m4
+++ b/test/m4/configure.m4
@@ -7,30 +7,6 @@ AC_CONFIG_FILES([test/Makefile
 		 test/miscellaneous/Makefile
 		 test/performance/Makefile
 		 test/validation/Makefile
-		 test/validation/api/atomic/Makefile
-		 test/validation/api/barrier/Makefile
-		 test/validation/api/buffer/Makefile
-		 test/validation/api/chksum/Makefile
-		 test/validation/api/classification/Makefile
-		 test/validation/api/cpumask/Makefile
-		 test/validation/api/crypto/Makefile
-		 test/validation/api/errno/Makefile
-		 test/validation/api/event/Makefile
-		 test/validation/api/hash/Makefile
-		 test/validation/api/init/Makefile
-		 test/validation/api/ipsec/Makefile
-		 test/validation/api/lock/Makefile
 		 test/validation/api/Makefile
-		 test/validation/api/packet/Makefile
 		 test/validation/api/pktio/Makefile
-		 test/validation/api/pool/Makefile
-		 test/validation/api/queue/Makefile
-		 test/validation/api/random/Makefile
-		 test/validation/api/scheduler/Makefile
-		 test/validation/api/shmem/Makefile
-		 test/validation/api/std_clib/Makefile
-		 test/validation/api/system/Makefile
-		 test/validation/api/thread/Makefile
-		 test/validation/api/time/Makefile
-		 test/validation/api/timer/Makefile
 		 test/validation/api/traffic_mngr/Makefile])
diff --git a/test/validation/api/.gitignore b/test/validation/api/.gitignore
index 5dabf91c1..6fb6ee62e 100644
--- a/test/validation/api/.gitignore
+++ b/test/validation/api/.gitignore
@@ -1,3 +1,32 @@
 *.log
 *.trs
 tests-validation.env
+atomic_main
+barrier_main
+buffer_main
+chksum_main
+classification_main
+cpumask_main
+crypto_main
+errno_main
+event_main
+hash_main
+init_main_abort
+init_main_log
+init_main_ok
+ipsec_async
+ipsec_inline_in
+ipsec_inline_out
+ipsec_sync
+lock_main
+packet_main
+pool_main
+queue_main
+random_main
+scheduler_main
+shmem_main
+std_clib_main
+system_main
+thread_main
+time_main
+timer_main
diff --git a/test/validation/api/Makefile.am b/test/validation/api/Makefile.am
index c92d123c1..2b51a132b 100644
--- a/test/validation/api/Makefile.am
+++ b/test/validation/api/Makefile.am
@@ -1,66 +1,129 @@
-ODP_MODULES = atomic \
-	      barrier \
-	      buffer \
-	      chksum \
-	      classification \
-	      cpumask \
-	      crypto \
-	      errno \
-	      event \
-	      hash \
-	      init \
-	      ipsec \
-	      lock \
-	      queue \
-	      packet \
+ODP_MODULES = \
 	      pktio \
-	      pool \
-	      random \
-	      scheduler \
-	      std_clib \
-	      thread \
-	      time \
-	      timer \
-	      traffic_mngr \
-	      shmem \
-	      system
+	      traffic_mngr
 
 SUBDIRS = $(ODP_MODULES)
 
-include $(top_srcdir)/test/Makefile.inc
+include Makefile.inc
+
+test_PROGRAMS = \
+		atomic_main \
+		barrier_main \
+		buffer_main \
+		chksum_main \
+		classification_main \
+		cpumask_main \
+		crypto_main \
+		errno_main \
+		event_main \
+		hash_main \
+		init_main_abort \
+		init_main_log \
+		init_main_ok \
+		ipsec_async \
+		ipsec_inline_in \
+		ipsec_inline_out \
+		ipsec_sync \
+		lock_main \
+		packet_main \
+		pool_main \
+		queue_main \
+		random_main \
+		scheduler_main \
+		shmem_main \
+		std_clib_main \
+		system_main \
+		thread_main \
+		time_main \
+		timer_main
+
+noinst_LTLIBRARIES = libtestipsec.la
+libtestipsec_la_SOURCES = \
+	ipsec_test_vectors.h \
+	ipsec_test_in.c \
+	ipsec_test_out.c \
+	ipsec.h \
+	ipsec.c
+
+libtestipsec_la_CPPFLAGS = $(AM_CPPFLAGS) -Wno-error=missing-field-initializers
+
+atomic_main_SOURCES = atomic.c
+barrier_main_SOURCES = barrier.c
+buffer_main_SOURCES = buffer.c
+chksum_main_SOURCES = chksum.c
+cpumask_main_SOURCES = cpumask.c
+cpumask_main_LDADD = $(LDADD) $(LIBCPUMASK_COMMON)
+crypto_main_SOURCES = crypto.c crypto_test_vectors.h
+errno_main_SOURCES = errno.c
+event_main_SOURCES = event.c
+hash_main_SOURCES = hash.c
+init_main_abort_SOURCES = init_main_abort.c
+init_main_log_SOURCES = init_main_log.c
+init_main_ok_SOURCES = init_main_ok.c
+ipsec_sync_SOURCES = ipsec_sync.c
+ipsec_sync_LDADD = $(LDADD) libtestipsec.la
+ipsec_async_SOURCES = ipsec_async.c
+ipsec_async_LDADD = $(LDADD) libtestipsec.la
+ipsec_inline_in_SOURCES = ipsec_inline_in.c
+ipsec_inline_in_LDADD = $(LDADD) libtestipsec.la
+ipsec_inline_out_SOURCES = ipsec_inline_out.c
+ipsec_inline_out_LDADD = $(LDADD) libtestipsec.la
+lock_main_SOURCES = lock.c
+packet_main_SOURCES = packet.c
+pool_main_SOURCES = pool.c
+queue_main_SOURCES = queue.c
+random_main_SOURCES = random.c
+scheduler_main_SOURCES = scheduler.c
+shmem_main_SOURCES = shmem.c
+std_clib_main_SOURCES = std_clib.c
+system_main_SOURCES = system.c
+thread_main_SOURCES = thread.c
+thread_main_LDADD = $(LDADD) $(LIBTHRMASK_COMMON)
+time_main_SOURCES = time.c
+timer_main_SOURCES = timer.c
+
+classification_main_SOURCES = \
+				   classification_basic.c \
+				   classification_tests.c \
+				   classification_testsuites.h \
+				   classification_test_pmr.c \
+				   classification_common.c \
+				   classification.c \
+				   classification.h
+
 TESTS_ENVIRONMENT += TEST_DIR=${top_builddir}/test/validation
 
 TESTS = \
-	atomic/atomic_main$(EXEEXT) \
-	barrier/barrier_main$(EXEEXT) \
-	buffer/buffer_main$(EXEEXT) \
-	chksum/chksum_main$(EXEEXT) \
-	classification/classification_main$(EXEEXT) \
-	cpumask/cpumask_main$(EXEEXT) \
-	crypto/crypto_main$(EXEEXT) \
-	errno/errno_main$(EXEEXT) \
-	event/event_main$(EXEEXT) \
-	hash/hash_main$(EXEEXT) \
-	init/init_main_ok$(EXEEXT) \
-	init/init_main_abort$(EXEEXT) \
-	init/init_main_log$(EXEEXT) \
-	ipsec/ipsec_sync$(EXEEXT) \
-	ipsec/ipsec_async$(EXEEXT) \
-	ipsec/ipsec_inline_in$(EXEEXT) \
-	ipsec/ipsec_inline_out$(EXEEXT) \
-	lock/lock_main$(EXEEXT) \
-	packet/packet_main$(EXEEXT) \
-	pool/pool_main$(EXEEXT) \
-	queue/queue_main$(EXEEXT) \
-	random/random_main$(EXEEXT) \
-	scheduler/scheduler_main$(EXEEXT) \
-	std_clib/std_clib_main$(EXEEXT) \
-	thread/thread_main$(EXEEXT) \
-	time/time_main$(EXEEXT) \
-	timer/timer_main$(EXEEXT) \
-	traffic_mngr/traffic_mngr.sh \
-	shmem/shmem_main$(EXEEXT) \
-	system/system_main$(EXEEXT)
+	atomic_main$(EXEEXT) \
+	barrier_main$(EXEEXT) \
+	buffer_main$(EXEEXT) \
+	chksum_main$(EXEEXT) \
+	classification_main$(EXEEXT) \
+	cpumask_main$(EXEEXT) \
+	crypto_main$(EXEEXT) \
+	errno_main$(EXEEXT) \
+	event_main$(EXEEXT) \
+	hash_main$(EXEEXT) \
+	init_main_ok$(EXEEXT) \
+	init_main_abort$(EXEEXT) \
+	init_main_log$(EXEEXT) \
+	ipsec_sync$(EXEEXT) \
+	ipsec_async$(EXEEXT) \
+	ipsec_inline_in$(EXEEXT) \
+	ipsec_inline_out$(EXEEXT) \
+	lock_main$(EXEEXT) \
+	packet_main$(EXEEXT) \
+	pool_main$(EXEEXT) \
+	queue_main$(EXEEXT) \
+	random_main$(EXEEXT) \
+	scheduler_main$(EXEEXT) \
+	shmem_main$(EXEEXT) \
+	std_clib_main$(EXEEXT) \
+	system_main$(EXEEXT) \
+	thread_main$(EXEEXT) \
+	time_main$(EXEEXT) \
+	timer_main$(EXEEXT) \
+	traffic_mngr/traffic_mngr.sh
 
 TESTNAME = validation
 
diff --git a/test/validation/api/atomic/atomic.c b/test/validation/api/atomic.c
similarity index 100%
rename from test/validation/api/atomic/atomic.c
rename to test/validation/api/atomic.c
diff --git a/test/validation/api/atomic/.gitignore b/test/validation/api/atomic/.gitignore
deleted file mode 100644
index 610ffeab0..000000000
--- a/test/validation/api/atomic/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-atomic_main
diff --git a/test/validation/api/atomic/Makefile.am b/test/validation/api/atomic/Makefile.am
deleted file mode 100644
index 41ad2e6b6..000000000
--- a/test/validation/api/atomic/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = atomic_main
-atomic_main_SOURCES = atomic.c
diff --git a/test/validation/api/barrier/barrier.c b/test/validation/api/barrier.c
similarity index 100%
rename from test/validation/api/barrier/barrier.c
rename to test/validation/api/barrier.c
diff --git a/test/validation/api/barrier/.gitignore b/test/validation/api/barrier/.gitignore
deleted file mode 100644
index 2e0ee7ade..000000000
--- a/test/validation/api/barrier/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-barrier_main
diff --git a/test/validation/api/barrier/Makefile.am b/test/validation/api/barrier/Makefile.am
deleted file mode 100644
index f5f751b88..000000000
--- a/test/validation/api/barrier/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = barrier_main
-barrier_main_SOURCES = barrier.c
diff --git a/test/validation/api/buffer/buffer.c b/test/validation/api/buffer.c
similarity index 100%
rename from test/validation/api/buffer/buffer.c
rename to test/validation/api/buffer.c
diff --git a/test/validation/api/buffer/.gitignore b/test/validation/api/buffer/.gitignore
deleted file mode 100644
index 0e8ac15c1..000000000
--- a/test/validation/api/buffer/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-buffer_main
diff --git a/test/validation/api/buffer/Makefile.am b/test/validation/api/buffer/Makefile.am
deleted file mode 100644
index f459010c3..000000000
--- a/test/validation/api/buffer/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = buffer_main
-buffer_main_SOURCES = buffer.c
diff --git a/test/validation/api/chksum/chksum.c b/test/validation/api/chksum.c
similarity index 100%
rename from test/validation/api/chksum/chksum.c
rename to test/validation/api/chksum.c
diff --git a/test/validation/api/chksum/.gitignore b/test/validation/api/chksum/.gitignore
deleted file mode 100644
index c69e8c470..000000000
--- a/test/validation/api/chksum/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-chksum_main
diff --git a/test/validation/api/chksum/Makefile.am b/test/validation/api/chksum/Makefile.am
deleted file mode 100644
index 349fdd641..000000000
--- a/test/validation/api/chksum/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = chksum_main
-chksum_main_SOURCES = chksum.c
diff --git a/test/validation/api/classification/classification.c b/test/validation/api/classification.c
similarity index 95%
rename from test/validation/api/classification/classification.c
rename to test/validation/api/classification.c
index e89ffbee4..ddff5dd74 100644
--- a/test/validation/api/classification/classification.c
+++ b/test/validation/api/classification.c
@@ -8,7 +8,7 @@
 
 #include <odp_api.h>
 #include <odp_cunit_common.h>
-#include "odp_classification_testsuites.h"
+#include "classification_testsuites.h"
 #include "classification.h"
 
 odp_suiteinfo_t classification_suites[] = {
diff --git a/test/validation/api/classification/classification.h b/test/validation/api/classification.h
similarity index 100%
rename from test/validation/api/classification/classification.h
rename to test/validation/api/classification.h
diff --git a/test/validation/api/classification/.gitignore b/test/validation/api/classification/.gitignore
deleted file mode 100644
index e2cdfefe1..000000000
--- a/test/validation/api/classification/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-classification_main
diff --git a/test/validation/api/classification/Makefile.am b/test/validation/api/classification/Makefile.am
deleted file mode 100644
index e17f9f654..000000000
--- a/test/validation/api/classification/Makefile.am
+++ /dev/null
@@ -1,11 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = classification_main
-classification_main_SOURCES = \
-				   odp_classification_basic.c \
-				   odp_classification_tests.c \
-				   odp_classification_testsuites.h \
-				   odp_classification_test_pmr.c \
-				   odp_classification_common.c \
-				   classification.c \
-				   classification.h
diff --git a/test/validation/api/classification/odp_classification_basic.c b/test/validation/api/classification_basic.c
similarity index 99%
rename from test/validation/api/classification/odp_classification_basic.c
rename to test/validation/api/classification_basic.c
index 8b3738b75..5506ac079 100644
--- a/test/validation/api/classification/odp_classification_basic.c
+++ b/test/validation/api/classification_basic.c
@@ -7,7 +7,7 @@
 #include "config.h"
 
 #include <odp_cunit_common.h>
-#include "odp_classification_testsuites.h"
+#include "classification_testsuites.h"
 #include "classification.h"
 
 #define PMR_SET_NUM	5
diff --git a/test/validation/api/classification/odp_classification_common.c b/test/validation/api/classification_common.c
similarity index 99%
rename from test/validation/api/classification/odp_classification_common.c
rename to test/validation/api/classification_common.c
index 60e20ea87..aabc504fd 100644
--- a/test/validation/api/classification/odp_classification_common.c
+++ b/test/validation/api/classification_common.c
@@ -6,7 +6,7 @@
 
 #include "config.h"
 
-#include "odp_classification_testsuites.h"
+#include "classification_testsuites.h"
 #include "classification.h"
 #include <odp_cunit_common.h>
 #include "test_debug.h"
diff --git a/test/validation/api/classification/odp_classification_test_pmr.c b/test/validation/api/classification_test_pmr.c
similarity index 99%
rename from test/validation/api/classification/odp_classification_test_pmr.c
rename to test/validation/api/classification_test_pmr.c
index f21b8addd..12ef7c516 100644
--- a/test/validation/api/classification/odp_classification_test_pmr.c
+++ b/test/validation/api/classification_test_pmr.c
@@ -6,7 +6,7 @@
 
 #include "config.h"
 
-#include "odp_classification_testsuites.h"
+#include "classification_testsuites.h"
 #include "classification.h"
 #include <odp_cunit_common.h>
 
diff --git a/test/validation/api/classification/odp_classification_tests.c b/test/validation/api/classification_tests.c
similarity index 99%
rename from test/validation/api/classification/odp_classification_tests.c
rename to test/validation/api/classification_tests.c
index 4cd727f9a..5a5f3a8c5 100644
--- a/test/validation/api/classification/odp_classification_tests.c
+++ b/test/validation/api/classification_tests.c
@@ -6,7 +6,7 @@
 
 #include "config.h"
 
-#include "odp_classification_testsuites.h"
+#include "classification_testsuites.h"
 #include "classification.h"
 #include <odp_cunit_common.h>
 
diff --git a/test/validation/api/classification/odp_classification_testsuites.h b/test/validation/api/classification_testsuites.h
similarity index 100%
rename from test/validation/api/classification/odp_classification_testsuites.h
rename to test/validation/api/classification_testsuites.h
diff --git a/test/validation/api/cpumask/cpumask.c b/test/validation/api/cpumask.c
similarity index 100%
rename from test/validation/api/cpumask/cpumask.c
rename to test/validation/api/cpumask.c
diff --git a/test/validation/api/cpumask/.gitignore b/test/validation/api/cpumask/.gitignore
deleted file mode 100644
index 655a1640f..000000000
--- a/test/validation/api/cpumask/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-cpumask_main
diff --git a/test/validation/api/cpumask/Makefile.am b/test/validation/api/cpumask/Makefile.am
deleted file mode 100644
index 3872c1bd4..000000000
--- a/test/validation/api/cpumask/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = cpumask_main
-cpumask_main_SOURCES = cpumask.c
-LDADD += $(LIBCPUMASK_COMMON)
diff --git a/test/validation/api/crypto/odp_crypto_test_inp.c b/test/validation/api/crypto.c
similarity index 99%
rename from test/validation/api/crypto/odp_crypto_test_inp.c
rename to test/validation/api/crypto.c
index ec477535f..de449d480 100644
--- a/test/validation/api/crypto/odp_crypto_test_inp.c
+++ b/test/validation/api/crypto.c
@@ -9,7 +9,7 @@
 #include <odp_api.h>
 #include <CUnit/Basic.h>
 #include <odp_cunit_common.h>
-#include "test_vectors.h"
+#include "crypto_test_vectors.h"
 
 #define MAX_ALG_CAPA 32
 
diff --git a/test/validation/api/crypto/.gitignore b/test/validation/api/crypto/.gitignore
deleted file mode 100644
index 0ac55e35e..000000000
--- a/test/validation/api/crypto/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-crypto_main
diff --git a/test/validation/api/crypto/Makefile.am b/test/validation/api/crypto/Makefile.am
deleted file mode 100644
index cc4d49d60..000000000
--- a/test/validation/api/crypto/Makefile.am
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = crypto_main
-crypto_main_SOURCES = \
-		      odp_crypto_test_inp.c \
-		      test_vectors.h \
-		      test_vectors_len.h
diff --git a/test/validation/api/crypto/test_vectors_len.h b/test/validation/api/crypto/test_vectors_len.h
deleted file mode 100644
index 140bef2a2..000000000
--- a/test/validation/api/crypto/test_vectors_len.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright (c) 2014, Linaro Limited
- * All rights reserved.
- *
- * SPDX-License-Identifier:     BSD-3-Clause
- */
-#ifndef TEST_VECTORS_LEN_
-#define TEST_VECTORS_LEN_
-
-/* Maximum */
-#define MAX_KEY_LEN         64
-#define MAX_IV_LEN          16
-#define MAX_DATA_LEN        128
-#define MAX_AAD_LEN         12
-#define MAX_DIGEST_LEN      64
-
-/* TDES-CBC */
-#define TDES_CBC_KEY_LEN        24
-#define TDES_CBC_IV_LEN         8
-
-/* AES-CBC common */
-#define AES_CBC_IV_LEN         16
-
-/* AES128-CBC */
-#define AES128_CBC_KEY_LEN        16
-
-/* AES192-CBC */
-#define AES192_CBC_KEY_LEN        24
-
-/* AES256-CBC */
-#define AES256_CBC_KEY_LEN        32
-
-/* AES-CBC common */
-#define AES_CTR_IV_LEN         16
-
-/* AES128-CTR */
-#define AES128_CTR_KEY_LEN        16
-
-/* AES192-CTR */
-#define AES192_CTR_KEY_LEN        24
-
-/* AES256-CTR */
-#define AES256_CTR_KEY_LEN        32
-
-/* AES-GCM common */
-#define AES_GCM_IV_LEN         12
-#define AES_GCM_DIGEST_LEN     16
-
-/* AES128-GCM */
-#define AES128_GCM_KEY_LEN        16
-
-/* AES192-GCM */
-#define AES192_GCM_KEY_LEN        24
-
-/* AES256-GCM */
-#define AES256_GCM_KEY_LEN        32
-
-/* HMAC-MD5 */
-#define HMAC_MD5_KEY_LEN        16
-#define HMAC_MD5_96_CHECK_LEN   12
-#define HMAC_MD5_CHECK_LEN      16
-
-/* HMAC-SHA256 */
-#define HMAC_SHA256_KEY_LEN        32
-#define HMAC_SHA256_128_CHECK_LEN  16
-#define HMAC_SHA256_CHECK_LEN      32
-
-/* HMAC-SHA1 */
-#define HMAC_SHA1_KEY_LEN        20
-#define HMAC_SHA1_96_CHECK_LEN   12
-#define HMAC_SHA1_CHECK_LEN      20
-
-/* HMAC-SHA512 */
-#define HMAC_SHA512_KEY_LEN        64
-#define HMAC_SHA512_256_CHECK_LEN  32
-#define HMAC_SHA512_CHECK_LEN      64
-
-#endif
diff --git a/test/validation/api/crypto/test_vectors.h b/test/validation/api/crypto_test_vectors.h
similarity index 96%
rename from test/validation/api/crypto/test_vectors.h
rename to test/validation/api/crypto_test_vectors.h
index 6592a3357..061db05bc 100644
--- a/test/validation/api/crypto/test_vectors.h
+++ b/test/validation/api/crypto_test_vectors.h
@@ -7,7 +7,73 @@
 #ifndef _ODP_TEST_CRYPTO_VECTORS_H_
 #define _ODP_TEST_CRYPTO_VECTORS_H_
 
-#include "test_vectors_len.h"
+/* Maximum */
+#define MAX_KEY_LEN         64
+#define MAX_IV_LEN          16
+#define MAX_DATA_LEN        128
+#define MAX_AAD_LEN         12
+#define MAX_DIGEST_LEN      64
+
+/* TDES-CBC */
+#define TDES_CBC_KEY_LEN        24
+#define TDES_CBC_IV_LEN         8
+
+/* AES-CBC common */
+#define AES_CBC_IV_LEN         16
+
+/* AES128-CBC */
+#define AES128_CBC_KEY_LEN        16
+
+/* AES192-CBC */
+#define AES192_CBC_KEY_LEN        24
+
+/* AES256-CBC */
+#define AES256_CBC_KEY_LEN        32
+
+/* AES-CBC common */
+#define AES_CTR_IV_LEN         16
+
+/* AES128-CTR */
+#define AES128_CTR_KEY_LEN        16
+
+/* AES192-CTR */
+#define AES192_CTR_KEY_LEN        24
+
+/* AES256-CTR */
+#define AES256_CTR_KEY_LEN        32
+
+/* AES-GCM common */
+#define AES_GCM_IV_LEN         12
+#define AES_GCM_DIGEST_LEN     16
+
+/* AES128-GCM */
+#define AES128_GCM_KEY_LEN        16
+
+/* AES192-GCM */
+#define AES192_GCM_KEY_LEN        24
+
+/* AES256-GCM */
+#define AES256_GCM_KEY_LEN        32
+
+/* HMAC-MD5 */
+#define HMAC_MD5_KEY_LEN        16
+#define HMAC_MD5_96_CHECK_LEN   12
+#define HMAC_MD5_CHECK_LEN      16
+
+/* HMAC-SHA256 */
+#define HMAC_SHA256_KEY_LEN        32
+#define HMAC_SHA256_128_CHECK_LEN  16
+#define HMAC_SHA256_CHECK_LEN      32
+
+/* HMAC-SHA1 */
+#define HMAC_SHA1_KEY_LEN        20
+#define HMAC_SHA1_96_CHECK_LEN   12
+#define HMAC_SHA1_CHECK_LEN      20
+
+/* HMAC-SHA512 */
+#define HMAC_SHA512_KEY_LEN        64
+#define HMAC_SHA512_256_CHECK_LEN  32
+#define HMAC_SHA512_CHECK_LEN      64
 
 typedef struct crypto_test_reference_s {
 	uint32_t cipher_key_length;
diff --git a/test/validation/api/errno/errno.c b/test/validation/api/errno.c
similarity index 100%
rename from test/validation/api/errno/errno.c
rename to test/validation/api/errno.c
diff --git a/test/validation/api/errno/.gitignore b/test/validation/api/errno/.gitignore
deleted file mode 100644
index 12256e38c..000000000
--- a/test/validation/api/errno/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-errno_main
diff --git a/test/validation/api/errno/Makefile.am b/test/validation/api/errno/Makefile.am
deleted file mode 100644
index de13afbfb..000000000
--- a/test/validation/api/errno/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = errno_main
-errno_main_SOURCES = errno.c
diff --git a/test/validation/api/event/event.c b/test/validation/api/event.c
similarity index 100%
rename from test/validation/api/event/event.c
rename to test/validation/api/event.c
diff --git a/test/validation/api/event/.gitignore b/test/validation/api/event/.gitignore
deleted file mode 100644
index 05d34d7c8..000000000
--- a/test/validation/api/event/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-event_main
diff --git a/test/validation/api/event/Makefile.am b/test/validation/api/event/Makefile.am
deleted file mode 100644
index 0d26035ed..000000000
--- a/test/validation/api/event/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = event_main
-event_main_SOURCES = event.c
diff --git a/test/validation/api/hash/hash.c b/test/validation/api/hash.c
similarity index 100%
rename from test/validation/api/hash/hash.c
rename to test/validation/api/hash.c
diff --git a/test/validation/api/hash/.gitignore b/test/validation/api/hash/.gitignore
deleted file mode 100644
index 6d0bc9314..000000000
--- a/test/validation/api/hash/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-hash_main
diff --git a/test/validation/api/hash/Makefile.am b/test/validation/api/hash/Makefile.am
deleted file mode 100644
index 0d843ea74..000000000
--- a/test/validation/api/hash/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = hash_main
-hash_main_SOURCES = hash.c
diff --git a/test/validation/api/init/.gitignore b/test/validation/api/init/.gitignore
deleted file mode 100644
index f433708b0..000000000
--- a/test/validation/api/init/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-init_main_abort
-init_main_log
-init_main_ok
diff --git a/test/validation/api/init/Makefile.am b/test/validation/api/init/Makefile.am
deleted file mode 100644
index 5af2e00bc..000000000
--- a/test/validation/api/init/Makefile.am
+++ /dev/null
@@ -1,9 +0,0 @@
-include ../Makefile.inc
-
-# most platforms are expected not to support multiple ODP inits
-# following each other: therefore 3 separate binaries are
-# created, each containing its ODP init test.
-test_PROGRAMS = init_main_abort init_main_log init_main_ok
-init_main_abort_SOURCES = init_main_abort.c
-init_main_log_SOURCES   = init_main_log.c
-init_main_ok_SOURCES    = init_main_ok.c
diff --git a/test/validation/api/init/init_main_abort.c b/test/validation/api/init_main_abort.c
similarity index 100%
rename from test/validation/api/init/init_main_abort.c
rename to test/validation/api/init_main_abort.c
diff --git a/test/validation/api/init/init_main_log.c b/test/validation/api/init_main_log.c
similarity index 100%
rename from test/validation/api/init/init_main_log.c
rename to test/validation/api/init_main_log.c
diff --git a/test/validation/api/init/init_main_ok.c b/test/validation/api/init_main_ok.c
similarity index 100%
rename from test/validation/api/init/init_main_ok.c
rename to test/validation/api/init_main_ok.c
diff --git a/test/validation/api/ipsec/ipsec.c b/test/validation/api/ipsec.c
similarity index 99%
rename from test/validation/api/ipsec/ipsec.c
rename to test/validation/api/ipsec.c
index b16f84ac9..b4c5f9cba 100644
--- a/test/validation/api/ipsec/ipsec.c
+++ b/test/validation/api/ipsec.c
@@ -12,7 +12,7 @@
 
 #include "ipsec.h"
 
-#include "test_vectors.h"
+#include "ipsec_test_vectors.h"
 
 struct suite_context_s suite_context;
 
diff --git a/test/validation/api/ipsec/ipsec.h b/test/validation/api/ipsec.h
similarity index 100%
rename from test/validation/api/ipsec/ipsec.h
rename to test/validation/api/ipsec.h
diff --git a/test/validation/api/ipsec/.gitignore b/test/validation/api/ipsec/.gitignore
deleted file mode 100644
index 967356064..000000000
--- a/test/validation/api/ipsec/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-ipsec_sync
-ipsec_async
-ipsec_inline_in
-ipsec_inline_out
diff --git a/test/validation/api/ipsec/Makefile.am b/test/validation/api/ipsec/Makefile.am
deleted file mode 100644
index 328826995..000000000
--- a/test/validation/api/ipsec/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
-include ../Makefile.inc
-
-AM_CPPFLAGS += -Wno-error=missing-field-initializers
-
-noinst_LTLIBRARIES = libtestipsec.la
-libtestipsec_la_SOURCES = \
-	test_vectors.h \
-	ipsec_test_in.c \
-	ipsec_test_out.c \
-	ipsec.h \
-	ipsec.c
-
-test_PROGRAMS = \
-	ipsec_sync \
-	ipsec_async \
-	ipsec_inline_in \
-	ipsec_inline_out
-
-ipsec_sync_SOURCES = ipsec_sync.c
-ipsec_async_SOURCES = ipsec_async.c
-ipsec_inline_in_SOURCES = ipsec_inline_in.c
-ipsec_inline_out_SOURCES = ipsec_inline_out.c
-
-LDADD += libtestipsec.la
diff --git a/test/validation/api/ipsec/ipsec_async.c b/test/validation/api/ipsec_async.c
similarity index 100%
rename from test/validation/api/ipsec/ipsec_async.c
rename to test/validation/api/ipsec_async.c
diff --git a/test/validation/api/ipsec/ipsec_inline_in.c b/test/validation/api/ipsec_inline_in.c
similarity index 100%
rename from test/validation/api/ipsec/ipsec_inline_in.c
rename to test/validation/api/ipsec_inline_in.c
diff --git a/test/validation/api/ipsec/ipsec_inline_out.c b/test/validation/api/ipsec_inline_out.c
similarity index 100%
rename from test/validation/api/ipsec/ipsec_inline_out.c
rename to test/validation/api/ipsec_inline_out.c
diff --git a/test/validation/api/ipsec/ipsec_sync.c b/test/validation/api/ipsec_sync.c
similarity index 100%
rename from test/validation/api/ipsec/ipsec_sync.c
rename to test/validation/api/ipsec_sync.c
diff --git a/test/validation/api/ipsec/ipsec_test_in.c b/test/validation/api/ipsec_test_in.c
similarity index 99%
rename from test/validation/api/ipsec/ipsec_test_in.c
rename to test/validation/api/ipsec_test_in.c
index 6262f4cb5..606a64428 100644
--- a/test/validation/api/ipsec/ipsec_test_in.c
+++ b/test/validation/api/ipsec_test_in.c
@@ -8,7 +8,7 @@
 
 #include "ipsec.h"
 
-#include "test_vectors.h"
+#include "ipsec_test_vectors.h"
 
 static void test_in_ipv4_ah_sha256(void)
 {
diff --git a/test/validation/api/ipsec/ipsec_test_out.c b/test/validation/api/ipsec_test_out.c
similarity index 99%
rename from test/validation/api/ipsec/ipsec_test_out.c
rename to test/validation/api/ipsec_test_out.c
index 4751e6ec8..29f09711f 100644
--- a/test/validation/api/ipsec/ipsec_test_out.c
+++ b/test/validation/api/ipsec_test_out.c
@@ -8,7 +8,7 @@
 
 #include "ipsec.h"
 
-#include "test_vectors.h"
+#include "ipsec_test_vectors.h"
 
 static void test_out_ipv4_ah_sha256(void)
 {
diff --git a/test/validation/api/ipsec/test_vectors.h b/test/validation/api/ipsec_test_vectors.h
similarity index 100%
rename from test/validation/api/ipsec/test_vectors.h
rename to test/validation/api/ipsec_test_vectors.h
diff --git a/test/validation/api/lock/lock.c b/test/validation/api/lock.c
similarity index 100%
rename from test/validation/api/lock/lock.c
rename to test/validation/api/lock.c
diff --git a/test/validation/api/lock/.gitignore b/test/validation/api/lock/.gitignore
deleted file mode 100644
index ff16646f4..000000000
--- a/test/validation/api/lock/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-lock_main
diff --git a/test/validation/api/lock/Makefile.am b/test/validation/api/lock/Makefile.am
deleted file mode 100644
index ad75e1854..000000000
--- a/test/validation/api/lock/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = lock_main
-lock_main_SOURCES = lock.c
diff --git a/test/validation/api/packet/packet.c b/test/validation/api/packet.c
similarity index 100%
rename from test/validation/api/packet/packet.c
rename to test/validation/api/packet.c
diff --git a/test/validation/api/packet/.gitignore b/test/validation/api/packet/.gitignore
deleted file mode 100644
index c05530d2d..000000000
--- a/test/validation/api/packet/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-packet_main
diff --git a/test/validation/api/packet/Makefile.am b/test/validation/api/packet/Makefile.am
deleted file mode 100644
index ad5775d7e..000000000
--- a/test/validation/api/packet/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = packet_main
-packet_main_SOURCES = packet.c
diff --git a/test/validation/api/pool/pool.c b/test/validation/api/pool.c
similarity index 100%
rename from test/validation/api/pool/pool.c
rename to test/validation/api/pool.c
diff --git a/test/validation/api/pool/.gitignore b/test/validation/api/pool/.gitignore
deleted file mode 100644
index fc91b28d6..000000000
--- a/test/validation/api/pool/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-pool_main
diff --git a/test/validation/api/pool/Makefile.am b/test/validation/api/pool/Makefile.am
deleted file mode 100644
index 1b0d5934c..000000000
--- a/test/validation/api/pool/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = pool_main
-pool_main_SOURCES = pool.c
diff --git a/test/validation/api/queue/queue.c b/test/validation/api/queue.c
similarity index 100%
rename from test/validation/api/queue/queue.c
rename to test/validation/api/queue.c
diff --git a/test/validation/api/queue/.gitignore b/test/validation/api/queue/.gitignore
deleted file mode 100644
index 469506a13..000000000
--- a/test/validation/api/queue/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-queue_main
diff --git a/test/validation/api/queue/Makefile.am b/test/validation/api/queue/Makefile.am
deleted file mode 100644
index 94a6b28a9..000000000
--- a/test/validation/api/queue/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = queue_main
-queue_main_SOURCES = queue.c
diff --git a/test/validation/api/random/random.c b/test/validation/api/random.c
similarity index 100%
rename from test/validation/api/random/random.c
rename to test/validation/api/random.c
diff --git a/test/validation/api/random/.gitignore b/test/validation/api/random/.gitignore
deleted file mode 100644
index 2c88ec0b8..000000000
--- a/test/validation/api/random/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-random_main
diff --git a/test/validation/api/random/Makefile.am b/test/validation/api/random/Makefile.am
deleted file mode 100644
index e24ce0af7..000000000
--- a/test/validation/api/random/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = random_main
-random_main_SOURCES = random.c
diff --git a/test/validation/api/scheduler/scheduler.c b/test/validation/api/scheduler.c
similarity index 100%
rename from test/validation/api/scheduler/scheduler.c
rename to test/validation/api/scheduler.c
diff --git a/test/validation/api/scheduler/.gitignore b/test/validation/api/scheduler/.gitignore
deleted file mode 100644
index b4eb30091..000000000
--- a/test/validation/api/scheduler/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-scheduler_main
diff --git a/test/validation/api/scheduler/Makefile.am b/test/validation/api/scheduler/Makefile.am
deleted file mode 100644
index 050f22308..000000000
--- a/test/validation/api/scheduler/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = scheduler_main
-scheduler_main_SOURCES = scheduler.c
diff --git a/test/validation/api/shmem/shmem.c b/test/validation/api/shmem.c
similarity index 100%
rename from test/validation/api/shmem/shmem.c
rename to test/validation/api/shmem.c
diff --git a/test/validation/api/shmem/.gitignore b/test/validation/api/shmem/.gitignore
deleted file mode 100644
index 4d82fd53a..000000000
--- a/test/validation/api/shmem/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-shmem_main
diff --git a/test/validation/api/shmem/Makefile.am b/test/validation/api/shmem/Makefile.am
deleted file mode 100644
index 52e33fdca..000000000
--- a/test/validation/api/shmem/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = shmem_main
-shmem_main_SOURCES = shmem.c
diff --git a/test/validation/api/std_clib/std_clib.c b/test/validation/api/std_clib.c
similarity index 100%
rename from test/validation/api/std_clib/std_clib.c
rename to test/validation/api/std_clib.c
diff --git a/test/validation/api/std_clib/.gitignore b/test/validation/api/std_clib/.gitignore
deleted file mode 100644
index 37828330a..000000000
--- a/test/validation/api/std_clib/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-std_clib_main
diff --git a/test/validation/api/std_clib/Makefile.am b/test/validation/api/std_clib/Makefile.am
deleted file mode 100644
index 9d3b32d3f..000000000
--- a/test/validation/api/std_clib/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = std_clib_main
-std_clib_main_SOURCES = std_clib.c
diff --git a/test/validation/api/system/system.c b/test/validation/api/system.c
similarity index 100%
rename from test/validation/api/system/system.c
rename to test/validation/api/system.c
diff --git a/test/validation/api/system/.gitignore b/test/validation/api/system/.gitignore
deleted file mode 100644
index 347b1ee21..000000000
--- a/test/validation/api/system/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-system_main
diff --git a/test/validation/api/system/Makefile.am b/test/validation/api/system/Makefile.am
deleted file mode 100644
index 8090b0b5a..000000000
--- a/test/validation/api/system/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = system_main
-system_main_SOURCES = system.c
diff --git a/test/validation/api/thread/thread.c b/test/validation/api/thread.c
similarity index 99%
rename from test/validation/api/thread/thread.c
rename to test/validation/api/thread.c
index fe504e888..f45521766 100644
--- a/test/validation/api/thread/thread.c
+++ b/test/validation/api/thread.c
@@ -6,6 +6,7 @@
 
 #include "config.h"
 
+#define TEST_THRMASK
 #include <odp_api.h>
 #include <odp_cunit_common.h>
 #include <mask_common.h>
diff --git a/test/validation/api/thread/.gitignore b/test/validation/api/thread/.gitignore
deleted file mode 100644
index ab1787d97..000000000
--- a/test/validation/api/thread/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-thread_main
diff --git a/test/validation/api/thread/Makefile.am b/test/validation/api/thread/Makefile.am
deleted file mode 100644
index cbd8b2a7b..000000000
--- a/test/validation/api/thread/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = thread_main
-thread_main_CPPFLAGS = $(AM_CPPFLAGS) -DTEST_THRMASK
-thread_main_SOURCES = thread.c
-LDADD += $(LIBTHRMASK_COMMON)
diff --git a/test/validation/api/time/time.c b/test/validation/api/time.c
similarity index 100%
rename from test/validation/api/time/time.c
rename to test/validation/api/time.c
diff --git a/test/validation/api/time/.gitignore b/test/validation/api/time/.gitignore
deleted file mode 100644
index 0ef3e6162..000000000
--- a/test/validation/api/time/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-time_main
diff --git a/test/validation/api/time/Makefile.am b/test/validation/api/time/Makefile.am
deleted file mode 100644
index 9b0392eb9..000000000
--- a/test/validation/api/time/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = time_main
-time_main_SOURCES = time.c
diff --git a/test/validation/api/timer/timer.c b/test/validation/api/timer.c
similarity index 100%
rename from test/validation/api/timer/timer.c
rename to test/validation/api/timer.c
diff --git a/test/validation/api/timer/.gitignore b/test/validation/api/timer/.gitignore
deleted file mode 100644
index 74e8fa992..000000000
--- a/test/validation/api/timer/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-timer_main
diff --git a/test/validation/api/timer/Makefile.am b/test/validation/api/timer/Makefile.am
deleted file mode 100644
index bc33e731f..000000000
--- a/test/validation/api/timer/Makefile.am
+++ /dev/null
@@ -1,4 +0,0 @@
-include ../Makefile.inc
-
-test_PROGRAMS = timer_main
-timer_main_SOURCES = timer.c
