100565ee6SVitaliy Mysak#!/usr/bin/env bash 2*eb53c232Spaul luse# SPDX-License-Identifier: BSD-3-Clause 3*eb53c232Spaul luse# Copyright (C) 2019 Intel Corporation 4*eb53c232Spaul luse# All rights reserved. 5*eb53c232Spaul luse# 625f601cfSMaciej Wawrykcurdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}")) 700565ee6SVitaliy Mysakrootdir=$(readlink -f $curdir/../../..) 800565ee6SVitaliy Mysaksource $rootdir/test/common/autotest_common.sh 900565ee6SVitaliy Mysak 1000565ee6SVitaliy Mysakrpc_py=$rootdir/scripts/rpc.py 1100565ee6SVitaliy Mysak 1200565ee6SVitaliy Mysakspdk_pid='?' 13844c8ec3SMichal Bergerfunction start_spdk() { 146b9b448eSBen Walker $SPDK_BIN_DIR/iscsi_tgt & 1500565ee6SVitaliy Mysak spdk_pid=$! 1690c84ec5SKarol Latecki trap 'killprocess $spdk_pid; exit 1' SIGINT SIGTERM EXIT 1700565ee6SVitaliy Mysak waitforlisten $spdk_pid 1800565ee6SVitaliy Mysak} 19844c8ec3SMichal Bergerfunction stop_spdk() { 20d0111963SDarek Stojaczyk killprocess $spdk_pid 2100565ee6SVitaliy Mysak trap - SIGINT SIGTERM EXIT 2200565ee6SVitaliy Mysak} 2300565ee6SVitaliy Mysak 2400565ee6SVitaliy Mysakstart_spdk 2500565ee6SVitaliy Mysak 2600565ee6SVitaliy Mysak# Hotplug case 2700565ee6SVitaliy Mysak 287964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 1 512 -b Core0 297964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 1 512 -b Core1 3000565ee6SVitaliy Mysak 31557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C1 wt Cache Core0 32557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C2 wt Cache Core1 3300565ee6SVitaliy Mysak 3495482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs | jq -e \ 3500565ee6SVitaliy Mysak 'any(select(.started)) == false' 3600565ee6SVitaliy Mysak 377964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 101 512 -b Cache 3800565ee6SVitaliy Mysak 3995482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs | jq -e \ 4000565ee6SVitaliy Mysak 'all(select(.started)) == true' 4100565ee6SVitaliy Mysak 428f80af4cSMarcin Dziegielewski#Be sure that we will not fail delete because examine is still in progress 438f80af4cSMarcin Dziegielewskiwaitforbdev C2 448f80af4cSMarcin Dziegielewski 4500565ee6SVitaliy Mysak# Detaching cores 4600565ee6SVitaliy Mysak 47557f8ff9SPawel Kaminski$rpc_py bdev_ocf_delete C2 4800565ee6SVitaliy Mysak 4995482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs C1 | jq -e \ 50bef0c6edSVitaliy Mysak '.[0] | .started' 5100565ee6SVitaliy Mysak 52557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C2 wt Cache Core1 5300565ee6SVitaliy Mysak 5495482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs C2 | jq -e \ 55bef0c6edSVitaliy Mysak '.[0] | .started' 5600565ee6SVitaliy Mysak 5700565ee6SVitaliy Mysak# Normal shutdown 5800565ee6SVitaliy Mysak 5900565ee6SVitaliy Mysakstop_spdk 6000565ee6SVitaliy Mysak 6100565ee6SVitaliy Mysak# Hotremove case 6200565ee6SVitaliy Mysakstart_spdk 6300565ee6SVitaliy Mysak 647964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 101 512 -b Cache 657964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 101 512 -b Malloc 667964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 1 512 -b Core 6700565ee6SVitaliy Mysak 68557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C1 wt Cache Malloc 69557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C2 wt Cache Core 7000565ee6SVitaliy Mysak 7195482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs Cache | jq \ 72bef0c6edSVitaliy Mysak 'length == 2' 73bef0c6edSVitaliy Mysak 7406a1b419SPawel Kaminski$rpc_py bdev_malloc_delete Cache 7500565ee6SVitaliy Mysak 7695482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs | jq -e \ 7700565ee6SVitaliy Mysak '. == []' 7800565ee6SVitaliy Mysak 7900565ee6SVitaliy Mysak# Not fully initialized shutdown 8000565ee6SVitaliy Mysak 81557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C1 wt Malloc NonExisting 82557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C2 wt Malloc NonExisting 83557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create C3 wt Malloc Core 8400565ee6SVitaliy Mysak 8500565ee6SVitaliy Mysakstop_spdk 86