aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/gce_setup/interop_test_runner.sh
blob: 12443079128f4e359bf056c949f063136ddab7ff (plain)
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
#!/bin/bash
thisfile=$(readlink -ne "${BASH_SOURCE[0]}")

run_test() {
  local test_case=$1
  shift
  local client=$1
  shift 
  local server=$1
  if grpc_interop_test $test_case grpc-docker-testclients $client grpc-docker-server $server
  then
    echo "$test_case $client $server passed" >> /tmp/interop_result.txt
  else
    echo "$test_case $client $server failed" >> /tmp/interop_result.txt
  fi
}

time_out() {
  local test_case=$1
  shift
  local client=$1
  shift
  local server=$1
  if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
    if ! timeout 20s bash -l -c "source $thisfile && run_test $test_case $client $server"
    then
      echo "$test_case $client $server timed out" >> /tmp/interop_result.txt
    fi
  fi
}

main() {
  source grpc_docker.sh
  test_cases=(large_unary empty_unary ping_pong client_streaming server_streaming)
  clients=(cxx java go ruby node)
  servers=(cxx java go ruby node)
  for test_case in "${test_cases[@]}"
  do
    for client in "${clients[@]}"
    do
      for server in "${servers[@]}"
      do
        time_out $test_case $client $server
      done
    done
  done
  if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
    gsutil cp /tmp/interop_result.txt gs://stoked-keyword-656-output/interop_result.txt
    rm /tmp/interop_result.txt
  fi
}

set -x
main "$@"