mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
fsx: Small improvements and fixes
Move the run_fsx shell function into common/rc. Fix it to avoid duplicate output on errors. Write the actual fsx parameters used into $seqres.full instead of the BSIZE and PSIZE placeholders. Include the symbolic fallocate mode in fsx error messages instead of the numeric value. Use fprintf(stderr, ...) instead of warn() when including strerror(errno) doesn't make sense. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
committed by
Dave Chinner
parent
b7fd3f05d6
commit
3597757462
@@ -3343,6 +3343,20 @@ get_page_size()
|
||||
}
|
||||
|
||||
|
||||
run_fsx()
|
||||
{
|
||||
echo fsx $@
|
||||
args=`echo $@ | sed -e "s/ BSIZE / $bsize /g" -e "s/ PSIZE / $psize /g"`
|
||||
set -- $here/ltp/fsx $args $FSX_AVOID $TEST_DIR/junk
|
||||
echo "$@" >>$seqres.full
|
||||
rm -f $TEST_DIR/junk
|
||||
"$@" 2>&1 | tee -a $seqres.full >$tmp.fsx
|
||||
if [ ${PIPESTATUS[0]} -ne 0 ]; then
|
||||
cat $tmp.fsx
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
init_rc
|
||||
|
||||
################################################################################
|
||||
|
||||
@@ -1557,16 +1557,20 @@ int aio_rw(int rw, int fd, char *buf, unsigned len, unsigned offset)
|
||||
|
||||
#endif
|
||||
|
||||
#define test_fallocate(mode) __test_fallocate(mode, #mode)
|
||||
|
||||
int
|
||||
test_fallocate(int mode)
|
||||
__test_fallocate(int mode, const char *mode_str)
|
||||
{
|
||||
#ifdef HAVE_LINUX_FALLOC_H
|
||||
int ret = 0;
|
||||
if (!lite) {
|
||||
if (fallocate(fd, mode, 0, 1) && errno == EOPNOTSUPP) {
|
||||
if(!quiet)
|
||||
warn("main: filesystem does not support "
|
||||
"fallocate mode 0x%x, disabling!\n", mode);
|
||||
fprintf(stderr,
|
||||
"main: filesystem does not support "
|
||||
"fallocate mode %s, disabling!\n",
|
||||
mode_str);
|
||||
} else {
|
||||
ret = 1;
|
||||
ftruncate(fd, 0);
|
||||
@@ -1862,8 +1866,7 @@ main(int argc, char **argv)
|
||||
if (keep_size_calls)
|
||||
keep_size_calls = test_fallocate(FALLOC_FL_KEEP_SIZE);
|
||||
if (punch_hole_calls)
|
||||
punch_hole_calls = test_fallocate(FALLOC_FL_PUNCH_HOLE |
|
||||
FALLOC_FL_KEEP_SIZE);
|
||||
punch_hole_calls = test_fallocate(FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE);
|
||||
if (zero_range_calls)
|
||||
zero_range_calls = test_fallocate(FALLOC_FL_ZERO_RANGE);
|
||||
if (collapse_range_calls)
|
||||
|
||||
@@ -43,18 +43,6 @@ _require_odirect
|
||||
|
||||
rm -f $seqres.full
|
||||
|
||||
run_fsx()
|
||||
{
|
||||
echo fsx $@ | tee -a $seqres.full
|
||||
args=`echo $@ | sed -e "s/ BSIZE / $bsize /g" -e "s/ PSIZE / $psize /g"`
|
||||
rm -f $TEST_DIR/junk
|
||||
$here/ltp/fsx $args $FSX_AVOID $TEST_DIR/junk >>$seqres.full 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
cat $seqres.full
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
psize=`$here/src/feature -s`
|
||||
bsize=`_min_dio_alignment $TEST_DEV`
|
||||
|
||||
|
||||
@@ -43,18 +43,6 @@ _require_odirect
|
||||
|
||||
rm -f $seqres.full
|
||||
|
||||
run_fsx()
|
||||
{
|
||||
echo fsx $@ | tee -a $seqres.full
|
||||
args=`echo $@ | sed -e "s/ BSIZE / $bsize /g" -e "s/ PSIZE / $psize /g"`
|
||||
rm -f $TEST_DIR/junk
|
||||
$here/ltp/fsx $args $FSX_AVOID $TEST_DIR/junk >>$seqres.full 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
cat $seqres.full
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
psize=`$here/src/feature -s`
|
||||
bsize=`_min_dio_alignment $TEST_DEV`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user