mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-29 02:21:44 +00:00
Adds test scripts to deploy, run and retrieve results from integration tests.
Adds a simple script for jenkins to run to retrieve the test results from. Adds a script that allows developers to download and run tests from a specific language easily. Adds a script that allows the tests to be run from within an ssh session on the roborio. Change-Id: Ibe6ddc4e1dcbb8192e6552c3901e96f6907a8020
This commit is contained in:
83
test-scripts/deploy-and-run-test-on-robot.sh
Normal file
83
test-scripts/deploy-and-run-test-on-robot.sh
Normal file
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env bash
|
||||
#*----------------------------------------------------------------------------*#
|
||||
#* Copyright (c) FIRST 2014. All Rights Reserved. *#
|
||||
#* Open Source Software - may be modified and shared by FRC teams. The code *#
|
||||
#* must be accompanied by the FIRST BSD license file in the root directory of *#
|
||||
#* the project. *#
|
||||
#*----------------------------------------------------------------------------*#
|
||||
|
||||
# Configurable variables
|
||||
source config.sh
|
||||
|
||||
# Java variables
|
||||
DEFAULT_DESTINATION_JAVA_TEST_FILE=${DEFAULT_TEST_SCP_DIR}/${DEFAULT_JAVA_TEST_NAME}
|
||||
|
||||
# C++ Variables
|
||||
DEFAULT_DESTINATION_CPP_TEST_FILE=${DEFAULT_TEST_SCP_DIR}/${DEFAULT_CPP_TEST_NAME}
|
||||
|
||||
DEFAULT_DESTINATION_RUN_TEST_SCRIPT=${DEFAULT_DESTINATION_DIR}/${DEFAULT_LOCAL_RUN_TEST_SCRIPT}
|
||||
|
||||
usage="$(basename "$0") [-h] (java|cpp) [-A] [arg] [arg]...
|
||||
A script designed to run the integration tests.
|
||||
This script should only be run on the roborio.
|
||||
Where:
|
||||
-h Show this help text.
|
||||
-A Disable language recomended arguments.
|
||||
arg Additional arguments to be passed to test."
|
||||
|
||||
|
||||
# These variables are set when the language is selected
|
||||
LANGUAGE=none
|
||||
LOCAL_TEST_FILE=none
|
||||
DESTINATION_TEST_FILE=none
|
||||
TEST_RUN_ARGS=""
|
||||
|
||||
# Begin searching for options from the third paramater on
|
||||
PARAM_ARGS=${@:2}
|
||||
|
||||
if [[ "$1" = java ]]; then
|
||||
LANGUAGE=$1
|
||||
LOCAL_TEST_FILE=$DEFAULT_LOCAL_JAVA_TEST_FILE
|
||||
DESTINATION_TEST_FILE=$DEFAULT_DESTINATION_JAVA_TEST_FILE
|
||||
elif [[ "$1" = cpp ]]; then
|
||||
LANGUAGE=$1
|
||||
LOCAL_TEST_FILE=$DEFAULT_LOCAL_CPP_TEST_FILE
|
||||
DESTINATION_TEST_FILE=$DEFAULT_DESTINATION_CPP_TEST_FILE
|
||||
elif [[ "$1" = "-h" ]]; then
|
||||
printf "Usage:\n"
|
||||
echo "$usage"
|
||||
exit
|
||||
else
|
||||
printf "Invalid language selection: %s\n\n" "$1" >&2
|
||||
echo "$usage" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if the test file to upload exists
|
||||
if [[ ! -e ${LOCAL_TEST_FILE} ]]; then
|
||||
printf "The test file does not exist: %s\nAre you sure that you compiled the tests??\n\n" "${LOCAL_TEST_FILE}" >&2
|
||||
echo "$usage" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TEST_RUN_ARGS="${@:2}"
|
||||
|
||||
shopt -s huponexit
|
||||
|
||||
SCP_TEST_SCRIPT="scp config.sh ${DEFAULT_LOCAL_RUN_TEST_SCRIPT} ${ROBOT_ADDRESS}:/${DEFAULT_DESTINATION_DIR}"
|
||||
SSH_CHMOD_AND_MAKE_TEMP_TEST_DIR="ssh -t ${ROBOT_ADDRESS} 'chmod a+x ${DEFAULT_DESTINATION_RUN_TEST_SCRIPT}; mkdir ${DEFAULT_TEST_SCP_DIR} 2>/dev/null'"
|
||||
SCP_TEST_PROGRAM="scp ${LOCAL_TEST_FILE} ${ROBOT_ADDRESS}:/${DESTINATION_TEST_FILE}"
|
||||
SSH_RUN_TESTS="ssh -t ${ROBOT_ADDRESS} '${DEFAULT_DESTINATION_RUN_TEST_SCRIPT} ${LANGUAGE} $(whoami) -d ${DEFAULT_TEST_SCP_DIR} ${TEST_RUN_ARGS}'"
|
||||
|
||||
if [ $(which sshpass) ]; then
|
||||
sshpass -p "" ${SCP_TEST_SCRIPT}
|
||||
sshpass -p "" ${SSH_CHMOD_AND_MAKE_TEMP_TEST_DIR}
|
||||
sshpass -p "" ${SCP_TEST_PROGRAM}
|
||||
sshpass -p "" ${SSH_RUN_TESTS}
|
||||
else
|
||||
eval ${SCP_TEST_SCRIPT}
|
||||
eval ${SSH_CHMOD_AND_MAKE_TEMP_TEST_DIR}
|
||||
eval ${SCP_TEST_PROGRAM}
|
||||
eval ${SSH_RUN_TESTS}
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user