]>
Commit | Line | Data |
---|---|---|
9f95a23c TL |
1 | #!/usr/bin/env bash |
2 | ||
f67539c2 | 3 | curdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}")) |
9f95a23c TL |
4 | rootdir=$(readlink -f $curdir/../../..) |
5 | source $rootdir/test/common/autotest_common.sh | |
6 | ||
7 | rpc_py=$rootdir/scripts/rpc.py | |
8 | ||
9 | spdk_pid='?' | |
f67539c2 TL |
10 | function start_spdk() { |
11 | $SPDK_BIN_DIR/iscsi_tgt & | |
9f95a23c | 12 | spdk_pid=$! |
f67539c2 | 13 | trap 'killprocess $spdk_pid; exit 1' SIGINT SIGTERM EXIT |
9f95a23c TL |
14 | waitforlisten $spdk_pid |
15 | } | |
f67539c2 | 16 | function stop_spdk() { |
9f95a23c TL |
17 | killprocess $spdk_pid |
18 | trap - SIGINT SIGTERM EXIT | |
19 | } | |
20 | ||
21 | start_spdk | |
22 | ||
23 | # Hotplug case | |
24 | ||
f67539c2 TL |
25 | $rpc_py bdev_malloc_create 1 512 -b Core0 |
26 | $rpc_py bdev_malloc_create 1 512 -b Core1 | |
9f95a23c | 27 | |
f67539c2 TL |
28 | $rpc_py bdev_ocf_create C1 wt Cache Core0 |
29 | $rpc_py bdev_ocf_create C2 wt Cache Core1 | |
9f95a23c | 30 | |
f67539c2 | 31 | $rpc_py bdev_ocf_get_bdevs | jq -e \ |
9f95a23c TL |
32 | 'any(select(.started)) == false' |
33 | ||
f67539c2 | 34 | $rpc_py bdev_malloc_create 101 512 -b Cache |
9f95a23c | 35 | |
f67539c2 | 36 | $rpc_py bdev_ocf_get_bdevs | jq -e \ |
9f95a23c TL |
37 | 'all(select(.started)) == true' |
38 | ||
f67539c2 TL |
39 | #Be sure that we will not fail delete because examine is still in progress |
40 | waitforbdev C2 | |
41 | ||
9f95a23c TL |
42 | # Detaching cores |
43 | ||
f67539c2 | 44 | $rpc_py bdev_ocf_delete C2 |
9f95a23c | 45 | |
f67539c2 | 46 | $rpc_py bdev_ocf_get_bdevs C1 | jq -e \ |
9f95a23c TL |
47 | '.[0] | .started' |
48 | ||
f67539c2 | 49 | $rpc_py bdev_ocf_create C2 wt Cache Core1 |
9f95a23c | 50 | |
f67539c2 | 51 | $rpc_py bdev_ocf_get_bdevs C2 | jq -e \ |
9f95a23c TL |
52 | '.[0] | .started' |
53 | ||
54 | # Normal shutdown | |
55 | ||
56 | stop_spdk | |
57 | ||
58 | # Hotremove case | |
59 | start_spdk | |
60 | ||
f67539c2 TL |
61 | $rpc_py bdev_malloc_create 101 512 -b Cache |
62 | $rpc_py bdev_malloc_create 101 512 -b Malloc | |
63 | $rpc_py bdev_malloc_create 1 512 -b Core | |
9f95a23c | 64 | |
f67539c2 TL |
65 | $rpc_py bdev_ocf_create C1 wt Cache Malloc |
66 | $rpc_py bdev_ocf_create C2 wt Cache Core | |
9f95a23c | 67 | |
f67539c2 | 68 | $rpc_py bdev_ocf_get_bdevs Cache | jq \ |
9f95a23c TL |
69 | 'length == 2' |
70 | ||
f67539c2 | 71 | $rpc_py bdev_malloc_delete Cache |
9f95a23c | 72 | |
f67539c2 | 73 | $rpc_py bdev_ocf_get_bdevs | jq -e \ |
9f95a23c TL |
74 | '. == []' |
75 | ||
76 | # Not fully initialized shutdown | |
77 | ||
f67539c2 TL |
78 | $rpc_py bdev_ocf_create C1 wt Malloc NonExisting |
79 | $rpc_py bdev_ocf_create C2 wt Malloc NonExisting | |
80 | $rpc_py bdev_ocf_create C3 wt Malloc Core | |
9f95a23c TL |
81 | |
82 | stop_spdk |