ZTS: include microsecond timestamps on all output

When reviewing test output after a failure, it's often quite difficult
to work out the order and timing of events, and to correlate test suite
output with kernel logs.

This adds timestamps to ZTS output to help with this, in three places:

- all of the standard log_XXX functions ultimately end up in _printline,
  which now prefixes output with a timestamp. An escape hatch
  environment variable is provided for user_cmd, which often calls the
  logging functions while also depending on the captured output.

- the test runner logging function log() also now prefixes its output
  with a timestamp.

- on failure, when capturing the kernel log in zfs_dmesg.ksh, the "iso"
  time format is requested.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de>
Signed-off-by: Rob Norris <rob.norris@klarasystems.com>
Closes #17045
This commit is contained in:
Rob Norris
2025-02-05 00:47:50 +11:00
committed by Brian Behlendorf
parent 82a0868ce4
commit 245adb6a4f
5 changed files with 22 additions and 5 deletions
+6 -1
View File
@@ -15,6 +15,7 @@
#
# Copyright (c) 2016 by Delphix. All rights reserved.
# Copyright (c) 2017 Lawrence Livermore National Security, LLC.
# Copyright (c) 2025, Klara, Inc.
#
# $1: number of lines to output (default: 200)
@@ -25,7 +26,11 @@ echo " Tailing last $lines lines of dmesg log"
echo "================================================================="
# report and reset afterwards
sudo dmesg -c | tail -n $lines
dmesg_args="-c"
if [[ $(uname) = "Linux" ]] ; then
dmesg_args="$dmesg_args --time-format=iso"
fi
sudo dmesg $dmesg_args | tail -n $lines
echo "================================================================="
echo " End of dmesg log"