Imported Upstream version 1.8.0
[platform/core/ml/nnfw.git] / compiler / circle2circle-dredd-recipe-test / testall.sh
1 #!/bin/bash
2
3 # Need at least 2 arguments
4 if [[ $# -lt 2 ]]; then
5   echo "USAGE: $0 ..."
6   echo
7   echo "ARGUMENTS:"
8   echo "  [test.config path]"
9   echo "  [WORKDIR]"
10   echo "  [Prefix1]"
11   echo "  [Prefix2]"
12   echo "  ..."
13   exit 255
14 fi
15
16 WORKDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
17 CONFIG_PATH="$1"; shift
18 RESOURCE_DIR="$1"; shift
19
20 source "${CONFIG_PATH}"
21
22 echo "-- Found circle-inspect: ${CIRCLE_INSPECT_PATH}"
23 echo "-- Found circle-verify: ${CIRCLE_VERIFY_PATH}"
24 echo "-- Found circle2circle: ${CIRCLE2CIRCLE_PATH}"
25 echo "-- Found common-artifacts: ${RESOURCE_DIR}"
26
27 TESTED=()
28 PASSED=()
29 FAILED=()
30
31 pushd ${WORKDIR}
32 while [[ $# -ne 0 ]]; do
33   PREFIX="$1"; shift
34
35   TESTED+=("${PREFIX}")
36
37   PASSED_TAG="${PREFIX}.passed"
38
39   rm -f "${PASSED_TAG}"
40
41   cat > "${PREFIX}.log" <(
42     exec 2>&1
43
44     echo "-- Found circle: ${PREFIX}.opt.circle"
45
46     # Exit immediately if any command fails
47     set -e
48     # Show commands
49     set -x
50
51     #
52     # Check if rule is satisfied
53     #
54
55     # Note: turn off 'command printing'. Otherwise printing will be so messy
56     set +x
57
58     # (COMPILED_FILE, INSPECT_PROG_PATH, VERIFY_PROG_PATH, ERROR_LOG) must be set for rule-lib.sh
59     COMPILED_FILE="${PREFIX}.opt.circle"
60     INSPECT_PROG_PATH=${CIRCLE_INSPECT_PATH}
61     VERIFY_PROG_PATH=${CIRCLE_VERIFY_PATH}
62     ERROR_LOG="${PREFIX}.error"
63
64     rm -f "${ERROR_LOG}"
65
66     # in case error while running rule-lib.sh, prints error msg
67     trap 'echo "** ERROR **" ; cat "${ERROR_LOG}"' ERR
68
69     source rule-lib.sh
70     source "${RESOURCE_DIR}/${PREFIX}.rule"
71
72     # unset
73     trap - ERR
74     set -x
75
76     # At this point, the exit code of all commands is 0
77     # If not 0, execution of this script ends because of "set -e"
78     touch "${PASSED_TAG}"
79   )
80
81   if [[ -f "${PASSED_TAG}" ]]; then
82     PASSED+=("$PREFIX")
83   else
84     FAILED+=("$PREFIX")
85   fi
86 done
87 popd
88
89 if [[ ${#TESTED[@]} -ne ${#PASSED[@]} ]]; then
90   echo "FAILED"
91   for TEST in "${FAILED[@]}"
92   do
93     echo "- ${TEST}"
94   done
95   exit 255
96 fi
97
98 echo "PASSED"
99 exit 0