xref: /spdk/test/ocf/management/multicore.sh (revision eb53c23236cccb6b698b7ca70ee783da1c574b5f)
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
12spdk_pid='?'
13function start_spdk() {
14	$SPDK_BIN_DIR/iscsi_tgt &
15	spdk_pid=$!
16	trap 'killprocess $spdk_pid; exit 1' SIGINT SIGTERM EXIT
17	waitforlisten $spdk_pid
18}
19function stop_spdk() {
20	killprocess $spdk_pid
21	trap - SIGINT SIGTERM EXIT
22}
23
24start_spdk
25
26# Hotplug case
27
28$rpc_py bdev_malloc_create 1 512 -b Core0
29$rpc_py bdev_malloc_create 1 512 -b Core1
30
31$rpc_py bdev_ocf_create C1 wt Cache Core0
32$rpc_py bdev_ocf_create C2 wt Cache Core1
33
34$rpc_py bdev_ocf_get_bdevs | jq -e \
35	'any(select(.started)) == false'
36
37$rpc_py bdev_malloc_create 101 512 -b Cache
38
39$rpc_py bdev_ocf_get_bdevs | jq -e \
40	'all(select(.started)) == true'
41
42#Be sure that we will not fail delete because examine is still in progress
43waitforbdev C2
44
45# Detaching cores
46
47$rpc_py bdev_ocf_delete C2
48
49$rpc_py bdev_ocf_get_bdevs C1 | jq -e \
50	'.[0] | .started'
51
52$rpc_py bdev_ocf_create C2 wt Cache Core1
53
54$rpc_py bdev_ocf_get_bdevs C2 | jq -e \
55	'.[0] | .started'
56
57# Normal shutdown
58
59stop_spdk
60
61# Hotremove case
62start_spdk
63
64$rpc_py bdev_malloc_create 101 512 -b Cache
65$rpc_py bdev_malloc_create 101 512 -b Malloc
66$rpc_py bdev_malloc_create 1 512 -b Core
67
68$rpc_py bdev_ocf_create C1 wt Cache Malloc
69$rpc_py bdev_ocf_create C2 wt Cache Core
70
71$rpc_py bdev_ocf_get_bdevs Cache | jq \
72	'length == 2'
73
74$rpc_py bdev_malloc_delete Cache
75
76$rpc_py bdev_ocf_get_bdevs | jq -e \
77	'. == []'
78
79# Not fully initialized shutdown
80
81$rpc_py bdev_ocf_create C1 wt Malloc NonExisting
82$rpc_py bdev_ocf_create C2 wt Malloc NonExisting
83$rpc_py bdev_ocf_create C3 wt Malloc Core
84
85stop_spdk
86