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