aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar Tim Emiola <tbetbetbe@users.noreply.github.com>2015-05-12 08:08:00 -0700
committerGravatar Tim Emiola <tbetbetbe@users.noreply.github.com>2015-05-12 08:08:00 -0700
commit4491fbd0e9bcfe44d25339e3e919f208633f274f (patch)
tree0a43966749be2212d06cf99a6ae800a79b12511d /tools
parent2a41091ea729bff7944f718a36866f8677d8ab0d (diff)
parentf319be0a88adf91440834995e88541db258e9324 (diff)
Merge pull request #1553 from jtattermusch/interop_windows_runners
Runner scripts for interop tests on Windows
Diffstat (limited to 'tools')
-rwxr-xr-xtools/gce_setup/grpc_docker.sh63
1 files changed, 56 insertions, 7 deletions
diff --git a/tools/gce_setup/grpc_docker.sh b/tools/gce_setup/grpc_docker.sh
index d3a7bdef28..c49efbab60 100755
--- a/tools/gce_setup/grpc_docker.sh
+++ b/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: