From: Jiho Chu Date: Mon, 8 Aug 2022 04:16:04 +0000 (+0900) Subject: [Utils] Add trinity-test script X-Git-Tag: submit/tizen/20220919.014846~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=707d20e89e263be9d99c82beeaef4259d4fe5809;p=platform%2Fadaptation%2Fnpu%2Ftrix-engine.git [Utils] Add trinity-test script trinity-test is designed to give convenience when testing unittest and apptest. It can execute whole tests simply, or execute some of them. Signed-off-by: Jiho Chu --- diff --git a/utils/meson.build b/utils/meson.build index 286acb4..7dd0111 100644 --- a/utils/meson.build +++ b/utils/meson.build @@ -1,3 +1,4 @@ subdir('model_inspect') subdir('trinity_smi') subdir('trinity_cuse') +subdir('trinity_test') diff --git a/utils/trinity_test/meson.build b/utils/trinity_test/meson.build new file mode 100644 index 0000000..6086fbb --- /dev/null +++ b/utils/trinity_test/meson.build @@ -0,0 +1,2 @@ +install_data(sources : 'trinity-test', install_dir : join_paths(ne_bindir, 'utils')) +install_data(sources : 'model.xml', install_dir : join_paths(ne_bindir, 'utils')) diff --git a/utils/trinity_test/trinity-test b/utils/trinity_test/trinity-test new file mode 100755 index 0000000..4995bac --- /dev/null +++ b/utils/trinity_test/trinity-test @@ -0,0 +1,113 @@ +#!/bin/bash + +## +# @file trinity-test.sh +# @brief execute test using unittest and apptest +# @see https://github.sec.samsung.net/AIP/NPU_SystemService +# @author Jiho Chu +# + +# test envs +NPU_ENGINE_BIN_PATH=/usr/lib64/npu-engine/bin +TEST_DATA_PATH=/usr/share/npu-engine/testdata + +# test global var +UNITTEST_PATH=$NPU_ENGINE_BIN_PATH/unittests +APPTEST_PATH=$NPU_ENGINE_BIN_PATH/apptests +TEST_PATH=$NPU_ENGINE_PATH/utils/trinity_test +MODEL_PATH=$TEST_DATA_PATH/TRIV238_2TOPS + +TEST_UNITTEST_NAME=unittest* +TEST_APPTEST_NAME=apptest* +TEST_UNITTEST=false +TEST_APPTEST=false + + +print_help() { + echo -e "Usage: $0 [-u] [-a] [-n NAME]" + echo -e "\th: show help" + echo -e "\tu: run unittests" + echo -e "\ta: run apptests" + echo -e "\tn: run specific test with name" +} + +run_unittest() { + local test=$1 + echo "run unittest $UNITTEST_PATH/$test" + + local tests=$(find $UNITTEST_PATH -mindepth 1 -maxdepth 1 -name "$test") + + for t in ${tests[@]}; do + sh -c "$t" + [ $? -ne 0 ] && echo Failed: $t && return 1; + echo Success: $t + done +} + +run_apptest() { + local test=$1 + echo "run apptest $APPTEST_PATH/$test" + + local tests=$(find $APPTEST_PATH -mindepth 1 -maxdepth 1 -name "$test") + + local arg1= + local arg2= + for t in ${tests[@]}; do + case $t in + *bulk) + arg1=$MODEL_PATH + ;; + *aging) + arg1=$MODEL_PATH/CONV_2D_300 + arg2="1 10" + ;; + *preempt) + arg1=$MODEL_PATH/ + ;; + *xml) + arg1=$TEST_PATH/model.xml + ;; + *interleave) + arg1=10 + arg2=$MODEL_PATH/MAX_POOL_2D_000,$MODEL_PATH/CONV_2D_300 + ;; + *profile) + arg1=$MODEL_PATH/ADD_000 + arg2="-p visa" + ;; + *) + arg1=$MODEL_PATH/ADD_000 + ;; + esac + + echo "run: $t $arg1 $arg2" + sh -c "$t $arg1 $arg2" + [ $? -ne 0 ] && echo Failed: $t && return 1; + echo Success: $t + done +} + +while getopts "ahn:u" opt; do + case $opt in + a) + TEST_APPTEST=true + ;; + h) + print_help + exit 0 + ;; + n) + TEST_UNITTEST_NAME=$OPTARG + TEST_APPTEST_NAME=$OPTARG + ;; + u) + TEST_UNITTEST=true + ;; + esac +done + +[ ! -d "$NPU_ENGINE_BIN_PATH" ] && echo "incorrect npu-engine path: $NPU_ENGINE_BIN_PATH" && exit 1 +[ ! -d "$TEST_DATA_PATH" ] && echo "incorrect testdata path: $TEST_DATA_PATH" && exit 1 +[ $TEST_UNITTEST = false ] && [ $TEST_APPTEST = false ] && print_help && exit 0 +[ $TEST_UNITTEST = true ] && run_unittest "$TEST_UNITTEST_NAME" +[ $TEST_APPTEST = true ] && run_apptest "$TEST_APPTEST_NAME"