aboutsummaryrefslogtreecommitdiff
path: root/tools/run_tests
diff options
context:
space:
mode:
Diffstat (limited to 'tools/run_tests')
-rwxr-xr-xtools/run_tests/jenkins.sh36
1 files changed, 30 insertions, 6 deletions
diff --git a/tools/run_tests/jenkins.sh b/tools/run_tests/jenkins.sh
index 620c2116..32050d25 100755
--- a/tools/run_tests/jenkins.sh
+++ b/tools/run_tests/jenkins.sh
@@ -1,5 +1,6 @@
#!/bin/bash
+WORKSPACE_BASE=`pwd`
MY_DIR="$(dirname "$0")"
TEST_SCRIPT=$MY_DIR/tests.sh
BUILD_DIR=/tmp/protobuf
@@ -17,16 +18,30 @@ git clone /var/local/jenkins/protobuf
cd protobuf
OUTPUT_DIR=`mktemp -d`
-mkdir -p $OUTPUT_DIR/1
+LOG_OUTPUT_DIR=$OUTPUT_DIR/logs
+mkdir -p $LOG_OUTPUT_DIR/1/cpp
+################################################################################
# cpp build needs to run first, non-parallelized, so that protoc is available
# for other builds.
-$TEST_SCRIPT cpp | tee $OUTPUT_DIR/1/cpp
+
+# Output filenames to follow the overall scheme used by parallel, ie:
+# $DIR/logs/1/cpp/stdout
+# $DIR/logs/1/cpp/stderr
+# $DIR/logs/1/csharp/stdout
+# $DIR/logs/1/csharp/stderr
+# $DIR/logs/1/java_jdk7/stdout
+# $DIR/logs/1/java_jdk7/stderr
+CPP_STDOUT=$LOG_OUTPUT_DIR/1/cpp/stdout
+CPP_STDERR=$LOG_OUTPUT_DIR/1/cpp/stderr
+$TEST_SCRIPT cpp > >(tee $CPP_STDOUT) 2> >(tee $CPP_STDERR >&2)
# Other tests are run in parallel. The overall run fails if any one of them
# fails.
-parallel --results $OUTPUT_DIR $TEST_SCRIPT ::: \
+FAILED=false
+
+parallel --results $LOG_OUTPUT_DIR --joblog $OUTPUT_DIR/joblog $TEST_SCRIPT ::: \
csharp \
java_jdk7 \
javanano_jdk7 \
@@ -34,8 +49,17 @@ parallel --results $OUTPUT_DIR $TEST_SCRIPT ::: \
javanano_oracle7 \
python \
python_cpp \
- ruby21
+ ruby21 \
+ || true # Process test results even if tests fail.
-# java_jdk6 \
+# The directory that is copied from Docker back into the Jenkins workspace.
+COPY_FROM_DOCKER=/var/local/git/protobuf/testoutput
+mkdir -p $COPY_FROM_DOCKER
+TESTOUTPUT_XML_FILE=$COPY_FROM_DOCKER/testresults.xml
-find $OUTPUT_DIR
+python $MY_DIR/../jenkins/make_test_output.py $OUTPUT_DIR > $TESTOUTPUT_XML_FILE
+
+ls -l $TESTOUTPUT_XML_FILE
+
+### disabled tests
+# java_jdk6 \