|  | @@ -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
 |