give the duration of test in the fallback xml file
A common extension to junitxml is to provide the duration of each test
case in seconds. Here, we add the duration to the xml file that
test-setup.sh provides if the test driver doesn't generate one.
Change-Id: I25f94f10bb99db7078919f3e0bcdf7bd3cbb637d
PiperOrigin-RevId: 160252993
diff --git a/src/test/shell/bazel/bazel_test_test.sh b/src/test/shell/bazel/bazel_test_test.sh
index a175139..9f0c461 100755
--- a/src/test/shell/bazel/bazel_test_test.sh
+++ b/src/test/shell/bazel/bazel_test_test.sh
@@ -357,10 +357,12 @@
cat bazel-testlogs/dir/success/test.xml >$TEST_log
expect_log "errors=\"0\""
expect_log_once "testcase"
+ expect_log_once "duration=\"[0-9]\+\""
expect_log "name=\"dir/success\""
cat bazel-testlogs/dir/fail/test.xml >$TEST_log
expect_log "errors=\"1\""
expect_log_once "testcase"
+ expect_log_once "duration=\"[0-9]\+\""
expect_log "name=\"dir/fail\""
}
diff --git a/tools/test/test-setup.sh b/tools/test/test-setup.sh
index 308f658..8ce2ea8 100755
--- a/tools/test/test-setup.sh
+++ b/tools/test/test-setup.sh
@@ -161,11 +161,13 @@
[[ -n "$RUNTEST_PRESERVE_CWD" ]] && EXE="${TEST_NAME}"
exitCode=0
+start=$(date +%s)
if [ -z "$COVERAGE_DIR" ]; then
"${TEST_PATH}" "$@" || exitCode=$?
else
"$1" "$TEST_PATH" "${@:3}" || exitCode=$?
fi
+duration=$(expr $(date +%s) - $start)
if [ -n "${XML_OUTPUT_FILE-}" -a ! -f "${XML_OUTPUT_FILE-}" ]; then
@@ -181,7 +183,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
<testsuite name="$TEST_NAME" tests="1" failures="0" errors="$errors">
- <testcase name="$TEST_NAME" status="run">$error_msg</testcase>
+ <testcase name="$TEST_NAME" status="run" duration="$duration">$error_msg</testcase>
</testsuite>
</testsuites>
EOF