#!/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 }