numam-spdk/test/ocf/integrity/fio-modes.sh
Tomasz Zawadzki 8c3e71f0f9 script/gen_nvme: do not generate legacy configuration
gen_nvme.sh will no longer generate the legacy configuration.
"--json" option will still work for any current users of the script.

Tests were modified to no longer use the "--json" option.
Meanwhile others were simplified with switch to "--json-with-subsystems".

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: I8450be98660e54c64c27d8401fc40d649f9403ea
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4802
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
2020-10-22 17:08:41 +00:00

91 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
curdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}"))
rootdir=$(readlink -f $curdir/../../..)
source $rootdir/test/ocf/common.sh
function fio_verify() {
fio_bdev $curdir/test.fio --aux-path=/tmp/ --ioengine=spdk_bdev "$@"
}
function cleanup() {
rm -f $curdir/modes.conf
}
# Clear nvme device which we will use in test
clear_nvme
trap "cleanup; exit 1" SIGINT SIGTERM EXIT
# Building config is not backtrace worthy ...
xtrace_disable
config=() ocf_names=() ocf_modes=()
ocf_names[1]=PT_Nvme ocf_modes[1]=pt
ocf_names[2]=WT_Nvme ocf_modes[2]=wt
ocf_names[3]=WB_Nvme0 ocf_modes[3]=wb
ocf_names[4]=WB_Nvme1 ocf_modes[4]=wb
mapfile -t config < <("$rootdir/scripts/gen_nvme.sh")
# Drop anything from last closing ] so we can inject our own config pieces ...
config=("${config[@]::${#config[@]}-2}")
# ... and now convert entire array to a single string item
config=("${config[*]}")
config+=(
"$(
cat <<- JSON
{
"method": "bdev_split_create",
"params": {
"base_bdev": "Nvme0n1",
"split_count": 8,
"split_size_mb": 101
}
}
JSON
)"
)
for ((d = 0, c = 1; d <= ${#ocf_names[@]} + 2; d += 2, c++)); do
config+=(
"$(
cat <<- JSON
{
"method": "bdev_ocf_create",
"params": {
"name": "${ocf_names[c]}",
"mode": "${ocf_modes[c]}",
"cache_bdev_name": "Nvme0n1p$d",
"core_bdev_name": "Nvme0n1p$((d + 1))"
}
}
JSON
)"
)
done
# First ']}' closes our config and bdev subsystem blocks
cat <<- CONFIG > "$curdir/modes.conf"
{"subsystems":[
$(
IFS=","
printf '%s\n' "${config[*]}"
)
]}]}
CONFIG
# Format the config nicely and dump it to stdout for everyone to marvel at it ...
jq . "$curdir/modes.conf"
# ... and now back to our regularly scheduled program
xtrace_restore
fio_verify --filename=PT_Nvme:WT_Nvme:WB_Nvme0:WB_Nvme1 --spdk_json_conf="$curdir/modes.conf" --thread=1
trap - SIGINT SIGTERM EXIT
cleanup