10487d3a4SVitaliy 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]}")) 70487d3a4SVitaliy Mysakrootdir=$(readlink -f $curdir/../../..) 80487d3a4SVitaliy Mysaksource $rootdir/test/common/autotest_common.sh 90487d3a4SVitaliy Mysak 100487d3a4SVitaliy Mysakrpc_py=$rootdir/scripts/rpc.py 110487d3a4SVitaliy Mysak 12844c8ec3SMichal Bergerfunction bdev_check_claimed() { 1347bc5870SJim Harris if [ "$($rpc_py bdev_get_bdevs -b "$@" | jq '.[0].claimed')" = "true" ]; then 14844c8ec3SMichal Berger return 0 150487d3a4SVitaliy Mysak else 16844c8ec3SMichal Berger return 1 170487d3a4SVitaliy Mysak fi 180487d3a4SVitaliy Mysak} 190487d3a4SVitaliy Mysak 206b9b448eSBen Walker$SPDK_BIN_DIR/iscsi_tgt & 210487d3a4SVitaliy Mysakspdk_pid=$! 220487d3a4SVitaliy Mysak 2390c84ec5SKarol Lateckitrap 'killprocess $spdk_pid; exit 1' SIGINT SIGTERM EXIT 240487d3a4SVitaliy Mysak 250487d3a4SVitaliy Mysakwaitforlisten $spdk_pid 260487d3a4SVitaliy Mysak 277964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 101 512 -b Malloc0 287964f1dfSPawel Kaminski$rpc_py bdev_malloc_create 101 512 -b Malloc1 290487d3a4SVitaliy Mysak 30557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create PartCache wt Malloc0 NonExisting 310487d3a4SVitaliy Mysak 3295482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs PartCache | jq -e \ 33bef0c6edSVitaliy Mysak '.[0] | .started == false and .cache.attached and .core.attached == false' 34bef0c6edSVitaliy Mysak 3595482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs NonExisting | jq -e \ 36bef0c6edSVitaliy Mysak '.[0] | .name == "PartCache"' 37199080cfSVitaliy Mysak 380487d3a4SVitaliy Mysakif ! bdev_check_claimed Malloc0; then 39844c8ec3SMichal Berger echo >&2 "Base device expected to be claimed now" 400487d3a4SVitaliy Mysak exit 1 410487d3a4SVitaliy Mysakfi 420487d3a4SVitaliy Mysak 43557f8ff9SPawel Kaminski$rpc_py bdev_ocf_delete PartCache 440487d3a4SVitaliy Mysakif bdev_check_claimed Malloc0; then 45844c8ec3SMichal Berger echo >&2 "Base device is not expected to be claimed now" 460487d3a4SVitaliy Mysak exit 1 470487d3a4SVitaliy Mysakfi 480487d3a4SVitaliy Mysak 498fcb8b96SRafal Stefanowski$rpc_py bdev_ocf_create FullCache wt Malloc0 Malloc1 500487d3a4SVitaliy Mysak 5195482c54SPawel Kaminski$rpc_py bdev_ocf_get_bdevs FullCache | jq -e \ 52bef0c6edSVitaliy Mysak '.[0] | .started and .cache.attached and .core.attached' 53199080cfSVitaliy Mysak 540487d3a4SVitaliy Mysakif ! (bdev_check_claimed Malloc0 && bdev_check_claimed Malloc1); then 55844c8ec3SMichal Berger echo >&2 "Base devices expected to be claimed now" 560487d3a4SVitaliy Mysak exit 1 570487d3a4SVitaliy Mysakfi 580487d3a4SVitaliy Mysak 59557f8ff9SPawel Kaminski$rpc_py bdev_ocf_delete FullCache 600487d3a4SVitaliy Mysakif bdev_check_claimed Malloc0 && bdev_check_claimed Malloc1; then 61844c8ec3SMichal Berger echo >&2 "Base devices are not expected to be claimed now" 620487d3a4SVitaliy Mysak exit 1 630487d3a4SVitaliy Mysakfi 640487d3a4SVitaliy Mysak 658fcb8b96SRafal Stefanowski$rpc_py bdev_ocf_create HotCache wt Malloc0 Malloc1 669f792ca0SVitaliy Mysak 679f792ca0SVitaliy Mysakif ! (bdev_check_claimed Malloc0 && bdev_check_claimed Malloc1); then 68844c8ec3SMichal Berger echo >&2 "Base devices expected to be claimed now" 699f792ca0SVitaliy Mysak exit 1 709f792ca0SVitaliy Mysakfi 719f792ca0SVitaliy Mysak 7206a1b419SPawel Kaminski$rpc_py bdev_malloc_delete Malloc0 739f792ca0SVitaliy Mysak 749f792ca0SVitaliy Mysakif bdev_check_claimed Malloc1; then 75844c8ec3SMichal Berger echo >&2 "Base device is not expected to be claimed now" 769f792ca0SVitaliy Mysak exit 1 779f792ca0SVitaliy Mysakfi 789f792ca0SVitaliy Mysak 7947bc5870SJim Harrisstatus=$($rpc_py bdev_get_bdevs) 809f792ca0SVitaliy Mysakgone=$(echo $status | jq 'map(select(.name == "HotCache")) == []') 819f792ca0SVitaliy Mysakif [[ $gone == false ]]; then 82844c8ec3SMichal Berger echo >&2 "OCF bdev is expected to unregister" 839f792ca0SVitaliy Mysak exit 1 849f792ca0SVitaliy Mysakfi 859f792ca0SVitaliy Mysak 860487d3a4SVitaliy Mysak# check if shutdown of running CAS bdev is ok 87557f8ff9SPawel Kaminski$rpc_py bdev_ocf_create PartCache wt NonExisting Malloc1 880487d3a4SVitaliy Mysak 890487d3a4SVitaliy Mysaktrap - SIGINT SIGTERM EXIT 900487d3a4SVitaliy Mysak 910487d3a4SVitaliy Mysakkillprocess $spdk_pid 92