|
|
|
@ -22,52 +22,4 @@ cd protobuf |
|
|
|
|
# Initialize any submodules: |
|
|
|
|
git submodule update --init --recursive |
|
|
|
|
|
|
|
|
|
# Set up the directory where our test output is going to go. |
|
|
|
|
OUTPUT_DIR=`mktemp -d` |
|
|
|
|
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. |
|
|
|
|
|
|
|
|
|
# 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 |
|
|
|
|
|
|
|
|
|
# Time the C++ build, so we can put this info in the test output. |
|
|
|
|
# It's important that we get /usr/bin/time (which supports -f and -o) and not |
|
|
|
|
# the bash builtin "time" which doesn't. |
|
|
|
|
TIME_CMD="/usr/bin/time -f %e -o $LOG_OUTPUT_DIR/1/cpp/build_time" |
|
|
|
|
|
|
|
|
|
$TIME_CMD $TEST_SCRIPT cpp > >(tee $CPP_STDOUT) 2> >(tee $CPP_STDERR >&2) |
|
|
|
|
|
|
|
|
|
# Other tests are run in parallel. TEST_SET is defined in |
|
|
|
|
# buildcmds/pull_request{_32}.sh |
|
|
|
|
|
|
|
|
|
parallel --results $LOG_OUTPUT_DIR --joblog $OUTPUT_DIR/joblog $TEST_SCRIPT ::: \ |
|
|
|
|
$TEST_SET \ |
|
|
|
|
|| FAILED="true" # Process test results even if tests fail. |
|
|
|
|
|
|
|
|
|
cat $OUTPUT_DIR/joblog |
|
|
|
|
|
|
|
|
|
# The directory that is copied from Docker back into the Kokoro workspace. |
|
|
|
|
COPY_FROM_DOCKER=/var/local/git/protobuf/testoutput |
|
|
|
|
mkdir -p $COPY_FROM_DOCKER |
|
|
|
|
TESTOUTPUT_XML_FILE=$COPY_FROM_DOCKER/sponge_log.xml |
|
|
|
|
|
|
|
|
|
# Process all the output files from "parallel" and package them into a single |
|
|
|
|
# .xml file with detailed, broken-down test output. |
|
|
|
|
python $MY_DIR/make_test_output.py $OUTPUT_DIR > $TESTOUTPUT_XML_FILE |
|
|
|
|
|
|
|
|
|
ls -l $TESTOUTPUT_XML_FILE |
|
|
|
|
|
|
|
|
|
if [ "$FAILED" == "true" ]; then |
|
|
|
|
exit 1 |
|
|
|
|
fi |
|
|
|
|
$TEST_SCRIPT $TEST_SET |
|
|
|
|