blob: 324f7552e6ff8dd43b2e66a4bbb50e3e511107d6 [file] [log] [blame]
Hridya Valsaraju11bd9dd2017-03-23 12:35:37 -07001function usage() {
2 echo "runs $TEST_NAME"
3 echo "\t -h help"
4 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"
5}
6
7failed_test_cases=()
8
9function run_test() {
10 if [ $1 -eq 32 ]; then
11 CLIENT_PATH=$CLIENT_PATH32
12 else
13 CLIENT_PATH=$CLIENT_PATH64
14 fi
15
16 if [ $2 -eq 32 ]; then
17 SERVER_PATH=$SERVER_PATH32
18 else
19 SERVER_PATH=$SERVER_PATH64
20 fi
21
22 echo "Running $1-bit client with $2-bit servers"
23 $SERVER_PATH &
Hridya Valsaraju11bd9dd2017-03-23 12:35:37 -070024 SERVER_PID=$!
25 $CLIENT_PATH
26 if [ $? -ne 0 ]; then
27 failed_test_cases+=("$1-bit client with $2-bit servers")
28 fi
29 kill $SERVER_PID
30}
31
32function check_env() {
33 if [ -z ${TEST_NAME+x} ]; then
34 echo "TEST_NAME is unset";
35 exit 1
36 fi
37
38 if [ -z ${CLIENT_PATH32+x} ]; then
39 echo "CLIENT_PATH32 is unset";
40 exit 1
41 fi
42
43 if [ -z ${CLIENT_PATH64+x} ]; then
44 echo "CLIENT_PATH64 is unset";
45 exit 1
46 fi
47
48 if [ -z ${SERVER_PATH32+x} ]; then
49 echo "SERVER_PATH32 is unset";
50 exit 1
51 fi
52
53 if [ -z ${SERVER_PATH64+x} ]; then
54 echo "SERVER_PATH64 is unset";
55 exit 1
56 fi
57}
58
59#usage: run_all_tests server_path32 server_path64 client_path32 client_path64 test_name [-h/-c config]
60function run_all_tests() {
61 SERVER_PATH32=$1
62 SERVER_PATH64=$2
63 CLIENT_PATH32=$3
64 CLIENT_PATH64=$4
65 TEST_NAME=$5
66 check_env
67 shift 5
68
69 if [ $# -eq 0 ]; then
70 for i in 32 64
71 do
72 for j in 32 64
73 do
74 run_test $i $j
75 done
76 done
77 count_failed_tests=${#failed_test_cases[@]}
78 echo "*********************************************************"
79 echo " $TEST_NAME Final Summary:\n"
80 if [ $count_failed_tests -gt 0 ]; then
81 echo " $TEST_NAME failed for the following cases:\n\t"
82 for each in "${failed_test_cases[@]}"
83 do
84 echo "\t$each"
85 done
86 else
87 echo " $TEST_NAME passed for all cases!"
88 fi
89 echo "*********************************************************"
90 fi
91
92 while getopts hc: opt;
93 do
94 case $opt in
95 h)
96 usage
97 exit 0
98 ;;
99 c)
100 case $OPTARG in
101 CLIENT64_SERVER64)
102 run_test 64 64
103 ;;
104 CLIENT32_SERVER32)
105 run_test 32 32
106 ;;
107 CLIENT64_SERVER32)
108 run_test 64 32
109 ;;
110 CLIENT32_SERVER64)
111 run_test 32 64
112 ;;
113 *)
114 echo "Error: unknown config value \"$OPTARG\""
115 exit 1
116 ;;
117 esac
118 ;;
119 *)
120 echo "Error: unknown param \"$opt\""
121 usage
122 exit 1
123 ;;
124 esac
125 done
126 exit ${#failed_test_cases[@]}
127}