On Mon, Feb 18, 2019 at 09:57:41AM +0800, Yufen Yu wrote: > For some filesystem, such as vfat, the max support file size > is 4G. We limit the max size and let the test go on running. > > Signed-off-by: Yufen Yu <yuyufen@xxxxxxxxxx> > --- > common/rc | 9 +++++++++ > tests/generic/299 | 5 +++++ > 2 files changed, 14 insertions(+) > > diff --git a/common/rc b/common/rc > index e5da6484..94148029 100644 > --- a/common/rc > +++ b/common/rc > @@ -3785,6 +3785,15 @@ _require_scratch_feature() > esac > } > > +# get mount point filesystem max file size > +_get_file_max_size() > +{ > + local mnt_point=$1 > + > + bits=`getconf FILESIZEBITS ${mnt_point}` > + echo "$((2**bits-1))" > +} Did you test this? $ echo "$((2**64-1))" -1 $ > # The maximum filesystem label length, /not/ including terminating NULL > _label_get_max() > { > diff --git a/tests/generic/299 b/tests/generic/299 > index c4d74fc8..175aa6f2 100755 > --- a/tests/generic/299 > +++ b/tests/generic/299 > @@ -33,6 +33,11 @@ NUM_JOBS=$((4*LOAD_FACTOR)) > BLK_DEV_SIZE=`blockdev --getsz $SCRATCH_DEV` > FILE_SIZE=$((BLK_DEV_SIZE * 512)) > > +# filesystem limit max file size > +max_file_size=$(_get_file_max_size $SCRATCH_MNT) > +FILE_SIZE=$([ $max_file_size -le $FILE_SIZE ] && \ > + echo "$max_file_size" || echo "$FILE_SIZE") > + It's much easier to read if you use if/then: max_file_size=$(_get_file_max_size $SCRATCH_MNT) if [ $max_file_size -lt $FILE_SIZE ]; then FILE_SIZE=$max_file_size fi Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx