1#!/usr/bin/env bash 2 3curdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}")) 4rootdir=$(readlink -f $curdir/../../..) 5source $rootdir/test/common/autotest_common.sh 6 7rpc_py=$rootdir/scripts/rpc.py 8 9rm -f aio* 10truncate -s 128M aio0 11truncate -s 128M aio1 12 13jq . <<- JSON > "$curdir/config" 14 { 15 "subsystems": [ 16 { 17 "subsystem": "bdev", 18 "config": [ 19 { 20 "method": "bdev_aio_create", 21 "params": { 22 "name": "ai0", 23 "block_size": 512, 24 "filename": "./aio0" 25 } 26 }, 27 { 28 "method": "bdev_aio_create", 29 "params": { 30 "name": "aio1", 31 "block_size": 512, 32 "filename": "./aio1" 33 } 34 }, 35 { 36 "method": "bdev_wait_for_examine" 37 } 38 ] 39 } 40 ] 41 } 42JSON 43 44"$SPDK_BIN_DIR/iscsi_tgt" --json "$curdir/config" & 45spdk_pid=$! 46 47waitforlisten $spdk_pid 48 49# Create ocf on persistent storage 50 51$rpc_py bdev_ocf_create ocfWT wt aio0 aio1 52 53# Check that ocfWT was created properly 54 55$rpc_py bdev_ocf_get_bdevs | jq -r '.[] .name' | grep -qw ocfWT 56 57# Remove ocfWT, after delete via rpc ocf bdev should not load on next app start 58 59$rpc_py bdev_ocf_delete ocfWT 60 61# Check that ocfWT was deleted properly 62 63[[ -z $("$rpc_py" bdev_ocf_get_bdevs | jq -r '.[] | select(.name == "ocfWT") | .name') ]] 64 65trap - SIGINT SIGTERM EXIT 66 67killprocess $spdk_pid 68 69# Check for ocfWT was deleted permanently 70"$SPDK_BIN_DIR/iscsi_tgt" --json "$curdir/config" & 71spdk_pid=$! 72 73trap 'killprocess $spdk_pid; rm -f aio* $curdir/config ocf_bdevs ocf_bdevs_verify; exit 1' SIGINT SIGTERM EXIT 74 75waitforlisten $spdk_pid 76 77# Check that ocfWT was not loaded on app start 78 79[[ -z $("$rpc_py" bdev_ocf_get_bdevs | jq -r '.[] | select(name == "ocfWT") | .name') ]] 80 81trap - SIGINT SIGTERM EXIT 82 83killprocess $spdk_pid 84rm -f aio* $curdir/config ocf_bdevs ocf_bdevs_verify 85