[Misc] add shell scripts used by ci server
authoryelini-jeong <yelini.jeong@samsung.com>
Fri, 29 Apr 2022 08:47:41 +0000 (17:47 +0900)
committer추지호/NPU Lab(SR)/삼성전자 <jiho.chu@samsung.com>
Tue, 14 Jun 2022 00:25:09 +0000 (09:25 +0900)
This patch adds shell scripts used by ci server.
Locate ci_scripts directory at /opt/trinity/share to use.

Signed-off-by: yelini-jeong <yelini.jeong@samsung.com>
utils/trinity_test/README.md [new file with mode: 0644]
utils/trinity_test/check.sh [new file with mode: 0755]
utils/trinity_test/load_modules.sh [new file with mode: 0755]
utils/trinity_test/model.xml [new file with mode: 0644]
utils/trinity_test/refresh.sh [new file with mode: 0755]

diff --git a/utils/trinity_test/README.md b/utils/trinity_test/README.md
new file mode 100644 (file)
index 0000000..b0ae00a
--- /dev/null
@@ -0,0 +1,20 @@
+# Scripts for testing rpms and ko modules
+
+```
+$ sudo cp [rpms directory]/npu-engine* /opt/trinity/share/RPMS
+$ sudo cp NPU_Linux-Kernel/out/latest/*.ko /opt/trinity/share/modules
+
+$ cd /opt/trinity/log
+
+$ sudo touch err.txt out.txt result.txt
+$ sudo chmod a+w err.txt out.txt result.txt
+
+$ sudo cp -r trinity_test /opt/trinity/share/trinity_test
+
+$ cd /opt/trinity
+$ ./run_taos
+
+// fastmodel side
+root:/> ./mnt/trinity_test/check.sh
+```
+
diff --git a/utils/trinity_test/check.sh b/utils/trinity_test/check.sh
new file mode 100755 (executable)
index 0000000..97d580d
--- /dev/null
@@ -0,0 +1,81 @@
+#!/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
diff --git a/utils/trinity_test/load_modules.sh b/utils/trinity_test/load_modules.sh
new file mode 100755 (executable)
index 0000000..f5fbd15
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+pushd /mnt/modules
+
+toybox insmod npu_sched.ko
+toybox insmod trinity_vision2.ko
+mdev -s
+
+echo "2097152" > /sys/devices/platform/trinity/30410000.triv2/control/profile
+
+popd
diff --git a/utils/trinity_test/model.xml b/utils/trinity_test/model.xml
new file mode 100644 (file)
index 0000000..1b8db28
--- /dev/null
@@ -0,0 +1,8 @@
+<testcases>
+ <model name="mobilenet_v1" timeout="3000" priority="1">
+  <dirpath>/usr/share/npu-engine/testdata/TRIV238_2TOPS/MOBILENET_V1</dirpath>
+ </model>
+ <model name="mobilenet_v2" timeout="1000" priority="2">
+  <dirpath>/usr/share/npu-engine/testdata/TRIV238_2TOPS/MOBILENET_V2</dirpath>
+ </model>
+</testcases>
diff --git a/utils/trinity_test/refresh.sh b/utils/trinity_test/refresh.sh
new file mode 100755 (executable)
index 0000000..84f19bc
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+pushd /mnt/RPMS
+
+rpm -ivh --force npu-engine-*
+
+popd