Rewrote the timeout for test commands

Added missing pingpong tests to cloud prod test
Cleaned up test output and inserted them into a google.visualization.Datatable object
pull/406/head
Donna Dionne 10 years ago
parent cf816d1d52
commit 4138a6a837
  1. 33
      tools/gce_setup/builder.sh
  2. 4
      tools/gce_setup/cloud_prod_runner.sh
  3. 22
      tools/gce_setup/grpc_docker.sh
  4. 42
      tools/gce_setup/interop_test_runner.sh
  5. 12
      tools/gce_setup/post.html
  6. 14
      tools/gce_setup/pre.html

@ -0,0 +1,33 @@
#!/bin/bash
main() {
# restart builder vm and wait for images to sync to it
source grpc_docker.sh
./new_grpc_docker_builder.sh -igrpc-docker-builder-alt-2 -anone
cd ../../
sleep 3600
# build images for all languages
languages=(cxx java go ruby node)
for lan in "${languages[@]}"
do
grpc_update_image $lan
done
# restart client and server vm and wait for images to sync to them
cd tools/gce_setup
./new_grpc_docker_builder.sh -igrpc-docker-testclients-donna -anone
./new_grpc_docker_builder.sh -igrpc-docker-server-donna -anone
sleep 3600
# launch images for all languages on both client and server
for lan in "${languages[@]}"
do
grpc_launch_servers grpc-docker-testclients-donna $lan
grpc_launch_servers grpc-docker-server-donna $lan
done
}
set -x
main "$@"

@ -2,8 +2,8 @@
main() {
source grpc_docker.sh
test_cases=(large_unary empty_unary client_streaming server_streaming)
clients=(cxx java go ruby)
test_cases=(large_unary empty_unary ping_pong client_streaming server_streaming)
clients=(cxx java go ruby node)
for test_case in "${test_cases[@]}"
do
for client in "${clients[@]}"

@ -762,7 +762,16 @@ grpc_interop_test() {
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"
gcloud compute $project_opt ssh $zone_opt $host --command "$cmd" &
PID=$!
sleep 10
echo "pid is $PID"
if ps -p $PID
then
kill $PID
return 1
fi
}
# Runs a test command on a docker instance.
@ -808,7 +817,16 @@ grpc_cloud_prod_test() {
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"
gcloud compute $project_opt ssh $zone_opt $host --command "$cmd" &
PID=$!
sleep 10
echo "pid is $PID"
if ps -p $PID
then
kill $PID
return 1
fi
}
# Runs a test command on a docker instance.

@ -1,33 +1,8 @@
#!/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
}
current_time=$(date "+%Y-%m-%d-%H-%M-%S")
result_file_name=interop_result.$current_time.html
echo $result_file_name
main() {
source grpc_docker.sh
@ -40,13 +15,22 @@ main() {
do
for server in "${servers[@]}"
do
time_out $test_case $client $server
if grpc_interop_test $test_case grpc-docker-testclients $client grpc-docker-server $server
then
echo " ['$test_case', '$client', '$server', true]," >> /tmp/interop_result.txt
else
echo " ['$test_case', '$client', '$server', false]," >> /tmp/interop_result.txt
fi
done
done
done
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
cat pre.html /tmp/interop_result.txt post.html > /tmp/interop_result.html
gsutil cp /tmp/interop_result.txt gs://stoked-keyword-656-output/interop_result.txt
gsutil cp /tmp/interop_result.html gs://stoked-keyword-656-output/interop_result.html
gsutil cp /tmp/interop_result.html gs://stoked-keyword-656-output/result_history/$result_file_name
rm /tmp/interop_result.txt
rm /tmp/interop_result.html
fi
}

@ -0,0 +1,12 @@
]);
var table = new google.visualization.Table(document.getElementById('table_div'));
table.draw(data, {showRowNumber: true});
}
</script>
</head>
<body>
<div id="table_div"></div>
</body>
</html>

@ -0,0 +1,14 @@
<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["table"]});
google.setOnLoadCallback(drawTable);
function drawTable() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'TestCase');
data.addColumn('string', 'Client');
data.addColumn('string', 'Server');
data.addColumn('boolean', 'Pass');
data.addRows([
Loading…
Cancel
Save