[PATCH 3/8] report: capture the time zone in the test report timestamp

Darrick J. Wong
2022-12-20T00:01:28Z

From: Darrick J. Wong <djwong@kernel.org>

Make sure we put the time zone of the system running the test in the
timestamp that is recorded in the xunit report. `date "+%F %T"' reports
the local time zone, not UTC.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
common/report | 9 ++++++---
doc/xunit.xsd | 2 +-
2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/common/report b/common/report
index 1d84650270..1817132d51 100644
--- a/common/report
+++ b/common/report
@@ -38,6 +38,7 @@ _xunit_make_section_report()
local bad_count="$3"
local notrun_count="$4"
local sect_time="$5"
+ local timestamp

if [ $sect_name == '-no-sections-' ]; then
sect_name='global'
@@ -45,8 +46,10 @@ _xunit_make_section_report()
local report=$tmp.report.xunit.$sect_name.xml
# Header
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > $REPORT_DIR/result.xml
- if [ -z "$date_time" ]; then
- date_time=$(date +"%F %T")
+ if [ -n "$date_time" ]; then
+ timestamp="$(date -Iseconds --date="$date_time")"
+ else
+ timestamp="$(date -Iseconds)"
fi

local fstests_ns="https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git"
@@ -58,7 +61,7 @@ _xunit_make_section_report()

name="xfstests"
failures="$bad_count" skipped="$notrun_count" tests="$tests_count" time="$sect_time"
- hostname="$HOST" timestamp="${date_time/ /T}">
+ hostname="$HOST" timestamp="$timestamp">
ENDL

# Properties
diff --git a/doc/xunit.xsd b/doc/xunit.xsd
index 0aef8a9839..67f586b816 100644
--- a/doc/xunit.xsd
+++ b/doc/xunit.xsd
@@ -12,7 +12,7 @@
<xs:element name="testsuite" type="testsuite"/>
<xs:simpleType name="ISO8601_DATETIME_PATTERN">
<xs:restriction base="xs:dateTime">
- <xs:pattern value="[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}"/>
+ <xs:pattern value="[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}[+-][0-9]{2}:[0-9]{2}"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="testsuites">