Merge pull request #1553 from jtattermusch/interop_windows_runners

Runner scripts for interop tests on Windows
pull/1560/head^2
Tim Emiola 10 years ago
commit 4491fbd0e9
  1. 63
      tools/gce_setup/grpc_docker.sh

@ -384,6 +384,7 @@ grpc_interop_test_args() {
[[ -n $1 ]] && { # client_type
case $1 in
cxx|go|java|node|php|python|ruby|csharp_mono)
grpc_client_platform='Docker'
grpc_gen_test_cmd="grpc_interop_gen_$1_cmd"
declare -F $grpc_gen_test_cmd >> /dev/null || {
echo "-f: test_func for $1 => $grpc_gen_test_cmd is not defined" 1>&2
@ -391,6 +392,11 @@ grpc_interop_test_args() {
}
shift
;;
csharp_dotnet)
grpc_client_platform='Windows'
grpc_gen_test_cmd="grpc_interop_gen_$1_cmd"
shift
;;
*)
echo "bad client_type: $1" 1>&2
return 1
@ -456,6 +462,7 @@ grpc_cloud_prod_test_args() {
[[ -n $1 ]] && { # client_type
case $1 in
cxx|go|java|node|php|python|ruby|csharp_mono)
grpc_client_platform='Docker'
grpc_gen_test_cmd="grpc_cloud_prod_gen_$1_cmd"
declare -F $grpc_gen_test_cmd >> /dev/null || {
echo "-f: test_func for $1 => $grpc_gen_test_cmd is not defined" 1>&2
@ -463,6 +470,11 @@ grpc_cloud_prod_test_args() {
}
shift
;;
csharp_dotnet)
grpc_client_platform='Windows'
grpc_gen_test_cmd="grpc_cloud_prod_gen_$1_cmd"
shift
;;
*)
echo "bad client_type: $1" 1>&2
return 1
@ -851,12 +863,23 @@ grpc_launch_servers() {
test_runner() {
local project_opt="--project $grpc_project"
local zone_opt="--zone $grpc_zone"
local ssh_cmd="bash -l -c \"$cmd\""
echo "will run:"
echo " $ssh_cmd"
echo "on $host"
[[ $dry_run == 1 ]] && return 0 # don't run the command on a dry run
gcloud compute $project_opt ssh $zone_opt $host --command "$cmd" &
if [ "$grpc_client_platform" != "Windows" ]
then
echo "will run:"
echo " $cmd"
echo "on $host"
gcloud compute $project_opt ssh $zone_opt $host --command "$cmd" &
else
# gcloud's auto-uploading of RSA keys doesn't work for Windows VMs.
# So we have a linux machine that is authorized to access the Windows
# machine through ssh and we use gcloud auth support to logon to the proxy.
echo "will run:"
echo " $cmd"
echo "on $host (through grpc-windows-proxy)"
gcloud compute $project_opt ssh $zone_opt stoked-keyword-656@grpc-windows-proxy --command "ssh $host '$cmd'" &
fi
#
PID=$!
echo "pid is $PID"
for x in {0..5}
@ -924,7 +947,7 @@ grpc_interop_test() {
local grpc_zone grpc_project dry_run # set by _grpc_set_project_and_zone
# grpc_interop_test_args
local test_case host grpc_gen_test_cmd grpc_server grpc_port
local test_case host grpc_gen_test_cmd grpc_server grpc_port grpc_client_platform
# set the project zone and check that all necessary args are provided
_grpc_set_project_and_zone -f grpc_interop_test_args "$@" || return 1
@ -966,7 +989,7 @@ grpc_cloud_prod_test() {
local grpc_zone grpc_project dry_run # set by _grpc_set_project_and_zone
# grpc_cloud_prod_test_args
local test_case host grpc_gen_test_cmd
local test_case host grpc_gen_test_cmd grpc_client_platform
# set the project zone and check that all necessary args are provided
_grpc_set_project_and_zone -f grpc_cloud_prod_test_args "$@" || return 1
@ -1431,6 +1454,18 @@ grpc_interop_gen_csharp_mono_cmd() {
echo $the_cmd
}
# constructs the csharp-dotnet interop test cmd.
#
# call-seq:
# flags= .... # generic flags to include the command
# cmd=$($grpc_gen_test_cmd $flags)
grpc_interop_gen_csharp_dotnet_cmd() {
local set_workdir="cd /cygdrive/c/github/grpc/src/csharp/Grpc.IntegrationTesting.Client/bin/Debug &&"
local test_script="./Grpc.IntegrationTesting.Client.exe --use_tls=true --use_test_ca=true";
local the_cmd="$set_workdir $test_script $@";
echo $the_cmd
}
# constructs the full dockerized csharp-mono gce=>prod interop test cmd.
#
# call-seq:
@ -1446,6 +1481,20 @@ grpc_cloud_prod_gen_csharp_mono_cmd() {
echo $the_cmd
}
# constructs the csharp-dotnet gce=>prod interop test cmd.
#
# call-seq:
# flags= .... # generic flags to include the command
# cmd=$($grpc_gen_test_cmd $flags)
grpc_cloud_prod_gen_csharp_dotnet_cmd() {
local set_workdir="cd /cygdrive/c/github/grpc/src/csharp/Grpc.IntegrationTesting.Client/bin/Debug &&"
local test_script="./Grpc.IntegrationTesting.Client.exe --use_tls=true";
local set_certfile="SSL_CERT_FILE=/cacerts/roots.pem "
local gfe_flags=$(_grpc_prod_gfe_flags);
local the_cmd="$set_workdir $set_certfile $test_script $gfe_flags $@";
echo $the_cmd
}
# constructs the full dockerized csharp-mono service_account auth interop test cmd.
#
# call-seq:

Loading…
Cancel
Save