diff --git a/src/test/pmempool_transform/TEST11 b/src/test/pmempool_transform/TEST11 index 0705ee9c63e..d98c6cfeac1 100755 --- a/src/test/pmempool_transform/TEST11 +++ b/src/test/pmempool_transform/TEST11 @@ -46,6 +46,11 @@ require_dax_device_alignments $SIZE_4KB $SIZE_4KB setup +OFFSET=$(get_devdax_size 0) +ROOT_SIZE=$[OFFSET + 1024] +MAX_SIZE=$[PMEMOBJ_MAX_ALLOC_SIZE - 1024] +require_max_devdax_size 0 $MAX_SIZE + dax_device_zero LOG=out${UNITTEST_NUM}.log @@ -67,11 +72,6 @@ create_poolset $POOLSET_OUT \ AUTO:${DEVICE_DAX_PATH[0]}:x \ AUTO:${DEVICE_DAX_PATH[1]}:x -DAX_SIZE[0]=$(get_devdax_size 0) - -OFFSET=${DAX_SIZE[0]} -ROOT_SIZE=$[OFFSET + 1024] - # CLI script for writing some data hitting all the parts WRITE_SCRIPT=$DIR/write_data cat << EOF > $WRITE_SCRIPT diff --git a/src/test/pmempool_transform/TEST14 b/src/test/pmempool_transform/TEST14 index f098164174e..60f35f4cef9 100755 --- a/src/test/pmempool_transform/TEST14 +++ b/src/test/pmempool_transform/TEST14 @@ -48,6 +48,11 @@ require_dax_device_alignments $SIZE_4KB $SIZE_4KB setup +# test requires at least (size of device DAX #0 + 1G) of free space in $DIR +DAX_SIZE[0]=$(get_devdax_size 0) +SIZE_1G=$(convert_to_bytes 1G) +require_free_space $(( DAX_SIZE[0] + SIZE_1G )) + dax_device_zero LOG=out${UNITTEST_NUM}.log @@ -59,8 +64,6 @@ LAYOUT=OBJ_LAYOUT$SUFFIX POOLSET_IN=$DIR/poolset.in POOLSET_OUT=$DIR/poolset.out -DAX_SIZE[0]=$(get_devdax_size 0) - # Create poolset files create_poolset $POOLSET_IN \ AUTO:${DEVICE_DAX_PATH[0]}:x \ diff --git a/src/test/pmempool_transform/TEST15 b/src/test/pmempool_transform/TEST15 index f546b6825b5..a4c604bfa4b 100755 --- a/src/test/pmempool_transform/TEST15 +++ b/src/test/pmempool_transform/TEST15 @@ -47,6 +47,11 @@ require_dax_device_alignments $SIZE_4KB $SIZE_4KB setup +OFFSET=$(get_devdax_size 0) +ROOT_SIZE=$[OFFSET + 8192] +MAX_SIZE=$[PMEMOBJ_MAX_ALLOC_SIZE - 8192] +require_max_devdax_size 0 $MAX_SIZE + dax_device_zero LOG=out${UNITTEST_NUM}.log @@ -68,11 +73,6 @@ create_poolset $POOLSET_OUT \ AUTO:${DEVICE_DAX_PATH[0]}:x \ AUTO:${DEVICE_DAX_PATH[1]}:x -DAX_SIZE[0]=$(get_devdax_size 0) - -OFFSET=${DAX_SIZE[0]} -ROOT_SIZE=$[OFFSET + 8192] - # CLI script for writing some data hitting all the parts WRITE_SCRIPT=$DIR/write_data cat << EOF > $WRITE_SCRIPT diff --git a/src/test/pmempool_transform/TEST18 b/src/test/pmempool_transform/TEST18 index a4bf093fe6c..f5045f9481e 100755 --- a/src/test/pmempool_transform/TEST18 +++ b/src/test/pmempool_transform/TEST18 @@ -49,6 +49,11 @@ require_dax_device_alignments $SIZE_4KB $SIZE_4KB setup +# test requires at least (size of device DAX #0 + 1G) of free space in $DIR +DAX_SIZE[0]=$(get_devdax_size 0) +SIZE_1G=$(convert_to_bytes 1G) +require_free_space $(( DAX_SIZE[0] + SIZE_1G )) + dax_device_zero LOG=out${UNITTEST_NUM}.log @@ -60,8 +65,6 @@ LAYOUT=OBJ_LAYOUT$SUFFIX POOLSET_IN=$DIR/poolset.in POOLSET_OUT=$DIR/poolset.out -DAX_SIZE[0]=$(get_devdax_size 0) - # Create poolset files create_poolset $POOLSET_IN \ AUTO:${DEVICE_DAX_PATH[0]}:x \ diff --git a/src/test/unittest/unittest.sh b/src/test/unittest/unittest.sh index 6494c04eb9b..221a75b8d2a 100644 --- a/src/test/unittest/unittest.sh +++ b/src/test/unittest/unittest.sh @@ -107,6 +107,9 @@ NODES_MAX=-1 SIZE_4KB=4096 SIZE_2MB=2097152 +# PMEMOBJ limitations +PMEMOBJ_MAX_ALLOC_SIZE=17177771968 + # SSH and SCP options SSH_OPTS="-o BatchMode=yes" SCP_OPTS="-o BatchMode=yes -r -p" @@ -3465,6 +3468,20 @@ function require_free_space() { fi } +# +# require_max_devdax_size -- checks that dev dax is smaller than requested +# +# usage: require_max_devdax_size +# +function require_max_devdax_size() { + cur_sz=$(get_devdax_size 0) + max_size=$2 + if [ $cur_sz -ge $max_size ]; then + msg "$UNITTEST_NAME: SKIP: DevDAX $1 is too big for this test (max $2 required)" + exit 0 + fi +} + # # require_nfit_tests_enabled - check if tests using the nfit_test kernel module are not enabled #