From c7db171c014bfd18fc4c58d7ea5803c309dce283 Mon Sep 17 00:00:00 2001 From: yupeng Date: Wed, 20 Apr 2022 04:18:49 +0000 Subject: [PATCH] blobstore: add test script for blobstore grow It launches the bdev_svc app, creates an lvstore, then grows it twice. In the first grow, the lvstore has no logical volume. In the second grow, the lvstore has a logical volume. Signed-off-by: Peng Yu Change-Id: I21a7d3f1d2e6a6fe72e42f89023a8588391d2aba Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12320 Tested-by: SPDK CI Jenkins Community-CI: Broadcom CI Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- autotest.sh | 1 + .../blobstore_grow/blobstore_grow.sh | 44 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100755 test/blobstore/blobstore_grow/blobstore_grow.sh 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