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