Imported Upstream version 1.8.0
[platform/core/ml/nnfw.git] / infra / scripts / common.sh
1 #!/bin/bash
2
3 # Don't run this script
4 [[ "${BASH_SOURCE[0]}" == "${0}" ]] && echo "Please don't execute ${BASH_SOURCE[0]}, source it" && return
5
6 # Global variable
7 # CURRENT_PATH: infra/scripts directory absolute path
8 # ROOT_PATH: nnfw root directory absolute path
9
10 # Functions
11 #
12 # CheckTestPrepared
13 #   Check environment variable setting to run test
14 #
15 # TFLiteModelVerification $1 $2 $3
16 #   Run ./tests/scripts/test-driver.sh script verification test
17 #
18 # NNAPIGTest $1 $2 $3
19 #   Run [INSTALL_PATH]/test/onert-test unittest command for nnapi gtest
20 #
21 # NNPackageTest $1 $2
22 #   Run [INSTALL_PATH]/test/onert-test nnpkg-test command
23
24 CURRENT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
25 ROOT_PATH="$(cd ${CURRENT_PATH}/../../ && pwd)"
26
27 # Install path on CI
28 INSTALL_PATH=$ROOT_PATH/Product/out
29
30 function CheckTestPrepared()
31 {
32   # Model download server setting
33   if [[ -z "${MODELFILE_SERVER}" ]]; then
34     echo "[WARNING] Model file server is not set"
35     echo "          Try to use pre-downloaed model"
36   else
37     echo "Model Server: ${MODELFILE_SERVER}"
38   fi
39 }
40
41 # $1: (required) backend
42 # $2: (required) framework list file relative path from nnfw root directory
43 #                pass empty string if there is no skiplist
44 # $3: (required) relative path to report from nnfw root directory
45 function TFLiteModelVerification()
46 {
47   [[ $# -ne 3 ]] && echo "Invalid function argument setting" && exit 1
48
49   pushd ${ROOT_PATH} > /dev/null
50
51   export BACKENDS=$1
52   if [[ "$2" == "" ]]; then
53     $INSTALL_PATH/test/onert-test verify-tflite --api=nnapi \
54       --reportdir=$ROOT_PATH/$3
55   else
56     $INSTALL_PATH/test/onert-test verify-tflite --api=nnapi \
57       --list=$2 \
58       --reportdir=$ROOT_PATH/$3
59   fi
60   unset BACKENDS
61
62   popd > /dev/null
63 }
64
65 # $1: (required) backend
66 # $2: (required) nnapi gtest skiplist file relative path from nnfw root directory
67 #                pass empty string if there is no test list
68 # $3: (required) relative path for report from nnfw root directory
69 function NNAPIGTest()
70 {
71   [[ $# -ne 3 ]] && echo "Invalid function argument setting" && exit 1
72
73   pushd ${ROOT_PATH} > /dev/null
74
75   # Backup original nnapi_gtest.skip
76   # TODO Pass skiplist to test-driver.sh
77   SKIPLIST_FILE="${INSTALL_PATH}/unittest/nnapi_gtest.skip"
78   BACKUP_FILE="${SKIPLIST_FILE}.backup"
79   if [[ "$2" != "" ]]; then
80     cp ${SKIPLIST_FILE} ${BACKUP_FILE}
81     cp ${ROOT_PATH}/$2 ${SKIPLIST_FILE}
82   fi
83
84   export BACKENDS=$1
85   $INSTALL_PATH/test/onert-test unittest \
86     --reportdir=$ROOT_PATH/$3 \
87     --unittestdir=$INSTALL_PATH/unittest
88   unset BACKENDS
89
90   # TODO Pass skiplist to test-driver.sh
91   # Restore original nnapi_gtest.skip
92   if [[ "$2" != "" ]]; then
93     cp ${BACKUP_FILE} ${SKIPLIST_FILE}
94     rm ${BACKUP_FILE}
95   fi
96
97   popd > /dev/null
98 }
99
100 # $1: (require) backend
101 # $2: (require) list
102 function NNPackageTest()
103 {
104   [[ $# -ne 2 ]] && echo "Invalid function argument setting" && exit 1
105
106   pushd ${ROOT_PATH} > /dev/null
107
108   echo "[Package Test] Run $1 backend nnpackage test"
109
110   EXITCODE=0
111   PKG_LIST=$(cat $2)
112   for f in ${PKG_LIST}
113   do
114     for entry in "nnpkg-tcs"/$f; do
115       if [ -e $entry ]; then
116         BACKENDS="$1" $INSTALL_PATH/test/onert-test nnpkg-test -d -i nnpkg-tcs $(basename "$entry")
117       fi
118     done
119     EXITCODE_F=$?
120
121     if [ ${EXITCODE_F} -ne 0 ]; then
122       EXITCODE=${EXITCODE_F}
123     fi
124   done
125
126   if [ ${EXITCODE} -ne 0 ]; then
127     exit ${EXITCODE}
128   fi
129
130   popd > /dev/null
131 }
132
133 # $1: (required) backend
134 # $2: (required) test list file relative path from nnfw root directory
135 #                pass empty string if there is no skiplist
136 # $3: (required) relative path to report from nnfw root directory
137 function TFLiteLoaderTest()
138 {
139   [[ $# -ne 3 ]] && echo "TFLiteLoaderTest: Invalid function argument setting" && exit 1
140
141   pushd ${ROOT_PATH} > /dev/null
142
143   export BACKENDS=$1
144   if [[ "$2" == "" ]]; then
145     $INSTALL_PATH/test/onert-test verify-tflite --api=loader \
146       --reportdir=$ROOT_PATH/$3
147   else
148     $INSTALL_PATH/test/onert-test verify-tflite --api=loader \
149       --list=$2 \
150       --reportdir=$ROOT_PATH/$3
151   fi
152   unset BACKENDS
153
154   popd > /dev/null
155 }