Spdk/test/ocf/integrity/flush.sh

85 lines
1.6 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (C) 2021 Intel Corporation.
# All rights reserved.
curdir=$(dirname $(readlink -f "${BASH_SOURCE[0]}"))
rootdir=$(readlink -f $curdir/../../..)
source $rootdir/test/common/autotest_common.sh
bdevperf=$rootdir/build/examples/bdevperf
rpc_py="$rootdir/scripts/rpc.py -s /var/tmp/spdk.sock"
check_flush_in_progress() {
$rpc_py bdev_ocf_flush_status MalCache0 \
| jq -e '.in_progress' > /dev/null
}
bdevperf_config() {
local config
config="$(
cat <<- JSON
{
"method": "bdev_malloc_create",
"params": {
"name": "Malloc0",
"num_blocks": 102400,
"block_size": 512
}
},
{
"method": "bdev_malloc_create",
"params": {
"name": "Malloc1",
"num_blocks": 1024000,
"block_size": 512
}
},
{
"method": "bdev_ocf_create",
"params": {
"name": "MalCache0",
"mode": "wb",
"cache_line_size": 4,
"cache_bdev_name": "Malloc0",
"core_bdev_name": "Malloc1"
}
}
JSON
)"
jq . <<- JSON
{
"subsystems": [
{
"subsystem": "bdev",
"config": [
$(
IFS=","
printf '%s\n' "$config"
),
{
"method": "bdev_wait_for_examine"
}
]
}
]
}
JSON
}
$bdevperf --json <(bdevperf_config) -q 128 -o 4096 -w write -t 120 -r /var/tmp/spdk.sock &
bdevperf_pid=$!
trap 'killprocess $bdevperf_pid' SIGINT SIGTERM EXIT
waitforlisten $bdevperf_pid
sleep 5
$rpc_py bdev_ocf_flush_start MalCache0
sleep 1
while check_flush_in_progress; do
sleep 1
done
$rpc_py bdev_ocf_flush_status MalCache0 | jq -e '.status == 0'