pebble/third_party/jerryscript/tools/runners/run-tests-remote.sh
2025-01-27 11:38:16 -08:00

80 lines
No EOL
2.8 KiB
Bash
Executable file

#!/bin/bash
# Copyright 2015 Samsung Electronics Co., Ltd.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
TARGET="$1" #debug.linux release.linux
TARGET_IP="$2" # ip address of target board
TARGET_USER="$3" # login
TARGET_PASS="$4" # password
if [ $# -lt 4 ]
then
echo "This script runs ./jerry/* and ./jerry-test-suite/* tests on the remote board."
echo ""
echo "Usage:"
echo " 1st parameter: target to be tested: {debug.linux, release.linux}"
echo " 2nd parameter: ip address of target board: {110.110.110.110}"
echo " 3rd parameter: ssh login to target board: {login}"
echo " 4th parameter: ssh password to target board: {password}"
echo ""
echo "Example:"
echo " ./tools/runners/run-tests-remote.sh debug.linux 110.110.110.110 login password"
exit 1
fi
BASE_DIR=$(dirname "$(readlink -f "$0")" )
OUT_DIR="${BASE_DIR}"/../.././build/bin
LOGS_PATH_FULL="${OUT_DIR}"/"${TARGET}"/check
export SSHPASS="${TARGET_PASS}"
rm -rf "${LOGS_PATH_FULL}"
mkdir -p "${LOGS_PATH_FULL}"
REMOTE_TMP_DIR=$(sshpass -e ssh "${TARGET_USER}"@"${TARGET_IP}" 'mktemp -d')
REMOTE_TMP_TAR=$(sshpass -e ssh "${TARGET_USER}"@"${TARGET_IP}" 'mktemp')
LOCAL_TMP_TAR=$(mktemp)
tar -zcf "${LOCAL_TMP_TAR}" \
"${BASE_DIR}"/../.././build/bin/"${TARGET}" \
"${BASE_DIR}"/../.././tests/benchmarks \
"${BASE_DIR}"/../.././tests/jerry \
"${BASE_DIR}"/../.././tests/jerry-test-suite \
"${BASE_DIR}"/../.././tools/runners \
"${BASE_DIR}"/../.././tools/precommit-full-testing.sh > /dev/null 2>&1
sshpass -e scp "${LOCAL_TMP_TAR}" "${TARGET_USER}"@"${TARGET_IP}":"${REMOTE_TMP_TAR}"
sshpass -e ssh "${TARGET_USER}"@"${TARGET_IP}" \
"tar -zxf \"${REMOTE_TMP_TAR}\" -C \"${REMOTE_TMP_DIR}\"; rm \"${REMOTE_TMP_TAR}\";\
cd \"${REMOTE_TMP_DIR}\"; \
./tools/precommit-full-testing.sh ./build/bin \"$TARGET\" > ./build/bin/\"${TARGET}\"/check/run.log 2>&1; \
echo \$? > ./build/bin/\"${TARGET}\"/check/IS_TEST_OK"
sshpass -e scp -r "${TARGET_USER}"@"${TARGET_IP}":"${REMOTE_TMP_DIR}"/build/bin/"${TARGET}"/check/* "${LOGS_PATH_FULL}"
sshpass -e ssh "${TARGET_USER}"@"${TARGET_IP}" "rm -rf \"${REMOTE_TMP_DIR}\""
STATUS=$(cat "${LOGS_PATH_FULL}"/IS_TEST_OK)
if [ "${STATUS}" == 0 ] ; then
echo "${TARGET} testing passed."
exit 0
else
echo "${TARGET} testing failed."
echo "See logs in ${LOGS_PATH_FULL} directory for details."
exit 1
fi