1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
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"
echo "\t -x [/ld/library/path32] set the LD_LIBRARY_PATH for servers32 and client32"
echo "\t -y [/ld/library/path64] set the LD_LIBRARY_PATH for servers64 and client64"
}
failed_test_cases=()
function run_test() {
if [ $1 -eq 32 ]; then
CLIENT_PATH=$CLIENT_PATH32
LD_LIB_PATH_CLIENT=$LD_LIB_PATH32
else
CLIENT_PATH=$CLIENT_PATH64
LD_LIB_PATH_CLIENT=$LD_LIB_PATH64
fi
if [ $2 -eq 32 ]; then
SERVER_PATH=$SERVER_PATH32
LD_LIB_PATH_SERVER=$LD_LIB_PATH32
else
SERVER_PATH=$SERVER_PATH64
LD_LIB_PATH_SERVER=$LD_LIB_PATH64
fi
echo "Running $1-bit client with $2-bit servers"
echo "$LD_LIB_PATH_SERVER=$LD_LIB_PATH_SERVER"
LD_LIBRARY_PATH=$LD_LIB_PATH_SERVER:$LD_LIBRARY_PATH $SERVER_PATH &
SERVER_PID=$!
LD_LIBRARY_PATH=$LD_LIB_PATH_CLIENT:$LD_LIBRARY_PATH $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/-x lib32/-y ldlib64]
function run_all_tests() {
SERVER_PATH32=$1
SERVER_PATH64=$2
CLIENT_PATH32=$3
CLIENT_PATH64=$4
TEST_NAME=$5
check_env
shift 5
while getopts hc:x:y: 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
exit 0
;;
x)
LD_LIB_PATH32=$OPTARG
;;
y)
LD_LIB_PATH64=$OPTARG
;;
*)
echo "Error: unknown param \"$opt\""
usage
exit 1
;;
esac
done
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 "*********************************************************"
exit ${#failed_test_cases[@]}
}
|