2019-02-18 18:32:26 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2019-11-18 14:55:26 +00:00
|
|
|
curdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}"))
|
2019-02-18 18:32:26 +00:00
|
|
|
rootdir=$(readlink -f $curdir/../../..)
|
|
|
|
source $rootdir/test/common/autotest_common.sh
|
|
|
|
|
|
|
|
rpc_py=$rootdir/scripts/rpc.py
|
|
|
|
|
|
|
|
spdk_pid='?'
|
2020-05-07 11:27:06 +00:00
|
|
|
function start_spdk() {
|
2020-05-11 21:15:03 +00:00
|
|
|
$SPDK_BIN_DIR/iscsi_tgt &
|
2019-02-18 18:32:26 +00:00
|
|
|
spdk_pid=$!
|
2019-08-09 08:46:01 +00:00
|
|
|
trap 'killprocess $spdk_pid; exit 1' SIGINT SIGTERM EXIT
|
2019-02-18 18:32:26 +00:00
|
|
|
waitforlisten $spdk_pid
|
|
|
|
}
|
2020-05-07 11:27:06 +00:00
|
|
|
function stop_spdk() {
|
2019-04-03 13:44:09 +00:00
|
|
|
killprocess $spdk_pid
|
2019-02-18 18:32:26 +00:00
|
|
|
trap - SIGINT SIGTERM EXIT
|
|
|
|
}
|
|
|
|
|
|
|
|
start_spdk
|
|
|
|
|
|
|
|
# Hotplug case
|
|
|
|
|
2020-05-07 11:27:06 +00:00
|
|
|
$rpc_py bdev_malloc_create 1 512 -b Core0
|
|
|
|
$rpc_py bdev_malloc_create 1 512 -b Core1
|
2019-02-18 18:32:26 +00:00
|
|
|
|
2019-08-28 08:30:48 +00:00
|
|
|
$rpc_py bdev_ocf_create C1 wt Cache Core0
|
|
|
|
$rpc_py bdev_ocf_create C2 wt Cache Core1
|
2019-02-18 18:32:26 +00:00
|
|
|
|
2019-08-28 08:43:22 +00:00
|
|
|
$rpc_py bdev_ocf_get_bdevs | jq -e \
|
2019-02-18 18:32:26 +00:00
|
|
|
'any(select(.started)) == false'
|
|
|
|
|
2019-08-09 11:15:35 +00:00
|
|
|
$rpc_py bdev_malloc_create 101 512 -b Cache
|
2019-02-18 18:32:26 +00:00
|
|
|
|
2019-08-28 08:43:22 +00:00
|
|
|
$rpc_py bdev_ocf_get_bdevs | jq -e \
|
2019-02-18 18:32:26 +00:00
|
|
|
'all(select(.started)) == true'
|
|
|
|
|
2019-09-26 10:38:36 +00:00
|
|
|
#Be sure that we will not fail delete because examine is still in progress
|
|
|
|
waitforbdev C2
|
|
|
|
|
2019-02-18 18:32:26 +00:00
|
|
|
# Detaching cores
|
|
|
|
|
2020-05-07 11:27:06 +00:00
|
|
|
$rpc_py bdev_ocf_delete C2
|
2019-02-18 18:32:26 +00:00
|
|
|
|
2019-08-28 08:43:22 +00:00
|
|
|
$rpc_py bdev_ocf_get_bdevs C1 | jq -e \
|
2019-03-11 17:16:32 +00:00
|
|
|
'.[0] | .started'
|
2019-02-18 18:32:26 +00:00
|
|
|
|
2019-08-28 08:30:48 +00:00
|
|
|
$rpc_py bdev_ocf_create C2 wt Cache Core1
|
2019-02-18 18:32:26 +00:00
|
|
|
|
2019-08-28 08:43:22 +00:00
|
|
|
$rpc_py bdev_ocf_get_bdevs C2 | jq -e \
|
2019-03-11 17:16:32 +00:00
|
|
|
'.[0] | .started'
|
2019-02-18 18:32:26 +00:00
|
|
|
|
|
|
|
# Normal shutdown
|
|
|
|
|
|
|
|
stop_spdk
|
|
|
|
|
|
|
|
# Hotremove case
|
|
|
|
start_spdk
|
|
|
|
|
2019-08-09 11:15:35 +00:00
|
|
|
$rpc_py bdev_malloc_create 101 512 -b Cache
|
|
|
|
$rpc_py bdev_malloc_create 101 512 -b Malloc
|
2020-05-07 11:27:06 +00:00
|
|
|
$rpc_py bdev_malloc_create 1 512 -b Core
|
2019-02-18 18:32:26 +00:00
|
|
|
|
2019-08-28 08:30:48 +00:00
|
|
|
$rpc_py bdev_ocf_create C1 wt Cache Malloc
|
|
|
|
$rpc_py bdev_ocf_create C2 wt Cache Core
|
2019-02-18 18:32:26 +00:00
|
|
|
|
2019-08-28 08:43:22 +00:00
|
|
|
$rpc_py bdev_ocf_get_bdevs Cache | jq \
|
2019-03-11 17:16:32 +00:00
|
|
|
'length == 2'
|
|
|
|
|
2019-08-19 08:19:29 +00:00
|
|
|
$rpc_py bdev_malloc_delete Cache
|
2019-02-18 18:32:26 +00:00
|
|
|
|
2019-08-28 08:43:22 +00:00
|
|
|
$rpc_py bdev_ocf_get_bdevs | jq -e \
|
2019-02-18 18:32:26 +00:00
|
|
|
'. == []'
|
|
|
|
|
|
|
|
# Not fully initialized shutdown
|
|
|
|
|
2019-08-28 08:30:48 +00:00
|
|
|
$rpc_py bdev_ocf_create C1 wt Malloc NonExisting
|
|
|
|
$rpc_py bdev_ocf_create C2 wt Malloc NonExisting
|
|
|
|
$rpc_py bdev_ocf_create C3 wt Malloc Core
|
2019-02-18 18:32:26 +00:00
|
|
|
|
|
|
|
stop_spdk
|