diff --git a/autotest.sh b/autotest.sh index 9098eb2a4..6a29a155d 100755 --- a/autotest.sh +++ b/autotest.sh @@ -239,6 +239,7 @@ if [ $SPDK_RUN_FUNCTIONAL_TEST -eq 1 ]; then if [ $SPDK_TEST_BLOBFS -eq 1 ]; then run_test "rocksdb" ./test/blobfs/rocksdb/rocksdb.sh run_test "blobstore" ./test/blobstore/blobstore.sh + run_test "blobstore_grow" ./test/blobstore/blobstore_grow/blobstore_grow.sh run_test "blobfs" ./test/blobfs/blobfs.sh run_test "hello_blob" $SPDK_EXAMPLE_DIR/hello_blob \ examples/blob/hello_world/hello_blob.json diff --git a/test/blobstore/blobstore_grow/blobstore_grow.sh b/test/blobstore/blobstore_grow/blobstore_grow.sh new file mode 100755 index 000000000..c36751eec --- /dev/null +++ b/test/blobstore/blobstore_grow/blobstore_grow.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +SYSTEM=$(uname -s) +if [ $SYSTEM = "FreeBSD" ]; then + echo "blob_io_wait.sh cannot run on FreeBSD currently." + exit 0 +fi + +testdir=$(readlink -f $(dirname $0)) +rootdir=$(readlink -f $testdir/../../..) +source $rootdir/test/common/autotest_common.sh +rpc_py="$rootdir/scripts/rpc.py" + +$rootdir/test/app/bdev_svc/bdev_svc & +bdev_svc_pid=$! + +trap 'killprocess $bdev_svc_pid; exit 1' SIGINT SIGTERM EXIT + +waitforlisten $bdev_svc_pid + +$rpc_py bdev_malloc_create --name malloc0 128 4096 +$rpc_py bdev_malloc_create --name malloc1 128 4096 +$rpc_py bdev_malloc_create --name malloc2 128 4096 +$rpc_py bdev_raid_create --name concat0 --raid-level concat --base-bdevs malloc0 --strip-size-kb 4 +$rpc_py bdev_lvol_create_lvstore --cluster-sz 4194304 --clear-method unmap concat0 lvs0 --md-pages-per-cluster-ratio 300 +free_clusters=$($rpc_py bdev_lvol_get_lvstores --lvs-name lvs0 | jq -rM '.[0].free_clusters') +test $free_clusters -eq 31 +$rpc_py bdev_raid_delete concat0 +$rpc_py bdev_raid_create --name concat0 --raid-level concat --base-bdevs "malloc0 malloc1" --strip-size-kb 4 +$rpc_py bdev_lvol_grow_lvstore -l lvs0 +free_clusters=$($rpc_py bdev_lvol_get_lvstores --lvs-name lvs0 | jq -rM '.[0].free_clusters') +test $free_clusters -eq 63 +$rpc_py bdev_lvol_create --lvs-name lvs0 --thin-provision --clear-method unmap lv0 8192 +$rpc_py bdev_raid_delete concat0 +$rpc_py bdev_raid_create --name concat0 --raid-level concat --base-bdevs "malloc0 malloc1 malloc2" --strip-size-kb 4 +$rpc_py bdev_lvol_grow_lvstore -l lvs0 +free_clusters=$($rpc_py bdev_lvol_get_lvstores --lvs-name lvs0 | jq -rM '.[0].free_clusters') +test $free_clusters -eq 95 +bdev_cnt=$($rpc_py bdev_get_bdevs --name lvs0/lv0 | jq -rM '. | length') +test $bdev_cnt -eq 1 + +killprocess $bdev_svc_pid + +trap - SIGINT SIGTERM EXIT