Imported Upstream version 1.7.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/work_dir> <TEST 1> <TEST 2> ...
8 # work_dir : build directory of luci-value-test (ex: build/compiler/luci-value-test)
9
10 VERIFY_SOURCE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
11 VERIFY_SCRIPT_PATH="${VERIFY_SOURCE_PATH}/luci_eval_verifier.py"
12 BINDIR="$1"; shift
13 WORKDIR="$1"; shift
14 VIRTUALENV="$1"; shift
15 INTERPRETER_DRIVER_PATH="${BINDIR}/tester/luci_eval_tester"
16
17 TESTED=()
18 PASSED=()
19 FAILED=()
20
21 for TESTCASE in "$@"; do
22   TESTED+=("${TESTCASE}")
23
24   TESTCASE_FILE="${WORKDIR}/${TESTCASE}"
25   TEST_RESULT_FILE="${BINDIR}/${TESTCASE}"
26
27   PASSED_TAG="${TEST_RESULT_FILE}.passed"
28   rm -f "${PASSED_TAG}"
29
30   cat > "${TEST_RESULT_FILE}.log" <(
31     exec 2>&1
32     set -ex
33
34     source "${VIRTUALENV}/bin/activate"
35     "${VIRTUALENV}/bin/python" "${VERIFY_SCRIPT_PATH}" \
36     --driver "${INTERPRETER_DRIVER_PATH}" \
37     --model "${TESTCASE_FILE}"
38
39     if [[ $? -eq 0 ]]; then
40       touch "${PASSED_TAG}"
41     fi
42   )
43
44   if [[ -f "${PASSED_TAG}" ]]; then
45     PASSED+=("${TESTCASE}")
46   else
47     FAILED+=("${TESTCASE}")
48   fi
49 done
50
51 if [[ ${#TESTED[@]} -ne ${#PASSED[@]} ]]; then
52   echo "FAILED"
53   for TEST in "${FAILED[@]}"
54   do
55     echo "- ${TEST}"
56   done
57   exit 255
58 fi
59
60 echo "PASSED"
61 exit 0