1#!/usr/bin/env bash 2 3testdir=$(readlink -f $(dirname $0)) 4rootdir=$(readlink -f $testdir/../..) 5source $rootdir/test/common/autotest_common.sh 6 7# simply check if rpc commands have any effect on spdk 8function rpc_integrity() { 9 time { 10 bdevs=$($rpc bdev_get_bdevs) 11 [ "$(jq length <<< "$bdevs")" == "0" ] 12 13 malloc=$($rpc bdev_malloc_create 8 512) 14 bdevs=$($rpc bdev_get_bdevs) 15 [ "$(jq length <<< "$bdevs")" == "1" ] 16 17 $rpc bdev_passthru_create -b "$malloc" -p Passthru0 18 bdevs=$($rpc bdev_get_bdevs) 19 [ "$(jq length <<< "$bdevs")" == "2" ] 20 21 $rpc bdev_passthru_delete Passthru0 22 $rpc bdev_malloc_delete $malloc 23 bdevs=$($rpc bdev_get_bdevs) 24 [ "$(jq length <<< "$bdevs")" == "0" ] 25 } 26} 27 28function rpc_plugins() { 29 time { 30 malloc=$($rpc --plugin rpc_plugin create_malloc) 31 bdevs=$($rpc bdev_get_bdevs) 32 [ "$(jq length <<< "$bdevs")" == "1" ] 33 34 $rpc --plugin rpc_plugin delete_malloc $malloc 35 bdevs=$($rpc bdev_get_bdevs) 36 [ "$(jq length <<< "$bdevs")" == "0" ] 37 } 38} 39 40$SPDK_BIN_DIR/spdk_tgt & 41spdk_pid=$! 42trap 'killprocess $spdk_pid; exit 1' SIGINT SIGTERM EXIT 43waitforlisten $spdk_pid 44 45export PYTHONPATH=$testdir 46 47# basic integrity test 48rpc="$rootdir/scripts/rpc.py" 49run_test "rpc_integrity" rpc_integrity 50run_test "rpc_plugins" rpc_plugins 51# same integrity test, but with rpc_cmd() instead 52rpc="rpc_cmd" 53run_test "rpc_daemon_integrity" rpc_integrity 54 55trap - SIGINT SIGTERM EXIT 56killprocess $spdk_pid 57