mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
80 lines
2.5 KiB
Bash
Executable File
80 lines
2.5 KiB
Bash
Executable File
#!/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
|
|
|
|
(
|
|
# Wait for lock
|
|
printf "Getting exclusive lock for RIO execution...\n"
|
|
flock -x 200 || exit 1
|
|
|
|
# Ensure the teststand is dead
|
|
SSH_STOP_TESTSTAND="ssh -t ${ROBOT_ADDRESS} sh -c '/etc/init.d/teststand stop; sleep 1'"
|
|
if [ $(which sshpass) ]; then
|
|
sshpass -p "" ${SSH_STOP_TESTSTAND}
|
|
else
|
|
eval ${SSH_STOP_TESTSTAND}
|
|
fi
|
|
|
|
# If there are already test results in the repository then remove them
|
|
if [[ -e ${DEFAULT_LOCAL_TEST_RESULTS_DIR} ]]; then
|
|
rm -R ${DEFAULT_LOCAL_TEST_RESULTS_DIR}
|
|
fi
|
|
|
|
# Make the directory where the tests should live
|
|
mkdir ${DEFAULT_LOCAL_TEST_RESULTS_DIR} 2>/dev/null
|
|
|
|
# Remove the preivous test results from the the robot
|
|
SSH_REMOVE_OLD_TEST_RESULTS="ssh -t ${ROBOT_ADDRESS} rm -R ${DEFAULT_DESTINATION_TEST_RESULTS_DIR}; mkdir ${DEFAULT_DESTINATION_TEST_RESULTS_DIR}"
|
|
if [ $(which sshpass) ]; then
|
|
sshpass -p "" ${SSH_REMOVE_OLD_TEST_RESULTS}
|
|
else
|
|
eval ${SSH_REMOVE_OLD_TEST_RESULTS}
|
|
fi
|
|
|
|
printf "Running cpp test\n"
|
|
|
|
# Run the C++ Tests
|
|
./deploy-and-run-test-on-robot.sh cpp -A "--gtest_output=xml:${DEFAULT_DESTINATION_CPP_TEST_RESULTS}"
|
|
|
|
# Retrive the C++ Test Results
|
|
SCP_GET_CPP_TEST_RESULT="scp ${ROBOT_ADDRESS}:${DEFAULT_DESTINATION_CPP_TEST_RESULTS} ${DEFAULT_LOCAL_CPP_TEST_RESULT}"
|
|
if [ $(which sshpass) ]; then
|
|
sshpass -p "" ${SCP_GET_CPP_TEST_RESULT}
|
|
else
|
|
eval ${SCP_GET_CPP_TEST_RESULT}
|
|
fi
|
|
|
|
sleep 10
|
|
|
|
# Run the Java Tests
|
|
./deploy-and-run-test-on-robot.sh java
|
|
|
|
# Retrive the Java Test Results
|
|
SCP_GET_JAVA_TEST_RESULT="scp ${ROBOT_ADDRESS}:${DEFAULT_DESTINATION_JAVA_TEST_RESULTS} ${DEFAULT_LOCAL_JAVA_TEST_RESULT}"
|
|
if [ $(which sshpass) ]; then
|
|
sshpass -p "" ${SCP_GET_JAVA_TEST_RESULT}
|
|
else
|
|
eval ${SCP_GET_JAVA_TEST_RESULT}
|
|
fi
|
|
|
|
# Make sure that we got test results back.
|
|
if [ ! -e ${DEFAULT_LOCAL_CPP_TEST_RESULT} ]; then
|
|
echo "There are no results from the C++ tests; they must have failed."
|
|
exit 100
|
|
fi
|
|
|
|
if [ ! -e ${DEFAULT_LOCAL_JAVA_TEST_RESULT} ]; then
|
|
echo "There are no results from the Java tests; they must have failed."
|
|
exit 101
|
|
fi
|
|
|
|
# The mutex is released when this program exits
|
|
) 200>/var/lock/jenkins.rio.exclusivelock
|