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