zfs/tests/zfs-tests/callbacks/zfs_dmesg.ksh
Rob Norris 48c9b2e79d 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
2025-08-06 09:44:49 -07:00

38 lines
1.2 KiB
Bash
Executable File

#!/bin/ksh -p
# SPDX-License-Identifier: CDDL-1.0
#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"), version 1.0.
# You may only use this file in accordance with the terms of version
# 1.0 of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source. A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#
#
# 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)
typeset lines=${1:-200}
echo "================================================================="
echo " Tailing last $lines lines of dmesg log"
echo "================================================================="
# report and reset afterwards
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"
echo "================================================================="