diff --git a/Makefile.am b/Makefile.am
index 2129472..625748a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -9,7 +9,6 @@ AM_DISTCHECK_CONFIGURE_FLAGS = --enable-test-cpp \
 SUBDIRS = @platform_with_platform@ \
 	  helper \
 	  test \
-	  @platform_with_platform_test@ \
 	  helper/test \
 	  doc \
 	  example \
diff --git a/configure.ac b/configure.ac
index c87755b..f3952db 100644
--- a/configure.ac
+++ b/configure.ac
@@ -107,7 +107,6 @@ AC_ARG_WITH([platform],
 
 AC_SUBST([with_platform])
 AC_SUBST([platform_with_platform], ["platform/${with_platform}"])
-AC_SUBST([platform_with_platform_test], ["platform/${with_platform}/test"])
 
 ##########################################################################
 # Run platform specific checks and settings
@@ -116,6 +115,7 @@ IMPLEMENTATION_NAME=""
 if test "${with_platform}" == "linux-generic";
 then
     m4_include([./platform/linux-generic/m4/configure.m4])
+    m4_include([./test/platform/linux-generic/m4/configure.m4])
     IMPLEMENTATION_NAME="odp-linux"
 else
     echo "UNSUPPORTED PLATFORM: ${with_platform}"
diff --git a/platform/linux-generic/m4/configure.m4 b/platform/linux-generic/m4/configure.m4
index 5380046..1b1b883 100644
--- a/platform/linux-generic/m4/configure.m4
+++ b/platform/linux-generic/m4/configure.m4
@@ -36,9 +36,4 @@ m4_include([platform/linux-generic/m4/odp_dpdk.m4])
 m4_include([platform/linux-generic/m4/odp_ipc.m4])
 m4_include([platform/linux-generic/m4/odp_schedule.m4])
 
-AC_CONFIG_FILES([platform/linux-generic/Makefile
-		 platform/linux-generic/test/Makefile
-		 platform/linux-generic/test/shmem/Makefile
-		 platform/linux-generic/test/pktio/Makefile
-		 platform/linux-generic/test/pktio_ipc/Makefile
-		 platform/linux-generic/test/ring/Makefile])
+AC_CONFIG_FILES([platform/linux-generic/Makefile])
diff --git a/test/Makefile.am b/test/Makefile.am
index 4a75364..0b0987a 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,5 +1,16 @@
 SUBDIRS = performance miscellaneous
 
 if cunit_support
-    SUBDIRS += validation
+    SUBDIRS += validation @platform_with_platform@
 endif
+
+dist_check_SCRIPTS = run-test $(LOG_COMPILER)
+
+test_SCRIPTS = $(dist_check_SCRIPTS)
+
+if test_installdir
+installcheck-local:
+	$(DESTDIR)/$(testdir)/run-test
+endif
+
+noinst_HEADERS = $(top_srcdir)/test/test_debug.h
diff --git a/test/performance/Makefile.am b/test/performance/Makefile.am
index d23bb3e..04e8027 100644
--- a/test/performance/Makefile.am
+++ b/test/performance/Makefile.am
@@ -23,9 +23,6 @@ odp_crypto_CFLAGS = $(AM_CFLAGS) -I${top_srcdir}/test
 odp_scheduling_LDFLAGS = $(AM_LDFLAGS) -static
 odp_scheduling_CFLAGS = $(AM_CFLAGS) -I${top_srcdir}/test
 
-noinst_HEADERS = \
-		  $(top_srcdir)/test/test_debug.h
-
 dist_odp_crypto_SOURCES = odp_crypto.c
 dist_odp_scheduling_SOURCES = odp_scheduling.c
 dist_odp_pktio_perf_SOURCES = odp_pktio_perf.c
diff --git a/test/performance/odp_l2fwd_run.sh b/test/performance/odp_l2fwd_run.sh
index cab97a8..fc3d05d 100755
--- a/test/performance/odp_l2fwd_run.sh
+++ b/test/performance/odp_l2fwd_run.sh
@@ -37,8 +37,8 @@ elif  [ "$ODP_PLATFORM" = "" ]; then
 	echo "$0: error: ODP_PLATFORM must be defined"
 	# not skipped as this should never happen via "make check"
 	exit 1
-elif [ -f ${TEST_SRC_DIR}/../../platform/$ODP_PLATFORM/test/pktio/pktio_env ]; then
-	. ${TEST_SRC_DIR}/../../platform/$ODP_PLATFORM/test/pktio/pktio_env
+elif [ -f ${TEST_SRC_DIR}/../platform/$ODP_PLATFORM/pktio/pktio_env ]; then
+	. ${TEST_SRC_DIR}/../platform/$ODP_PLATFORM/pktio/pktio_env
 else
 	echo "BUG: unable to find pktio_env!"
 	echo "pktio_env has to be in current directory or in platform/\$ODP_PLATFORM/test."
diff --git a/platform/linux-generic/test/.gitignore b/test/platform/linux-generic/.gitignore
similarity index 33%
rename from platform/linux-generic/test/.gitignore
rename to test/platform/linux-generic/.gitignore
index 5dabf91..1a6e931 100644
--- a/platform/linux-generic/test/.gitignore
+++ b/test/platform/linux-generic/.gitignore
@@ -1,3 +1,3 @@
 *.log
 *.trs
-tests-validation.env
+tests-linux-generic.env
diff --git a/platform/linux-generic/test/Makefile.am b/test/platform/linux-generic/Makefile.am
similarity index 24%
rename from platform/linux-generic/test/Makefile.am
rename to test/platform/linux-generic/Makefile.am
index 2d58c57..d97714f 100644
--- a/platform/linux-generic/test/Makefile.am
+++ b/test/platform/linux-generic/Makefile.am
@@ -1,41 +1,16 @@
-include $(top_srcdir)/test/Makefile.inc
-TESTS_ENVIRONMENT += TEST_DIR=${top_builddir}/test/validation
+include $(top_srcdir)/test/platform/linux-generic/Makefile.inc
 
-ODP_MODULES = pktio \
-	      ring \
-	      shmem
+TESTS_ENVIRONMENT += TEST_DIR=${builddir}
+
+ODP_MODULES = pktio ring shmem
 
 if test_vald
+SUBDIRS = $(ODP_MODULES)
+
 TESTS = pktio/pktio_run.sh \
 	pktio/pktio_run_tap.sh \
 	ring/ring_main$(EXEEXT) \
-	shmem/shmem_linux \
-	${top_builddir}/test/validation/atomic/atomic_main$(EXEEXT) \
-	${top_builddir}/test/validation/barrier/barrier_main$(EXEEXT) \
-	${top_builddir}/test/validation/buffer/buffer_main$(EXEEXT) \
-	${top_builddir}/test/validation/classification/classification_main$(EXEEXT) \
-	${top_builddir}/test/validation/cpumask/cpumask_main$(EXEEXT) \
-	${top_builddir}/test/validation/crypto/crypto_main$(EXEEXT) \
-	${top_builddir}/test/validation/errno/errno_main$(EXEEXT) \
-	${top_builddir}/test/validation/hash/hash_main$(EXEEXT) \
-	${top_builddir}/test/validation/init/init_main_ok$(EXEEXT) \
-	${top_builddir}/test/validation/init/init_main_abort$(EXEEXT) \
-	${top_builddir}/test/validation/init/init_main_log$(EXEEXT) \
-	${top_builddir}/test/validation/lock/lock_main$(EXEEXT) \
-	${top_builddir}/test/validation/packet/packet_main$(EXEEXT) \
-	${top_builddir}/test/validation/pool/pool_main$(EXEEXT) \
-	${top_builddir}/test/validation/queue/queue_main$(EXEEXT) \
-	${top_builddir}/test/validation/random/random_main$(EXEEXT) \
-	${top_builddir}/test/validation/scheduler/scheduler_main$(EXEEXT) \
-	${top_builddir}/test/validation/std_clib/std_clib_main$(EXEEXT) \
-	${top_builddir}/test/validation/thread/thread_main$(EXEEXT) \
-	${top_builddir}/test/validation/time/time_main$(EXEEXT) \
-	${top_builddir}/test/validation/timer/timer_main$(EXEEXT) \
-	${top_builddir}/test/validation/traffic_mngr/traffic_mngr_main$(EXEEXT) \
-	${top_builddir}/test/validation/shmem/shmem_main$(EXEEXT) \
-	${top_builddir}/test/validation/system/system_main$(EXEEXT)
-
-SUBDIRS = $(ODP_MODULES)
+	shmem/shmem_linux
 
 if HAVE_PCAP
 TESTS += pktio/pktio_run_pcap.sh
@@ -54,20 +29,15 @@ endif
 
 TEST_EXTENSIONS = .sh
 
-dist_check_SCRIPTS = run-test tests-validation.env $(LOG_COMPILER)
+dist_check_SCRIPTS = tests-linux-generic.env $(LOG_COMPILER)
 
 test_SCRIPTS = $(dist_check_SCRIPTS)
 
-tests-validation.env:
+tests-linux-generic.env:
 	echo "TESTS=\"$(TESTS)\""    > $@
 	echo "$(TESTS_ENVIRONMENT)" >> $@
 	echo "$(LOG_COMPILER)"      >> $@
 
-if test_installdir
-installcheck-local:
-	$(DESTDIR)/$(testdir)/run-test
-endif
-
 #performance tests refer to pktio_env
 if test_perf
 SUBDIRS = pktio
diff --git a/platform/linux-generic/test/Makefile.inc b/test/platform/linux-generic/Makefile.inc
similarity index 13%
rename from platform/linux-generic/test/Makefile.inc
rename to test/platform/linux-generic/Makefile.inc
index 80b66ae..9f36f9d 100644
--- a/platform/linux-generic/test/Makefile.inc
+++ b/test/platform/linux-generic/Makefile.inc
@@ -1,16 +1,16 @@
-# The following definitions may be used by platform tests that wish to
-# build specific ODP applications, (i.e those whose do more than validation
-# test wrapping)
+include $(top_srcdir)/test/Makefile.inc
 
+COMMON_DIR = $(top_builddir)/test/validation/common
+
+#the following option ensure that option '-I.' is not passed to gcc,
+#therefore distinguishing between '#include "X"' and '#include <X>'.
+#It allows common filenames (such as 'errno.h') to be used locally.
+AUTOMAKE_OPTIONS = nostdinc
+
+AM_CFLAGS += -I$(top_srcdir)/test/validation/common
 AM_LDFLAGS += -static
 
-LIBCUNIT_COMMON = $(top_builddir)/test/validation/common/libcunit_common.la
-LIB   = $(top_builddir)/lib
+LIBCUNIT_COMMON = $(COMMON_DIR)/libcunit_common.la
+LIBCPUMASK_COMMON = $(COMMON_DIR)/libcpumask_common.la
+LIBTHRMASK_COMMON = $(COMMON_DIR)/libthrmask_common.la
 LIBODP = $(LIB)/libodphelper-linux.la $(LIB)/libodp-linux.la
-
-INCCUNIT_COMMON = -I$(top_srcdir)/test/validation/common
-INCODP = -I$(top_srcdir)/test \
-	 -I$(top_srcdir)/platform/@with_platform@/include \
-	 -I$(top_srcdir)/platform/@with_platform@/arch/$(ARCH_DIR) \
-	 -I$(top_srcdir)/include \
-	 -I$(top_srcdir)/helper/include
diff --git a/test/platform/linux-generic/m4/configure.m4 b/test/platform/linux-generic/m4/configure.m4
new file mode 100644
index 0000000..8c3db21
--- /dev/null
+++ b/test/platform/linux-generic/m4/configure.m4
@@ -0,0 +1,5 @@
+AC_CONFIG_FILES([test/platform/linux-generic/Makefile
+		 test/platform/linux-generic/shmem/Makefile
+		 test/platform/linux-generic/pktio/Makefile
+		 test/platform/linux-generic/pktio_ipc/Makefile
+		 test/platform/linux-generic/ring/Makefile])
diff --git a/platform/linux-generic/test/pktio/.gitignore b/test/platform/linux-generic/pktio/.gitignore
similarity index 100%
rename from platform/linux-generic/test/pktio/.gitignore
rename to test/platform/linux-generic/pktio/.gitignore
diff --git a/platform/linux-generic/test/pktio/Makefile.am b/test/platform/linux-generic/pktio/Makefile.am
similarity index 82%
rename from platform/linux-generic/test/pktio/Makefile.am
rename to test/platform/linux-generic/pktio/Makefile.am
index 4a14343..209405d 100644
--- a/platform/linux-generic/test/pktio/Makefile.am
+++ b/test/platform/linux-generic/pktio/Makefile.am
@@ -1,3 +1,5 @@
+include $(top_srcdir)/test/platform/linux-generic/Makefile.inc
+
 dist_check_SCRIPTS = pktio_env \
 		     pktio_run.sh \
 		     pktio_run_tap.sh
diff --git a/platform/linux-generic/test/pktio/pktio_env b/test/platform/linux-generic/pktio/pktio_env
similarity index 100%
rename from platform/linux-generic/test/pktio/pktio_env
rename to test/platform/linux-generic/pktio/pktio_env
diff --git a/platform/linux-generic/test/pktio/pktio_run.sh b/test/platform/linux-generic/pktio/pktio_run.sh
similarity index 80%
rename from platform/linux-generic/test/pktio/pktio_run.sh
rename to test/platform/linux-generic/pktio/pktio_run.sh
index 1dc1f44..4840bb0 100755
--- a/platform/linux-generic/test/pktio/pktio_run.sh
+++ b/test/platform/linux-generic/pktio/pktio_run.sh
@@ -15,15 +15,20 @@
 # test (legacy mode).
 #
 
-# directories where pktio_main binary can be found:
-# -in the validation dir when running make check (intree or out of tree)
-# -in the script directory, when running after 'make install', or
-# -in the validation when running standalone (./pktio_run) intree.
-# -in the current directory.
-# running stand alone out of tree requires setting PATH
-PATH=${TEST_DIR}/pktio:$PATH
-PATH=$(dirname $0):$PATH
-PATH=$(dirname $0)/../../../../test/validation/pktio:$PATH
+# directory where platform script run-test resides
+TEST_DIR="${TEST_DIR:-$PWD}"
+
+# out-of-tree build searches binaries in build directory
+PATH=$TEST_DIR/pktio:$TEST_DIR/../../validation/pktio:$PATH
+
+# directory where test sources are, including scripts
+TEST_SRC_DIR=$(dirname $0)
+
+# in-tree build searches binaries in source directory
+PATH=$TEST_SRC_DIR:$TEST_SRC_DIR/../../../validation/pktio:$PATH
+
+# run standalone in-tree searches binaries in .
+# run standaline out-of-tree requires manually setting PATH
 PATH=.:$PATH
 
 pktio_main_path=$(which pktio_main${EXEEXT})
@@ -33,9 +38,6 @@ else
 	echo "cannot find pktio_main: please set you PATH for it."
 fi
 
-# directory where platform test sources are, including scripts
-TEST_SRC_DIR=$(dirname $0)
-
 # exit codes expected by automake for skipped tests
 TEST_SKIPPED=77
 
@@ -46,7 +48,8 @@ elif [ -f ${TEST_SRC_DIR}/pktio_env ]; then
 	. ${TEST_SRC_DIR}/pktio_env
 else
 	echo "BUG: unable to find pktio_env!"
-	echo "pktio_env has to be in current directory or in platform/\$ODP_PLATFORM/test."
+	echo "pktio_env has to be in current directory" \
+		"or in platform/\$ODP_PLATFORM/test."
 	echo "ODP_PLATFORM=\"$ODP_PLATFORM\""
 	exit 1
 fi
diff --git a/platform/linux-generic/test/pktio/pktio_run_dpdk.sh b/test/platform/linux-generic/pktio/pktio_run_dpdk.sh
similarity index 70%
rename from platform/linux-generic/test/pktio/pktio_run_dpdk.sh
rename to test/platform/linux-generic/pktio/pktio_run_dpdk.sh
index fd552c6..ef5223e 100755
--- a/platform/linux-generic/test/pktio/pktio_run_dpdk.sh
+++ b/test/platform/linux-generic/pktio/pktio_run_dpdk.sh
@@ -15,15 +15,20 @@
 # test (legacy mode).
 #
 
-# directories where pktio_main binary can be found:
-# -in the validation dir when running make check (intree or out of tree)
-# -in the script directory, when running after 'make install', or
-# -in the validation when running standalone (./pktio_run) intree.
-# -in the current directory.
-# running stand alone out of tree requires setting PATH
-PATH=${TEST_DIR}/pktio:$PATH
-PATH=$(dirname $0):$PATH
-PATH=$(dirname $0)/../../../../test/validation/pktio:$PATH
+# directory where platform script run-test resides
+TEST_DIR="${TEST_DIR:-$PWD}"
+
+# out-of-tree build searches binaries in build directory
+PATH=$TEST_DIR/pktio:$TEST_DIR/../../validation/pktio:$PATH
+
+# directory where test sources are, including scripts
+TEST_SRC_DIR=$(dirname $0)
+
+# in-tree build searches binaries in source directory
+PATH=$TEST_SRC_DIR:$TEST_SRC_DIR/../../../validation/pktio:$PATH
+
+# run standalone in-tree searches binaries in .
+# run standaline out-of-tree requires manually setting PATH
 PATH=.:$PATH
 
 pktio_main_path=$(which pktio_main${EXEEXT})
@@ -33,9 +38,6 @@ else
 	echo "cannot find pktio_main: please set you PATH for it."
 fi
 
-# directory where platform test sources are, including scripts
-TEST_SRC_DIR=$(dirname $0)
-
 # exit codes expected by automake for skipped tests
 TEST_SKIPPED=77
 
@@ -46,7 +48,8 @@ elif [ -f ${TEST_SRC_DIR}/pktio_env ]; then
 	. ${TEST_SRC_DIR}/pktio_env
 else
 	echo "BUG: unable to find pktio_env!"
-	echo "pktio_env has to be in current directory or in platform/\$ODP_PLATFORM/test."
+	echo "pktio_env has to be in current directory" \
+		"or in platform/\$ODP_PLATFORM/test."
 	echo "ODP_PLATFORM=\"$ODP_PLATFORM\""
 	exit 1
 fi
@@ -74,7 +77,9 @@ run()
 
 	if [ "$ODP_PKTIO_IF0" = "" ]; then
 		setup_pktio_env clean
-		export ODP_PKTIO_DPDK_PARAMS="--vdev eth_pcap0,iface=$IF0 --vdev eth_pcap1,iface=$IF1"
+		IF0_PARAMS="--vdev eth_pcap0,iface=$IF0"
+		IF1_PARAMS="--vdev eth_pcap1,iface=$IF1"
+		export ODP_PKTIO_DPDK_PARAMS="$IF0_PARAMS $IF1_PARAMS"
 		export ODP_PKTIO_IF0=0
 		export ODP_PKTIO_IF1=1
 	fi
diff --git a/platform/linux-generic/test/pktio/pktio_run_netmap.sh b/test/platform/linux-generic/pktio/pktio_run_netmap.sh
similarity index 79%
rename from platform/linux-generic/test/pktio/pktio_run_netmap.sh
rename to test/platform/linux-generic/pktio/pktio_run_netmap.sh
index b651ea3..11f02ec 100755
--- a/platform/linux-generic/test/pktio/pktio_run_netmap.sh
+++ b/test/platform/linux-generic/pktio/pktio_run_netmap.sh
@@ -9,15 +9,20 @@
 # any parameter passed as arguments to this script is passed unchanged to
 # the test itself (pktio_main)
 
-# directories where pktio_main binary can be found:
-# -in the validation dir when running make check (intree or out of tree)
-# -in the script directory, when running after 'make install', or
-# -in the validation when running standalone (./pktio_run) intree.
-# -in the current directory.
-# running stand alone out of tree requires setting PATH
-PATH=${TEST_DIR}/pktio:$PATH
-PATH=$(dirname $0):$PATH
-PATH=$(dirname $0)/../../../../test/validation/pktio:$PATH
+# directory where platform script run-test resides
+TEST_DIR="${TEST_DIR:-$PWD}"
+
+# out-of-tree build searches binaries in build directory
+PATH=$TEST_DIR/pktio:$TEST_DIR/../../validation/pktio:$PATH
+
+# directory where test sources are, including scripts
+TEST_SRC_DIR=$(dirname $0)
+
+# in-tree build searches binaries in source directory
+PATH=$TEST_SRC_DIR:$TEST_SRC_DIR/../../../validation/pktio:$PATH
+
+# run standalone in-tree searches binaries in .
+# run standaline out-of-tree requires manually setting PATH
 PATH=.:$PATH
 
 pktio_main_path=$(which pktio_main${EXEEXT})
@@ -27,9 +32,6 @@ else
 	echo "cannot find pktio_main: please set you PATH for it."
 fi
 
-# directory where platform test sources are, including scripts
-TEST_SRC_DIR=$(dirname $0)
-
 # exit codes expected by automake for skipped tests
 TEST_SKIPPED=77
 
diff --git a/platform/linux-generic/test/pktio/pktio_run_pcap.sh b/test/platform/linux-generic/pktio/pktio_run_pcap.sh
similarity index 54%
rename from platform/linux-generic/test/pktio/pktio_run_pcap.sh
rename to test/platform/linux-generic/pktio/pktio_run_pcap.sh
index 51716fb..6d0e5a9 100755
--- a/platform/linux-generic/test/pktio/pktio_run_pcap.sh
+++ b/test/platform/linux-generic/pktio/pktio_run_pcap.sh
@@ -9,15 +9,20 @@
 # any parameter passed as arguments to this script is passed unchanged to
 # the test itself (pktio_main)
 
-# directories where pktio_main binary can be found:
-# -in the validation dir when running make check (intree or out of tree)
-# -in the script directory, when running after 'make install', or
-# -in the validation when running standalone intree.
-# -in the current directory.
-# running stand alone out of tree requires setting PATH
-PATH=${TEST_DIR}/pktio:$PATH
-PATH=$(dirname $0):$PATH
-PATH=$(dirname $0)/../../../../test/validation/pktio:$PATH
+# directory where platform script run-test resides
+TEST_DIR="${TEST_DIR:-$PWD}"
+
+# out-of-tree build searches binaries in build directory
+PATH=$TEST_DIR/pktio:$TEST_DIR/../../validation/pktio:$PATH
+
+# directory where test sources are, including scripts
+TEST_SRC_DIR=$(dirname $0)
+
+# in-tree build searches binaries in source directory
+PATH=$TEST_SRC_DIR:$TEST_SRC_DIR/../../../validation/pktio:$PATH
+
+# run standalone in-tree searches binaries in .
+# run standaline out-of-tree requires manually setting PATH
 PATH=.:$PATH
 
 pktio_main_path=$(which pktio_main${EXEEXT})
diff --git a/platform/linux-generic/test/pktio/pktio_run_tap.sh b/test/platform/linux-generic/pktio/pktio_run_tap.sh
similarity index 80%
rename from platform/linux-generic/test/pktio/pktio_run_tap.sh
rename to test/platform/linux-generic/pktio/pktio_run_tap.sh
index 1150158..b823a15 100755
--- a/platform/linux-generic/test/pktio/pktio_run_tap.sh
+++ b/test/platform/linux-generic/pktio/pktio_run_tap.sh
@@ -10,15 +10,20 @@
 # any parameter passed as arguments to this script is passed unchanged to
 # the test itself (pktio_main)
 
-# directories where pktio_main binary can be found:
-# -in the validation dir when running make check (intree or out of tree)
-# -in the script directory, when running after 'make install', or
-# -in the validation when running standalone intree.
-# -in the current directory.
-# running stand alone out of tree requires setting PATH
-PATH=${TEST_DIR}/pktio:$PATH
-PATH=$(dirname $0):$PATH
-PATH=$(dirname $0)/../../../../test/validation/pktio:$PATH
+# directory where platform script run-test resides
+TEST_DIR="${TEST_DIR:-$PWD}"
+
+# out-of-tree build searches binaries in build directory
+PATH=$TEST_DIR/pktio:$TEST_DIR/../../validation/pktio:$PATH
+
+# directory where test sources are, including scripts
+TEST_SRC_DIR=$(dirname $0)
+
+# in-tree build searches binaries in source directory
+PATH=$TEST_SRC_DIR:$TEST_SRC_DIR/../../../validation/pktio:$PATH
+
+# run standalone in-tree searches binaries in .
+# run standaline out-of-tree requires manually setting PATH
 PATH=.:$PATH
 
 pktio_main_path=$(which pktio_main${EXEEXT})
diff --git a/platform/linux-generic/test/pktio_ipc/.gitignore b/test/platform/linux-generic/pktio_ipc/.gitignore
similarity index 100%
rename from platform/linux-generic/test/pktio_ipc/.gitignore
rename to test/platform/linux-generic/pktio_ipc/.gitignore
diff --git a/platform/linux-generic/test/pktio_ipc/Makefile.am b/test/platform/linux-generic/pktio_ipc/Makefile.am
similarity index 55%
rename from platform/linux-generic/test/pktio_ipc/Makefile.am
rename to test/platform/linux-generic/pktio_ipc/Makefile.am
index 8858bd2..c0dc242 100644
--- a/platform/linux-generic/test/pktio_ipc/Makefile.am
+++ b/test/platform/linux-generic/pktio_ipc/Makefile.am
@@ -1,15 +1,10 @@
-include $(top_srcdir)/test/Makefile.inc
-TESTS_ENVIRONMENT += TEST_DIR=${top_builddir}/test/validation
+include $(top_srcdir)/test/platform/linux-generic/Makefile.inc
 
-test_PROGRAMS = pktio_ipc1\
+test_PROGRAMS = pktio_ipc1 \
 		pktio_ipc2
 
 pktio_ipc1_CFLAGS = $(AM_CFLAGS) -I${top_srcdir}/example
-pktio_ipc1_LDFLAGS = $(AM_LDFLAGS) -static
 pktio_ipc2_CFLAGS = $(AM_CFLAGS) -I${top_srcdir}/example
-pktio_ipc2_LDFLAGS = $(AM_LDFLAGS) -static
-
-noinst_HEADERS = $(top_srcdir)/test/test_debug.h
 
 dist_pktio_ipc1_SOURCES = pktio_ipc1.c ipc_common.c
 dist_pktio_ipc2_SOURCES = pktio_ipc2.c ipc_common.c
diff --git a/platform/linux-generic/test/pktio_ipc/ipc_common.c b/test/platform/linux-generic/pktio_ipc/ipc_common.c
similarity index 100%
rename from platform/linux-generic/test/pktio_ipc/ipc_common.c
rename to test/platform/linux-generic/pktio_ipc/ipc_common.c
diff --git a/platform/linux-generic/test/pktio_ipc/ipc_common.h b/test/platform/linux-generic/pktio_ipc/ipc_common.h
similarity index 100%
rename from platform/linux-generic/test/pktio_ipc/ipc_common.h
rename to test/platform/linux-generic/pktio_ipc/ipc_common.h
diff --git a/platform/linux-generic/test/pktio_ipc/pktio_ipc1.c b/test/platform/linux-generic/pktio_ipc/pktio_ipc1.c
similarity index 100%
rename from platform/linux-generic/test/pktio_ipc/pktio_ipc1.c
rename to test/platform/linux-generic/pktio_ipc/pktio_ipc1.c
diff --git a/platform/linux-generic/test/pktio_ipc/pktio_ipc2.c b/test/platform/linux-generic/pktio_ipc/pktio_ipc2.c
similarity index 100%
rename from platform/linux-generic/test/pktio_ipc/pktio_ipc2.c
rename to test/platform/linux-generic/pktio_ipc/pktio_ipc2.c
diff --git a/platform/linux-generic/test/pktio_ipc/pktio_ipc_run.sh b/test/platform/linux-generic/pktio_ipc/pktio_ipc_run.sh
similarity index 70%
rename from platform/linux-generic/test/pktio_ipc/pktio_ipc_run.sh
rename to test/platform/linux-generic/pktio_ipc/pktio_ipc_run.sh
index 1128002..c05bb4f 100755
--- a/platform/linux-generic/test/pktio_ipc/pktio_ipc_run.sh
+++ b/test/platform/linux-generic/pktio_ipc/pktio_ipc_run.sh
@@ -6,15 +6,20 @@
 # SPDX-License-Identifier:	BSD-3-Clause
 #
 
-# directories where test binary can be found:
-# -in the validation dir when running make check (intree or out of tree)
-# -in the script directory, when running after 'make install', or
-# -in the validation when running standalone (./pktio_ipc_run) intree.
-# -in the current directory.
-# running stand alone out of tree requires setting PATH
-PATH=./pktio_ipc:$PATH
-PATH=$(dirname $0):$PATH
-PATH=$(dirname $0)/../../../../platform/linux-generic/test/pktio_ipc:$PATH
+# directory where platform script run-test resides
+TEST_DIR="${TEST_DIR:-$PWD}"
+
+# out-of-tree build searches binaries in build directory
+PATH=$TEST_DIR/pktio_ipc:$TEST_DIR/../../validation/pktio:$PATH
+
+# directory where test sources are, including scripts
+TEST_SRC_DIR=$(dirname $0)
+
+# in-tree build searches binaries in source directory
+PATH=$TEST_SRC_DIR:$TEST_SRC_DIR/../../../validation/pktio:$PATH
+
+# run standalone in-tree searches binaries in .
+# run standaline out-of-tree requires manually setting PATH
 PATH=.:$PATH
 
 run()
diff --git a/platform/linux-generic/test/ring/.gitignore b/test/platform/linux-generic/ring/.gitignore
similarity index 100%
rename from platform/linux-generic/test/ring/.gitignore
rename to test/platform/linux-generic/ring/.gitignore
diff --git a/platform/linux-generic/test/ring/Makefile.am b/test/platform/linux-generic/ring/Makefile.am
similarity index 85%
rename from platform/linux-generic/test/ring/Makefile.am
rename to test/platform/linux-generic/ring/Makefile.am
index c086584..805d87d 100644
--- a/platform/linux-generic/test/ring/Makefile.am
+++ b/test/platform/linux-generic/ring/Makefile.am
@@ -1,4 +1,4 @@
-include ../Makefile.inc
+include $(top_srcdir)/test/platform/linux-generic/Makefile.inc
 
 noinst_LTLIBRARIES = libtestring.la
 libtestring_la_SOURCES = ring_suites.c ring_basic.c ring_stress.c
@@ -11,4 +11,3 @@ ring_main_LDFLAGS = $(AM_LDFLAGS)
 ring_main_LDADD = libtestring.la $(LIBCUNIT_COMMON) $(LIBODP)
 
 noinst_HEADERS = ring_suites.h
-
diff --git a/platform/linux-generic/test/ring/ring_basic.c b/test/platform/linux-generic/ring/ring_basic.c
similarity index 100%
rename from platform/linux-generic/test/ring/ring_basic.c
rename to test/platform/linux-generic/ring/ring_basic.c
diff --git a/platform/linux-generic/test/ring/ring_main.c b/test/platform/linux-generic/ring/ring_main.c
similarity index 100%
rename from platform/linux-generic/test/ring/ring_main.c
rename to test/platform/linux-generic/ring/ring_main.c
diff --git a/platform/linux-generic/test/ring/ring_stress.c b/test/platform/linux-generic/ring/ring_stress.c
similarity index 100%
rename from platform/linux-generic/test/ring/ring_stress.c
rename to test/platform/linux-generic/ring/ring_stress.c
diff --git a/platform/linux-generic/test/ring/ring_suites.c b/test/platform/linux-generic/ring/ring_suites.c
similarity index 100%
rename from platform/linux-generic/test/ring/ring_suites.c
rename to test/platform/linux-generic/ring/ring_suites.c
diff --git a/platform/linux-generic/test/ring/ring_suites.h b/test/platform/linux-generic/ring/ring_suites.h
similarity index 100%
rename from platform/linux-generic/test/ring/ring_suites.h
rename to test/platform/linux-generic/ring/ring_suites.h
diff --git a/platform/linux-generic/test/shmem/.gitignore b/test/platform/linux-generic/shmem/.gitignore
similarity index 100%
rename from platform/linux-generic/test/shmem/.gitignore
rename to test/platform/linux-generic/shmem/.gitignore
diff --git a/platform/linux-generic/test/shmem/Makefile.am b/test/platform/linux-generic/shmem/Makefile.am
similarity index 90%
rename from platform/linux-generic/test/shmem/Makefile.am
rename to test/platform/linux-generic/shmem/Makefile.am
index 341747f..7f985b8 100644
--- a/platform/linux-generic/test/shmem/Makefile.am
+++ b/test/platform/linux-generic/shmem/Makefile.am
@@ -1,4 +1,4 @@
-include ../Makefile.inc
+include $(top_srcdir)/test/platform/linux-generic/Makefile.inc
 
 #the main test program is shmem_linux, which, in turn, starts a shmem_odp:
 test_PROGRAMS = shmem_linux$(EXEEXT)
diff --git a/platform/linux-generic/test/shmem/shmem.h b/test/platform/linux-generic/shmem/shmem.h
similarity index 100%
rename from platform/linux-generic/test/shmem/shmem.h
rename to test/platform/linux-generic/shmem/shmem.h
diff --git a/platform/linux-generic/test/shmem/shmem_common.h b/test/platform/linux-generic/shmem/shmem_common.h
similarity index 100%
rename from platform/linux-generic/test/shmem/shmem_common.h
rename to test/platform/linux-generic/shmem/shmem_common.h
diff --git a/platform/linux-generic/test/shmem/shmem_linux.c b/test/platform/linux-generic/shmem/shmem_linux.c
similarity index 100%
rename from platform/linux-generic/test/shmem/shmem_linux.c
rename to test/platform/linux-generic/shmem/shmem_linux.c
diff --git a/platform/linux-generic/test/shmem/shmem_linux.h b/test/platform/linux-generic/shmem/shmem_linux.h
similarity index 100%
rename from platform/linux-generic/test/shmem/shmem_linux.h
rename to test/platform/linux-generic/shmem/shmem_linux.h
diff --git a/platform/linux-generic/test/shmem/shmem_odp.c b/test/platform/linux-generic/shmem/shmem_odp.c
similarity index 100%
rename from platform/linux-generic/test/shmem/shmem_odp.c
rename to test/platform/linux-generic/shmem/shmem_odp.c
diff --git a/platform/linux-generic/test/shmem/shmem_odp.h b/test/platform/linux-generic/shmem/shmem_odp.h
similarity index 100%
rename from platform/linux-generic/test/shmem/shmem_odp.h
rename to test/platform/linux-generic/shmem/shmem_odp.h
diff --git a/platform/linux-generic/test/run-test b/test/run-test
similarity index 100%
rename from platform/linux-generic/test/run-test
rename to test/run-test
diff --git a/test/validation/.gitignore b/test/validation/.gitignore
index 7e563b8..5dabf91 100644
--- a/test/validation/.gitignore
+++ b/test/validation/.gitignore
@@ -1,2 +1,3 @@
 *.log
 *.trs
+tests-validation.env
diff --git a/test/validation/Makefile.am b/test/validation/Makefile.am
index 90cc549..58a0757 100644
--- a/test/validation/Makefile.am
+++ b/test/validation/Makefile.am
@@ -1,3 +1,7 @@
+include $(top_srcdir)/test/validation/Makefile.inc
+
+TESTS_ENVIRONMENT += TEST_DIR=${builddir}
+
 ODP_MODULES = atomic \
 	      barrier \
 	      buffer \
@@ -22,7 +26,44 @@ ODP_MODULES = atomic \
 	      shmem \
 	      system
 
-SUBDIRS = common $(ODP_MODULES)
-
 #The tests will need to retain the deprecated test implementation
 AM_CFLAGS += -Wno-deprecated-declarations
+
+if test_vald
+SUBDIRS = common $(ODP_MODULES)
+
+TESTS = atomic/atomic_main$(EXEEXT) \
+	barrier/barrier_main$(EXEEXT) \
+	buffer/buffer_main$(EXEEXT) \
+	classification/classification_main$(EXEEXT) \
+	cpumask/cpumask_main$(EXEEXT) \
+	crypto/crypto_main$(EXEEXT) \
+	errno/errno_main$(EXEEXT) \
+	hash/hash_main$(EXEEXT) \
+	init/init_main_ok$(EXEEXT) \
+	init/init_main_abort$(EXEEXT) \
+	init/init_main_log$(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_main$(EXEEXT) \
+	shmem/shmem_main$(EXEEXT) \
+	system/system_main$(EXEEXT)
+
+dist_check_SCRIPTS = tests-validation.env $(LOG_COMPILER)
+
+test_SCRIPTS = $(dist_check_SCRIPTS)
+
+tests-validation.env:
+	echo "TESTS=\"$(TESTS)\""    > $@
+	echo "$(TESTS_ENVIRONMENT)" >> $@
+	echo "$(LOG_COMPILER)"      >> $@
+
+endif
