]>
Commit | Line | Data |
---|---|---|
9f95a23c TL |
1 | #!/usr/bin/env bash |
2 | ||
f67539c2 | 3 | curdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}")) |
9f95a23c | 4 | rootdir=$(readlink -f $curdir/../../..) |
f67539c2 TL |
5 | source $rootdir/test/ocf/common.sh |
6 | ||
7 | source $rootdir/scripts/common.sh | |
9f95a23c TL |
8 | source $rootdir/test/common/autotest_common.sh |
9 | ||
10 | rpc_py=$rootdir/scripts/rpc.py | |
11 | ||
f67539c2 TL |
12 | $rootdir/scripts/setup.sh |
13 | ||
14 | mapfile -t config < <("$rootdir/scripts/gen_nvme.sh" --json) | |
15 | # Drop anything from last closing ] so we can inject our own config pieces ... | |
16 | config=("${config[@]::${#config[@]}-2}") | |
17 | # ... and now convert entire array to a single string item | |
18 | config=("${config[*]}") | |
19 | ||
20 | config+=( | |
21 | "$( | |
22 | cat <<- JSON | |
23 | { | |
24 | "method": "bdev_split_create", | |
25 | "params": { | |
26 | "base_bdev": "Nvme0n1", | |
27 | "split_count": 7, | |
28 | "split_size_mb": 128 | |
29 | } | |
30 | } | |
31 | JSON | |
32 | )" | |
33 | ) | |
34 | ||
35 | # First ']}' closes our config and bdev subsystem blocks | |
36 | jq . <<- CONFIG > "$curdir/config" | |
37 | {"subsystems":[ | |
38 | $( | |
39 | IFS="," | |
40 | printf '%s\n' "${config[*]}" | |
41 | ) | |
42 | ]}]} | |
43 | CONFIG | |
44 | ||
45 | # Clear nvme device which we will use in test | |
46 | clear_nvme | |
47 | ||
48 | "$SPDK_BIN_DIR/iscsi_tgt" --json "$curdir/config" & | |
9f95a23c TL |
49 | spdk_pid=$! |
50 | ||
51 | waitforlisten $spdk_pid | |
52 | ||
53 | # Create ocf on persistent storage | |
54 | ||
f67539c2 TL |
55 | $rpc_py bdev_ocf_create ocfWT wt Nvme0n1p0 Nvme0n1p1 |
56 | $rpc_py bdev_ocf_create ocfPT pt Nvme0n1p2 Nvme0n1p3 | |
57 | $rpc_py bdev_ocf_create ocfWB0 wb Nvme0n1p4 Nvme0n1p5 | |
58 | $rpc_py bdev_ocf_create ocfWB1 wb Nvme0n1p4 Nvme0n1p6 | |
9f95a23c TL |
59 | |
60 | # Sorting bdevs because we dont guarantee that they are going to be | |
61 | # in the same order after shutdown | |
f67539c2 | 62 | ($rpc_py bdev_ocf_get_bdevs | jq '(.. | arrays) |= sort') > ./ocf_bdevs |
9f95a23c TL |
63 | |
64 | trap - SIGINT SIGTERM EXIT | |
65 | ||
66 | killprocess $spdk_pid | |
67 | ||
68 | # Check for ocf persistency after restart | |
f67539c2 | 69 | "$SPDK_BIN_DIR/iscsi_tgt" --json "$curdir/config" & |
9f95a23c TL |
70 | spdk_pid=$! |
71 | ||
f67539c2 | 72 | trap 'killprocess $spdk_pid; rm -f $curdir/config ocf_bdevs ocf_bdevs_verify; exit 1' SIGINT SIGTERM EXIT |
9f95a23c TL |
73 | |
74 | waitforlisten $spdk_pid | |
f67539c2 | 75 | sleep 5 |
9f95a23c TL |
76 | |
77 | # OCF should be loaded now as well | |
78 | ||
f67539c2 | 79 | ($rpc_py bdev_ocf_get_bdevs | jq '(.. | arrays) |= sort') > ./ocf_bdevs_verify |
9f95a23c TL |
80 | |
81 | diff ocf_bdevs ocf_bdevs_verify | |
82 | ||
83 | trap - SIGINT SIGTERM EXIT | |
84 | ||
85 | killprocess $spdk_pid | |
f67539c2 TL |
86 | rm -f $curdir/config ocf_bdevs ocf_bdevs_verify |
87 | ||
88 | clear_nvme $bdf |