aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJosh Haberman <jhaberman@gmail.com>2016-03-03 17:04:36 -0800
committerJosh Haberman <jhaberman@gmail.com>2016-03-03 17:05:36 -0800
commit2bda98f79ca9f43091d2033cf02c9732a0515a7a (patch)
tree03efdae9d7224df721ed253937d6e1d9953c25c8 /tools
parent1ee0fda556b252944e7dd140ad0cd7b8949eb496 (diff)
downloadprotobuf-2bda98f79ca9f43091d2033cf02c9732a0515a7a.tar.gz
protobuf-2bda98f79ca9f43091d2033cf02c9732a0515a7a.tar.bz2
protobuf-2bda98f79ca9f43091d2033cf02c9732a0515a7a.zip
Properly report C++ build time.
Diffstat (limited to 'tools')
-rwxr-xr-xtools/jenkins/build_and_run_docker.sh12
-rw-r--r--tools/jenkins/make_test_output.py4
-rwxr-xr-xtools/run_tests/jenkins.sh7
3 files changed, 15 insertions, 8 deletions
diff --git a/tools/jenkins/build_and_run_docker.sh b/tools/jenkins/build_and_run_docker.sh
index 448b00c0..18b910a7 100755
--- a/tools/jenkins/build_and_run_docker.sh
+++ b/tools/jenkins/build_and_run_docker.sh
@@ -46,16 +46,18 @@ cd -
# Use image name based on Dockerfile location checksum
DOCKER_IMAGE_NAME=$(basename $DOCKERFILE_DIR)_$(sha1sum $DOCKERFILE_DIR/Dockerfile | cut -f1 -d\ )
+# Ensure existence of ccache directory
+CCACHE_DIR=/tmp/protobuf-ccache
+mkdir -p $CCACHE_DIR
+
# Make sure docker image has been built. Should be instantaneous if so.
-docker build -t $DOCKER_IMAGE_NAME $DOCKERFILE_DIR
+docker build \
+ -v $CCACHE_DIR:$CCACHE_DIR \
+ -t $DOCKER_IMAGE_NAME $DOCKERFILE_DIR
# Choose random name for docker container
CONTAINER_NAME="build_and_run_docker_$(uuidgen)"
-# Ensure existence of ccache directory
-CCACHE_DIR=/tmp/protobuf-ccache
-mkdir -p $CCACHE_DIR
-
# Run command inside docker
docker run \
"$@" \
diff --git a/tools/jenkins/make_test_output.py b/tools/jenkins/make_test_output.py
index 0ba5db3b..986d1979 100644
--- a/tools/jenkins/make_test_output.py
+++ b/tools/jenkins/make_test_output.py
@@ -58,8 +58,8 @@ def readtests(basedir):
# up in the job log.
tests["cpp"]["name"] = "cpp"
- # TODO
- tests["cpp"]["time"] = "0"
+ with open(basedir + '/logs/1/cpp/build_time', 'r') as f:
+ tests["cpp"]["time"] = f.read().strip()
tests["cpp"]["failure"] = False
ret = tests.values()
diff --git a/tools/run_tests/jenkins.sh b/tools/run_tests/jenkins.sh
index 32050d25..0bd9ffe5 100755
--- a/tools/run_tests/jenkins.sh
+++ b/tools/run_tests/jenkins.sh
@@ -34,7 +34,12 @@ mkdir -p $LOG_OUTPUT_DIR/1/cpp
# $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)
+
+# 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. The overall run fails if any one of them
# fails.