--- /dev/null
+#!/bin/sh
+
+RPM_PATH=/mnt/RPMS
+LOG_PATH=/mnt/log
+TEST_PATH=/usr/lib64/npu-engine/bin/
+DEVICE_PATH=/dev/triv2-0
+MODEL_PATH=/usr/share/npu-engine/testdata/TRIV238_2TOPS
+
+function check_exit() {
+ echo "$1" > ${LOG_PATH}/result.txt
+ sleep 1
+ exit
+}
+
+echo "" > ${LOG_PATH}/out.txt
+echo "" > ${LOG_PATH}/err.txt
+
+# Install npu-engine packages and modules.
+./mnt/trinity_test/load_modules.sh
+./mnt/trinity_test/refresh.sh 1>> ${LOG_PATH}/out.txt 2>> ${LOG_PATH}/err.txt
+
+# Check test directory
+if [ ! -d "$TEST_PATH" ]; then
+ echo "Fail to install npu-engine-example package. Check your code." >> ${LOG_PATH}/err.txt
+ check_exit 1
+fi
+
+# Check device node is created
+if [ ! -e "$DEVICE_PATH" ]; then
+ echo "Fail to create device node. Check your code." >> ${LOG_PATH}/err.txt
+ check_exit 1
+fi
+
+# Run tests
+pushd $TEST_PATH
+echo -e "\n[1/2] Checking UnitTests..." >> ${LOG_PATH}/out.txt
+find unittests -maxdepth 1 -type f -perm 0755 -print0 | while IFS= read -r -d $'\0' unittest_exec; do
+ echo -e "\n${unittest_exec} is RUNNING" >> ${LOG_PATH}/out.txt
+ ./${unittest_exec} 1>> ${LOG_PATH}/out.txt 2>> ${LOG_PATH}/err.txt
+ result=$?
+ if [[ ${result} -ne 0 ]]; then
+ echo -e "${unittest_exec} is FAILED" >> ${LOG_PATH}/out.txt
+ check_exit $result
+ else
+ echo -e "${unittest_exec} is PASSED" >> ${LOG_PATH}/out.txt
+ fi
+done
+
+echo -e "\n[2/2] Checking AppTests..." >> ${LOG_PATH}/out.txt
+find apptests -maxdepth 1 -type f -perm 0755 -print0 | while IFS= read -r -d $'\0' apptest_exec; do
+ if [ ${apptest_exec} == "apptests/apptest_tvn_triv2_bulk" ]; then
+ echo -e "\n${apptest_exec} [TRIV238_2TOPS] is RUNNING" >> ${LOG_PATH}/out.txt
+ ./${apptest_exec} ${MODEL_PATH} 1>> ${LOG_PATH}/out.txt 2>> ${LOG_PATH}/err.txt
+ elif [ ${apptest_exec} == "apptests/apptest_tvn_triv2_aging" ]; then
+ ./${apptest_exec} ${MODEL_PATH}/CONV_2D_300 1 10 1>> ${LOG_PATH}/out.txt 2>> ${LOG_PATH}/err.txt
+ ./${apptest_exec} ${MODEL_PATH}/CONV_2D_300 2 10 1>> ${LOG_PATH}/out.txt 2>> ${LOG_PATH}/err.txt
+ ./${apptest_exec} ${MODEL_PATH}/CONV_2D_300 3 10 1>> ${LOG_PATH}/out.txt 2>> ${LOG_PATH}/err.txt
+ ./${apptest_exec} ${MODEL_PATH}/CONV_2D_300 4 10 1>> ${LOG_PATH}/out.txt 2>> ${LOG_PATH}/err.txt
+ elif [ ${apptest_exec} == "apptests/apptest_tvn_triv2_preempt" ]; then
+ ./${apptest_exec} ${MODEL_PATH}/ 1>> ${LOG_PATH}/out.txt 2>> ${LOG_PATH}/err.txt
+ elif [ ${apptest_exec} == "apptests/apptest_tvn_triv2_interleave" ]; then
+ ./${apptest_exec} 10 ${MODEL_PATH}/MAX_POOL_2D_000,${MODEL_PATH}/CONV_2D_300 1>> ${LOG_PATH}/out.txt 2>> ${LOG_PATH}/err.txt
+ elif [ ${apptest_exec} == "apptests/apptest_tvn_triv2_xml" ]; then
+ ./${apptest_exec} /mnt/trinity_test/model.xml 1>> ${LOG_PATH}/out.txt 2>> ${LOG_PATH}/err.txt
+ elif [ ${apptest_exec} == "apptests/apptest_tvn_triv2_profile" ]; then
+ ./${apptest_exec} ${MODEL_PATH}/ADD_000 -p visa 1>> ${LOG_PATH}/out.txt 2>> ${LOG_PATH}/err.txt
+ else
+ ./${apptest_exec} ${MODEL_PATH}/ADD_000 1>> ${LOG_PATH}/out.txt 2>> ${LOG_PATH}/err.txt
+ fi
+
+ result=$?
+ if [[ ${result} -ne 0 ]]; then
+ echo -e "${apptest_exec} is FAILED" >> ${LOG_PATH}/out.txt
+ check_exit $result
+ else
+ echo -e "${apptest_exec} is PASSED" >> ${LOG_PATH}/out.txt
+ fi
+done
+popd
+
+check_exit 0