|  | #!/bin/bash | 
|  | # SPDX-License-Identifier: GPL-2.0 | 
|  | # Copyright (c) 2021 Oracle.  All Rights Reserved. | 
|  |  | 
|  | # Boilerplate fstests functionality | 
|  |  | 
|  | # Standard cleanup function.  Individual tests can override this. | 
|  | _cleanup() | 
|  | { | 
|  | cd / | 
|  | rm -r -f $tmp.* | 
|  | } | 
|  |  | 
|  | # Install the supplied cleanup code as a signal handler for HUP, INT, QUIT, | 
|  | # TERM, or when the test exits.  Extra signals can be specified as subsequent | 
|  | # parameters. | 
|  | _register_cleanup() | 
|  | { | 
|  | local cleanup="$1" | 
|  | shift | 
|  |  | 
|  | test -n "$cleanup" && cleanup="${cleanup}; " | 
|  | trap "${cleanup}exit \$status" EXIT HUP INT QUIT TERM $* | 
|  | } | 
|  |  | 
|  | # Prepare to run a fstest by initializing the required global variables to | 
|  | # their defaults, sourcing common functions, registering a cleanup function, | 
|  | # and removing the $seqres.full file. | 
|  | # | 
|  | # The list of group memberships for this test (e.g. auto quick rw) must be | 
|  | # passed as arguments to this helper.  It is not necessary to name this test | 
|  | # explicitly as a member of the 'all' group. | 
|  | _begin_fstest() | 
|  | { | 
|  | if [ -n "$seq" ]; then | 
|  | echo "_begin_fstest can only be called once!" | 
|  | exit 1 | 
|  | fi | 
|  |  | 
|  | seq=`basename $0` | 
|  |  | 
|  | seqres=$RESULT_DIR/$seq | 
|  | echo "QA output created by $seq" | 
|  |  | 
|  | here=`pwd` | 
|  | tmp=/tmp/$$ | 
|  | status=1	# failure is the default! | 
|  |  | 
|  | _register_cleanup _cleanup | 
|  |  | 
|  | . ./common/rc | 
|  |  | 
|  | # remove previous $seqres.full before test | 
|  | rm -f $seqres.full $seqres.hints | 
|  |  | 
|  | } |