[PATCH 14/14] report: allow test runners to inject arbitrary values

Darrick J. Wong
2023-02-15T01:47:11Z

Per Ted's request, add to the test section reporting code the ability
for test runners to point to a file containing colon-separated key value
pairs. These key value pairs will be recorded in the report file as
extra properties.

Requested-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
README | 3 +++
common/report | 10 ++++++++++
2 files changed, 13 insertions(+)

diff --git a/README b/README
index 4c4f22f853..a8c67cea4d 100644
--- a/README
+++ b/README
@@ -245,6 +245,9 @@ Misc:
this option is supported for all filesystems currently only -overlay is
expected to run without issues. For other filesystems additional patches
and fixes to the test suite might be needed.
+ - Set REPORT_VARS_FILE to a file containing colon-separated name-value pairs
+ that will be recorded in the test section report. Names must be unique.
+ Whitespace surrounding the colon will be removed.

______________________
USING THE FSQA SUITE
diff --git a/common/report b/common/report
index e22e2f8558..4b45f7c803 100644
--- a/common/report
+++ b/common/report
@@ -44,9 +44,19 @@ __generate_blockdev_report_vars() {
REPORT_VARS["${bdev_var}_ZONES"]="$(cat "$sysfs_bdev/queue/nr_zones" 2>/dev/null)"
}

+__import_report_vars() {
+ local fname="$1"
+
+ while IFS=':' read key value; do
+ REPORT_VARS["${key%% }"]="${value## }"
+ done < "$1"
+}
+
# Fill out REPORT_VARS with tidbits about our test runner configuration.
# Caller is required to declare REPORT_VARS to be an associative array.
__generate_report_vars() {
+ test "$REPORT_VARS_FILE" && __import_report_vars "$REPORT_VARS_FILE"
+
REPORT_VARS["ARCH"]="$(uname -m)"
REPORT_VARS["KERNEL"]="$(uname -r)"
REPORT_VARS["CPUS"]="$(getconf _NPROCESSORS_ONLN 2>/dev/null)"