Imported Upstream version 1.8.0
[platform/core/ml/nnfw.git] / compiler / tf2nnpackage-value-remote-test / testall.sh
1 #!/bin/bash
2
3 # Need at least 4 arguments
4 if [[ $# -lt 4 ]]; then
5   echo "USAGE: $0 ..."
6   echo
7   echo "ARGUMENTS:"
8   echo "  [test.config path]"
9   echo "  [WORKDIR]"
10   echo "  [REMOTE_IP]"
11   echo "  [REMOTE_USER]"
12   echo "  [Prefix1]"
13   echo "  [Prefix2]"
14   echo "  ..."
15   exit 255
16 fi
17
18 CONFIG_PATH="$1"; shift
19 WORKDIR="$1"; shift
20 REMOTE_IP="$1"; shift
21 REMOTE_USER="$1"; shift
22
23 BINDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
24 CURRENT_DATETIME=$(date +'%Y%m%d_%H%M%S')
25 REMOTE_WORKDIR=${REMOTE_WORKDIR:-"CVT_${CURRENT_DATETIME}"}
26 RESULT_CSV="${BINDIR}/Result_${CURRENT_DATETIME}.csv"
27
28 source "${CONFIG_PATH}"
29
30 echo "-- Found Runtime library: ${RUNTIME_LIBRARY_PATH}"
31 echo "-- Found workdir: ${WORKDIR}"
32
33 # Register remote machine ssh information
34 cat /dev/zero | ssh-keygen -q -N ""
35 ssh-copy-id -o ConnectTimeout=5 "${REMOTE_USER}@${REMOTE_IP}"
36
37 # Odroid IP address validation
38 if [[ $? -ne 0 ]]; then
39   echo "Cannot reach to given remote machine. Check IP address or username."
40   exit 5
41 fi
42
43 # Send runtime library files
44 ssh "${REMOTE_USER}@${REMOTE_IP}" "mkdir -p ${REMOTE_WORKDIR}/Product/"
45 scp -r "${RUNTIME_LIBRARY_PATH}" "${REMOTE_USER}@${REMOTE_IP}:${REMOTE_WORKDIR}/Product/"
46
47 TESTED=()
48 PASSED=()
49 FAILED=()
50 echo "TEST_NAME, CIRCLE_VALUE_TEST" >> ${RESULT_CSV}
51
52 pushd "${WORKDIR}"
53 while [[ $# -ne 0 ]]; do
54   PREFIX="$1"; shift
55
56   TESTED+=("${PREFIX}")
57
58   PASSED_TAG="${PREFIX}.passed"
59
60   rm -f "${BINDIR}/${PASSED_TAG}"
61
62   # Information to be recorded
63   CIRCLE_VALUE_PASSED=FALSE
64
65   cat > "${BINDIR}/${PREFIX}.log" <(
66     exec 2>&1
67
68     # Exit immediately if any command fails
69     set -e
70     # Show commands
71     set -x
72
73     # Run nnpkg_test in remote machine
74     if [ ! -d "${PREFIX}" ] ; then
75     PREFIX=${PREFIX}.opt ;
76     fi
77     scp -r "${PREFIX}/" "${REMOTE_USER}@${REMOTE_IP}:${REMOTE_WORKDIR}/${PREFIX}/"
78     ssh "${REMOTE_USER}@${REMOTE_IP}" "cd ${REMOTE_WORKDIR}; ./Product/out/test/onert-test nnpkg-test ${PREFIX}"
79
80     if [[ $? -eq 0 ]]; then
81       touch "${BINDIR}/${PASSED_TAG}"
82     fi
83   )
84
85   if [[ -f "${BINDIR}/${PASSED_TAG}" ]]; then
86     PASSED+=("$PREFIX")
87     CIRCLE_VALUE_PASSED=TRUE
88   else
89     FAILED+=("$PREFIX")
90     CIRCLE_VALUE_PASSED=FALSE
91   fi
92
93   echo "${PREFIX}, ${CIRCLE_VALUE_PASSED}" >> ${RESULT_CSV}
94 done
95 popd
96
97 rm -f Result_latest
98 ln -s ${RESULT_CSV} Result_latest
99
100 if [[ ${#TESTED[@]} -ne ${#PASSED[@]} ]]; then
101   echo "FAILED"
102   for TEST in "${FAILED[@]}"
103   do
104     echo "- ${TEST}"
105   done
106   exit 255
107 fi
108
109 echo "PASSED"
110 exit 0