blob: eb54358aed06674868fc5a9986d0b5e6ff5e177d [file] [log] [blame]
function usage() {
echo "runs $TEST_NAME"
echo "\t -h help"
echo "\t -c [CLIENT64_SERVER64 | CLIENT32_SERVER32 | CLIENT64_SERVER32 | CLIENT32_SERVER64] configures whether to run 32-bit or 64-bit versions of the servers and client"
}
failed_test_cases=()
function run_test() {
if [ $1 -eq 32 ]; then
CLIENT_PATH=$CLIENT_PATH32
else
CLIENT_PATH=$CLIENT_PATH64
fi
if [ $2 -eq 32 ]; then
SERVER_PATH=$SERVER_PATH32
else
SERVER_PATH=$SERVER_PATH64
fi
echo "Running $1-bit client with $2-bit servers"
$SERVER_PATH &
sleep 1
SERVER_PID=$!
$CLIENT_PATH
if [ $? -ne 0 ]; then
failed_test_cases+=("$1-bit client with $2-bit servers")
fi
kill $SERVER_PID
}
function check_env() {
if [ -z ${TEST_NAME+x} ]; then
echo "TEST_NAME is unset";
exit 1
fi
if [ -z ${CLIENT_PATH32+x} ]; then
echo "CLIENT_PATH32 is unset";
exit 1
fi
if [ -z ${CLIENT_PATH64+x} ]; then
echo "CLIENT_PATH64 is unset";
exit 1
fi
if [ -z ${SERVER_PATH32+x} ]; then
echo "SERVER_PATH32 is unset";
exit 1
fi
if [ -z ${SERVER_PATH64+x} ]; then
echo "SERVER_PATH64 is unset";
exit 1
fi
}
#usage: run_all_tests server_path32 server_path64 client_path32 client_path64 test_name [-h/-c config]
function run_all_tests() {
SERVER_PATH32=$1
SERVER_PATH64=$2
CLIENT_PATH32=$3
CLIENT_PATH64=$4
TEST_NAME=$5
check_env
shift 5
if [ $# -eq 0 ]; then
for i in 32 64
do
for j in 32 64
do
run_test $i $j
done
done
count_failed_tests=${#failed_test_cases[@]}
echo "*********************************************************"
echo " $TEST_NAME Final Summary:\n"
if [ $count_failed_tests -gt 0 ]; then
echo " $TEST_NAME failed for the following cases:\n\t"
for each in "${failed_test_cases[@]}"
do
echo "\t$each"
done
else
echo " $TEST_NAME passed for all cases!"
fi
echo "*********************************************************"
fi
while getopts hc: opt;
do
case $opt in
h)
usage
exit 0
;;
c)
case $OPTARG in
CLIENT64_SERVER64)
run_test 64 64
;;
CLIENT32_SERVER32)
run_test 32 32
;;
CLIENT64_SERVER32)
run_test 64 32
;;
CLIENT32_SERVER64)
run_test 32 64
;;
*)
echo "Error: unknown config value \"$OPTARG\""
exit 1
;;
esac
;;
*)
echo "Error: unknown param \"$opt\""
usage
exit 1
;;
esac
done
exit ${#failed_test_cases[@]}
}