Commit 0418ef1e authored by Maciej Szwed's avatar Maciej Szwed Committed by Tomasz Zawadzki
Browse files

rpc: Add test for pluggable RPCs



Signed-off-by: default avatarMaciej Szwed <maciej.szwed@intel.com>
Change-Id: I62d8672389723f09e58ed66330e364042f375145

Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2419


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
parent d3cf5611
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -25,14 +25,29 @@ function rpc_integrity() {
	}
}

function rpc_plugins() {
	time {
		malloc=$($rpc --plugin rpc_plugin create_malloc)
		bdevs=$($rpc bdev_get_bdevs)
		[ "$(jq length <<< "$bdevs")" == "1" ]

		$rpc --plugin rpc_plugin delete_malloc $malloc
		bdevs=$($rpc bdev_get_bdevs)
		[ "$(jq length <<< "$bdevs")" == "0" ]
	}
}

$rootdir/app/spdk_tgt/spdk_tgt &
spdk_pid=$!
trap 'killprocess $spdk_pid; exit 1' SIGINT SIGTERM EXIT
waitforlisten $spdk_pid

export PYTHONPATH=$PWD/test/rpc/

# basic integrity test
rpc="$rootdir/scripts/rpc.py"
run_test "rpc_integrity" rpc_integrity
run_test "rpc_plugins" rpc_plugins
# same test, but with rpc_cmd() instead
rpc="rpc_cmd"
run_test "rpc_daemon_integrity" rpc_integrity

test/rpc/rpc_plugin.py

0 → 100644
+24 −0
Original line number Diff line number Diff line
from rpc.client import print_json


def malloc_create(args):
    params = {'num_blocks': 256, 'block_size': 4096}
    return args.client.call('bdev_malloc_create', params)


def malloc_delete(args):
    params = {'name': args.name}
    return args.client.call('bdev_malloc_delete', params)


def create_malloc(args):
    print_json(malloc_create(args))


def spdk_rpc_plugin_initialize(subparsers):
    p = subparsers.add_parser('create_malloc', help='Create malloc backend')
    p.set_defaults(func=create_malloc)

    p = subparsers.add_parser('delete_malloc', help='Delete malloc backend')
    p.add_argument('name', help='malloc bdev name')
    p.set_defaults(func=malloc_delete)