Imported Upstream version 1.8.0
[platform/core/ml/nnfw.git] / compiler / luci-value-test / evalverify.sh
1 #!/bin/bash
2
3 # This script verifies the basic behavior of luci interpreter
4 #
5 # HOW TO USE
6 #
7 # ./evalverify.sh <path/to/bin_dir> <path/to/work_dir> <path/to/venv_dir> <TEST 1> <TEST 2> ...
8 # bin_dir  : build directory of luci-value-test (ex: build/compiler/luci-value-test)
9 # work_dir : artifacts directoy where test materials exist
10 # venv_dir : python virtual environment home directory
11
12 VERIFY_SOURCE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
13 VERIFY_SCRIPT_PATH="${VERIFY_SOURCE_PATH}/luci_eval_verifier.py"
14 BINDIR="$1"; shift
15 WORKDIR="$1"; shift
16 VIRTUALENV="$1"; shift
17 INTERPRETER_DRIVER_PATH="${BINDIR}/tester/luci_eval_tester"
18
19 TESTED=()
20 PASSED=()
21 FAILED=()
22
23 for TESTCASE in "$@"; do
24   TESTED+=("${TESTCASE}")
25
26   TESTCASE_FILE="${WORKDIR}/${TESTCASE}"
27   TEST_RESULT_FILE="${BINDIR}/${TESTCASE}"
28
29   PASSED_TAG="${TEST_RESULT_FILE}.passed"
30   rm -f "${PASSED_TAG}"
31
32   cat > "${TEST_RESULT_FILE}.log" <(
33     exec 2>&1
34     set -ex
35
36     source "${VIRTUALENV}/bin/activate"
37     "${VIRTUALENV}/bin/python" "${VERIFY_SCRIPT_PATH}" \
38     --driver "${INTERPRETER_DRIVER_PATH}" \
39     --model "${TESTCASE_FILE}"
40
41     if [[ $? -eq 0 ]]; then
42       touch "${PASSED_TAG}"
43     fi
44   )
45
46   if [[ -f "${PASSED_TAG}" ]]; then
47     PASSED+=("${TESTCASE}")
48   else
49     FAILED+=("${TESTCASE}")
50   fi
51 done
52
53 if [[ ${#TESTED[@]} -ne ${#PASSED[@]} ]]; then
54   echo "FAILED"
55   for TEST in "${FAILED[@]}"
56   do
57     echo "- ${TEST}"
58   done
59   exit 255
60 fi
61
62 echo "PASSED"
63 exit 0