Files
apfstests/tests/btrfs/028
T
Qu Wenruo 8e5bf2d06f btrfs/028: Don't pollute golden output for killing already finished process
Sometimes on fast enough test vm, btrfs/028 fails like:

  btrfs/028 31s ... - output mismatch (see /home/adam/xfstests-dev/results//btrfs/028.out.bad)
    --- tests/btrfs/028.out     2019-07-22 14:13:44.646666660 +0800
    +++ /home/adam/xfstests-dev/results//btrfs/028.out.bad      2019-09-18 14:14:45.442131411 +0800
    @@ -1,2 +1,3 @@
     QA output created by 028
    +/home/adam/xfstests-dev/tests/btrfs/028: line 64: kill: (2459) - No such process
     Silence is golden
    ...

It's caused by killing already finished process.

There is no need for kill command to pollute the golden output, so
just redirect all of its stdout and stderr to null.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2019-09-21 22:16:41 +08:00

80 lines
1.8 KiB
Bash
Executable File

#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2016 Fujitsu. All Rights Reserved.
#
# FS QA Test 028
#
# Test if qgroup can handle extent de-reference during reallocation.
# "extent de-reference" means that reducing an extent's reference count
# or freeing an extent.
# Although current qgroup can handle it, we still need to prevent any
# regression which may break current qgroup.
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
_cleanup()
{
cd /
rm -f $tmp.*
}
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
# remove previous $seqres.full before test
rm -f $seqres.full
# real QA test starts here
_supported_fs btrfs
_supported_os Linux
_require_scratch
_require_btrfs_qgroup_report
_scratch_mkfs >/dev/null
_scratch_mount
_run_btrfs_util_prog quota enable $SCRATCH_MNT
_run_btrfs_util_prog quota rescan -w $SCRATCH_MNT
# Increase the probability of generating de-refer extent, and decrease
# other.
args=`_scale_fsstress_args -z \
-f write=10 -f unlink=10 \
-f creat=10 -f fsync=10 \
-f fsync=10 -n 100000 -p 2 \
-d $SCRATCH_MNT/stress_dir`
echo "Run fsstress $args" >>$seqres.full
$FSSTRESS_PROG $args >/dev/null 2>&1 &
fsstress_pid=$!
echo "Start balance" >>$seqres.full
_btrfs_stress_balance -d $SCRATCH_MNT >/dev/null 2>&1 &
balance_pid=$!
# 30s is enough to trigger bug
sleep $((30*$TIME_FACTOR))
kill $fsstress_pid $balance_pid &> /dev/null
wait
# kill _btrfs_stress_balance can't end balance, so call btrfs balance cancel
# to cancel running or paused balance.
$BTRFS_UTIL_PROG balance cancel $SCRATCH_MNT &> /dev/null
_run_btrfs_util_prog filesystem sync $SCRATCH_MNT
_scratch_unmount
# qgroup will be checked at _check_scratch_fs() by fstest.
echo "Silence is golden"
status=0
exit