summaryrefslogtreecommitdiffstats
path: root/tests/test-runner/include
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2017-04-12 13:36:48 -0700
committerGitHub <[email protected]>2017-04-12 13:36:48 -0700
commit00481e7dad1d5608ae244eb053517e2c36d9a6de (patch)
treeb3491e29349bcfa219906a11385a71d3168d9bd6 /tests/test-runner/include
parent120ff39a75ad52efc359308a5e128a58998dd2f3 (diff)
OpenZFS 7503 - zfs-test should tail ::zfs_dbgmsg on test failure
Authored by: Pavel Zakharov <[email protected]> Reviewed by: John Kennedy <[email protected]> Reviewed by: Matt Ahrens <[email protected]> Approved by: Gordon Ross <[email protected]> Reviewed-by: Giuseppe Di Natale <[email protected]> Reviewed-by: George Melikov <[email protected]> Ported-by: Brian Behlendorf <[email protected]> Porting Notes: - Enable internal log for DEBUG builds and in zfs-tests.sh. - callbacks/zfs_dbgmsg.ksh - Dump interal log via kstat. - callbacks/zfs_dmesg.ksh - Dump dmesg log. - default.cfg - 'Test Suite Specific Commands' dropped. OpenZFS-issue: https://www.illumos.org/issues/7503 OpenZFS-commit: https://github.com/openzfs/openzfs/commit/55a1300 Closes #6002
Diffstat (limited to 'tests/test-runner/include')
-rw-r--r--tests/test-runner/include/logapi.shlib22
1 files changed, 21 insertions, 1 deletions
diff --git a/tests/test-runner/include/logapi.shlib b/tests/test-runner/include/logapi.shlib
index 10aaaf30e..d9f276e0e 100644
--- a/tests/test-runner/include/logapi.shlib
+++ b/tests/test-runner/include/logapi.shlib
@@ -24,7 +24,7 @@
# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
-# Copyright (c) 2012 by Delphix. All rights reserved.
+# Copyright (c) 2012, 2016 by Delphix. All rights reserved.
#
. ${STF_TOOLS}/include/stf.shlib
@@ -392,6 +392,22 @@ function log_other
# Internal functions
#
+# Execute custom callback scripts on test failure
+#
+# callback script paths are stored in TESTFAIL_CALLBACKS, delimited by ':'.
+
+function _execute_testfail_callbacks
+{
+ typeset callback
+
+ print "$TESTFAIL_CALLBACKS:" | while read -d ":" callback; do
+ if [[ -n "$callback" ]] ; then
+ log_note "Performing test-fail callback ($callback)"
+ $callback
+ fi
+ done
+}
+
# Perform cleanup and exit
#
# $1 - stf exit code
@@ -402,6 +418,10 @@ function _endlog
typeset logfile="/tmp/log.$$"
_recursive_output $logfile
+ if [[ $1 == $STF_FAIL ]] ; then
+ _execute_testfail_callbacks
+ fi
+
if [[ -n $_CLEANUP ]] ; then
typeset cleanup=$_CLEANUP
log_onexit ""