On Wed, Dec 17, 2014 at 04:30:47PM +0800, Liu Bo wrote: > This is a regression test of > 'commit fcebe4562dec ("Btrfs: rework qgroup accounting")' > > It can produce qgroup related warnings. > > The fix is https://patchwork.kernel.org/patch/5499981/ > "Btrfs: fix a warning of qgroup account on shared extents" .... > +#! /bin/bash > +# FS QA Test No. 017 > +# > +# Regression of 'commit fcebe4562dec ("Btrfs: rework qgroup accounting")', > +# this will throw a warning into dmesg. > +# > +# For more details, the fix is https://patchwork.kernel.org/patch/5499981/ > +# "Btrfs: fix a warning of qgroup account on shared extents" Please describe the test directly. > + > +_need_to_be_root > +_supported_fs btrfs > +_supported_os Linux > +_require_scratch > +_require_cloner > + > +run_check _scratch_mkfs "--nodesize 4096" > +run_check _scratch_mount No, please don't use run_check like this. Errors will end up in the output file, and that will cause the test to fail. > +run_check $XFS_IO_PROG -f -d -c "pwrite 0 8K" $SCRATCH_MNT/foo Same - filter the output, and errors will be verbose and cause a failure. > + > +_run_btrfs_util_prog subvolume snapshot $SCRATCH_MNT $SCRATCH_MNT/snap > + > +run_check $CLONER_PROG -s 0 -d 0 -l 8192 $SCRATCH_MNT/foo $SCRATCH_MNT/foo-reflink > +run_check $CLONER_PROG -s 0 -d 0 -l 8192 $SCRATCH_MNT/foo $SCRATCH_MNT/snap/foo-reflink > +run_check $CLONER_PROG -s 0 -d 0 -l 8192 $SCRATCH_MNT/foo $SCRATCH_MNT/snap/foo-reflink2 Filter the output, not "run_check". If CLONER_PROG is silent when it fails, then it is broken and needs fixing because users need to know that something failed and they don't check exit codes. > +_run_btrfs_util_prog quota enable $SCRATCH_MNT > +_run_btrfs_util_prog quota rescan -w $SCRATCH_MNT > + > +rm -fr $SCRATCH_MNT/* >/dev/null 2>&1 Don't redirect the output. If an unlink fails, we want to know about it. > +_run_btrfs_util_prog filesystem sync $SCRATCH_MNT What's wrong with "sync"? > +$BTRFS_UTIL_PROG qgroup show $SCRATCH_MNT | $SED_PROG -n '/[0-9]/p' | $AWK_PROG '{print $2" "$3}' You can do regex matches with awk. Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html