From 3597757462a79437aabec85e5742fd803e8899b3 Mon Sep 17 00:00:00 2001 From: Andreas Gruenbacher Date: Mon, 11 Jan 2016 14:43:40 +1100 Subject: [PATCH] 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 Signed-off-by: Dave Chinner --- common/rc | 14 ++++++++++++++ ltp/fsx.c | 13 ++++++++----- tests/generic/091 | 12 ------------ tests/generic/263 | 12 ------------ 4 files changed, 22 insertions(+), 29 deletions(-) diff --git a/common/rc b/common/rc index d33e3fb9..51352603 100644 --- a/common/rc +++ b/common/rc @@ -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 ################################################################################ diff --git a/ltp/fsx.c b/ltp/fsx.c index 6da51e99..805fdfb0 100644 --- a/ltp/fsx.c +++ b/ltp/fsx.c @@ -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) diff --git a/tests/generic/091 b/tests/generic/091 index 30491bfc..da54397f 100755 --- a/tests/generic/091 +++ b/tests/generic/091 @@ -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` diff --git a/tests/generic/263 b/tests/generic/263 index 7584bc7c..b460c827 100755 --- a/tests/generic/263 +++ b/tests/generic/263 @@ -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` -- 2.47.3