summaryrefslogtreecommitdiff
path: root/automated/linux/dockerized-tests/local-run.sh
diff options
context:
space:
mode:
Diffstat (limited to 'automated/linux/dockerized-tests/local-run.sh')
-rwxr-xr-xautomated/linux/dockerized-tests/local-run.sh45
1 files changed, 45 insertions, 0 deletions
diff --git a/automated/linux/dockerized-tests/local-run.sh b/automated/linux/dockerized-tests/local-run.sh
new file mode 100755
index 0000000..3a13853
--- /dev/null
+++ b/automated/linux/dockerized-tests/local-run.sh
@@ -0,0 +1,45 @@
+#!/bin/sh -ex
+
+TEST_DIR=$(dirname "$(realpath "$0")")
+OUTPUT="${TEST_DIR}/output"
+LOGFILE="${OUTPUT}/stdout.txt"
+RESULT_FILE="${OUTPUT}/result.txt"
+
+TEST="automated/linux/smoke/smoke.yaml"
+TESTDEF_PARAMS=""
+DOCKER_IMG="linaro/testdef-arm64-debian-stretch:922033e"
+
+usage() {
+ echo "Usage: $0 [-t <test>] [-r <testdef_params>] [-d <docker_img>]" 1>&2
+ exit 1
+}
+
+while getopts "t:r:d:h" opt; do
+ case "$opt" in
+ t) TEST="${OPTARG}" ;;
+ r) TESTDEF_PARAMS="${OPTARG}" ;;
+ d) DOCKER_IMG="${OPTARG}" ;;
+ *) usage ;;
+ esac
+done
+
+# SC1090: Can't follow non-constant source. Use a directive to specify location.
+# shellcheck disable=SC1090
+. "${TEST_DIR}/../../lib/sh-test-lib"
+create_out_dir "${OUTPUT}"
+
+# Assume docker pre-installed on test target.
+command -v docker || error_msg "docker not found on test target!"
+
+# Trigger test run.
+cmd1="docker run --privileged --init ${DOCKER_IMG} test-runner -d ${TEST}"
+[ -n "${TESTDEF_PARAMS}" ] && cmd1="${cmd1} -r ${TESTDEF_PARAMS}"
+if ! pipe0_status "${cmd1}" "tee -a ${LOGFILE}"; then
+ echo "docker-run fail" | tee -a "${RESULT_FILE}"
+ info_msg "Usage: check automated/linux/dockerized-tests/README.md"
+ error_msg "Test run with docker failed!"
+fi
+
+# Parse test log.
+awk '/^<TEST_CASE_ID/ {gsub(/(<|>|=|TEST_CASE_ID|RESULT|UNITS|MEASUREMENT)/,""); print}' "${LOGFILE}" \
+ | tee -a "${RESULT_FILE}"