Imported Upstream version 1.7.0
[platform/core/ml/nnfw.git] / compiler / record-minmax-conversion-test / testall.sh
1 #!/bin/bash
2
3 # This script tests the basic behavior of record-minmax
4 #
5 # HOW TO USE
6 #
7 # ./testall.sh <path/to/test.config> <path/to/work_dir> <TEST 1> <TEST 2> ...
8 # test.config : set ${RECORD_MINMAX_PATH}
9 # work_dir : build directory of record-minmax-conversion-test (ex: build/compiler/record-minmax-conversion-test)
10
11 GEN_SOURCE_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
12 GEN_SCRIPT_PATH="${GEN_SOURCE_PATH}/gen_h5_random_inputs.py"
13 CONFIG_PATH="$1"; shift
14 BIN_PATH=$(dirname "$CONFIG_PATH")
15 WORKDIR="$1"; shift
16 VIRTUALENV="$1"; shift
17
18 source "${CONFIG_PATH}"
19
20 echo "-- Found RECORD-MINMAX: ${RECORD_MINMAX_PATH}"
21 echo "-- Found workdir: ${WORKDIR}"
22
23 TESTED=()
24 PASSED=()
25 FAILED=()
26
27 pushd "${WORKDIR}"
28 for TESTCASE in "$@"; do
29   TESTED+=("${TESTCASE}")
30
31   TESTCASE_FILE="${WORKDIR}/${TESTCASE}"
32
33   PASSED_TAG="${BIN_PATH}/${TESTCASE}.passed"
34   rm -f "${PASSED_TAG}"
35
36   cat > "${BIN_PATH}/${TESTCASE}.log" <(
37     exec 2>&1
38     set -ex
39
40     # Generate h5 input data
41     source "${VIRTUALENV}/bin/activate"
42     "${VIRTUALENV}/bin/python" "${GEN_SCRIPT_PATH}" \
43     --model "${TESTCASE_FILE}.tflite" \
44     --num_data 3 \
45     --output "${BIN_PATH}/${TESTCASE}.tflite.input.h5"
46
47     if [[ $? -ne 0 ]]; then
48       echo "FAILED TO GENERATE INPUT"
49       continue
50     fi
51
52     # Run record-minmax
53     "${RECORD_MINMAX_PATH}" \
54       --input_model "${TESTCASE_FILE}.circle" \
55       --input_data "${BIN_PATH}/${TESTCASE}.tflite.input.h5" \
56       --output_model "${BIN_PATH}/${TESTCASE}.out.circle"
57
58     if [[ $? -eq 0 ]]; then
59       touch "${PASSED_TAG}"
60     fi
61   )
62
63   if [[ -f "${PASSED_TAG}" ]]; then
64     PASSED+=("$TESTCASE")
65   else
66     FAILED+=("$TESTCASE")
67   fi
68 done
69 popd
70
71 if [[ ${#TESTED[@]} -ne ${#PASSED[@]} ]]; then
72   echo "FAILED"
73   for TEST in "${FAILED[@]}"
74   do
75     echo "- ${TEST}"
76   done
77   exit 255
78 fi
79
80 echo "PASSED"
81 exit 0