Commit fbf05738 authored by Pawel Niedzwiecki's avatar Pawel Niedzwiecki Committed by Ben Walker
Browse files

test/spdkcli: Add test for SPDK CLI



Change-Id: I640548858b5e2666c78ff5e1b2b2d0d8066a0ba6
Signed-off-by: default avatarPawel Niedzwiecki <pawelx.niedzwiecki@intel.com>
Signed-off-by: default avatarPawel Kaminski <pawelx.kaminski@intel.com>
Reviewed-on: https://review.gerrithub.io/416559


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarKarol Latecki <karol.latecki@intel.com>
parent df214a0d
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -194,6 +194,10 @@ if [ $SPDK_TEST_VHOST -eq 1 ]; then
	run_test ./test/vhost/spdk_vhost.sh --integrity-lvol-blk
	timing_exit integrity_lvol_blk

	timing_enter spdk_cli
	run_test ./test/spdkcli/vhost.sh
	timing_exit spdk_cli

	timing_exit vhost
fi

test/spdkcli/common.sh

0 → 100644
+27 −0
Original line number Diff line number Diff line
#!/usr/bin/env bash
set -xe

testdir=$(readlink -f $(dirname $0))
SPDKCLI_BUILD_DIR=$(readlink -f $testdir/../..)
spdkcli_job="python3 $SPDKCLI_BUILD_DIR/test/spdkcli/spdkcli_job.py"
. $SPDKCLI_BUILD_DIR/test/common/autotest_common.sh

function on_error_exit() {
	set +e
	killprocess $spdk_tgt_pid
	rm -f $testdir/${MATCH_FILE} $testdir/spdkcli_details_vhost.test /tmp/sample_aio
	print_backtrace
	exit 1
}

function run_spdk_tgt() {
	$SPDKCLI_BUILD_DIR/app/spdk_tgt/spdk_tgt -m 0x3 -p 0 -s 1024 &
	spdk_tgt_pid=$!
	waitforlisten $spdk_tgt_pid
}

function check_match() {
	python3 $SPDKCLI_BUILD_DIR/scripts/spdkcli.py ll > $testdir/${MATCH_FILE}
	$SPDKCLI_BUILD_DIR/test/app/match/match -v $testdir/${MATCH_FILE}.match
	rm -f $testdir/${MATCH_FILE}
}
+25 −0
Original line number Diff line number Diff line
{
  "aliases": [],
  "block_size": $(N),
  "claimed": false,
  "driver_specific": {
    "split": {
      "base_bdev": "Nvme0n1",
      "offset_blocks": $(N)
    }
  },
  "name": "Nvme0n1p0",
  "num_blocks": $(N),
  "product_name": "Split Disk",
  "qos_ios_per_sec": 0,
  "supported_io_types": {
    "flush": $(S),
    "nvme_admin": $(S),
    "nvme_io": $(S),
    "read": $(S),
    "reset": $(S),
    "unmap": $(S),
    "write": $(S),
    "write_zeroes": $(S)
  }
}
+36 −0
Original line number Diff line number Diff line
#!/usr/bin/env python3.5
import pexpect
import os
import sys


def execute_command(cmd, element=None, element_exists=False):
    child.sendline(cmd)
    child.expect("/>")
    print("before: %s" % child.before.decode())
    if "error response" in child.before.decode():
        print("Error in cmd: %s" % cmd)
        exit(1)
    ls_tree = cmd.split(" ")[0]
    if ls_tree and element:
        child.sendline("ls %s" % ls_tree)
        child.expect("/>")
        print("child: %s" % child.before.decode())
        if element_exists:
            if element not in child.before.decode():
                print("Element %s not in list" % element)
                exit(1)
        else:
            if element in child.before.decode():
                print("Element %s is in list" % element)
                exit(1)


if __name__ == "__main__":
    testdir = os.path.dirname(os.path.realpath(sys.argv[0]))
    child = pexpect.spawn(os.path.join(testdir, "../../scripts/spdkcli.py"))
    child.expect(">")
    child.sendline("cd /")
    child.expect("/>")

    execute_command(*sys.argv[1:])
+46 −0
Original line number Diff line number Diff line
o- / ......................................................................................................................... [...]
  o- bdevs ................................................................................................................... [...]
  | o- aio .............................................................................................................. [Bdevs: 1]
  | | o- sample ........................................................................................... [Size=$(FP)M, Not claimed]
  | o- error ............................................................................................................ [Bdevs: 1]
  | | o- EE_Malloc1 ...................................................................................... [Size=$(FP)M, Not claimed]
  | o- iscsi ............................................................................................................ [Bdevs: 0]
  | o- logical_volume ................................................................................................... [Bdevs: 1]
  | | o- $(X)-$(X)-$(X)-$(X)-$(X) .................................................. [lvs/lvol, Size=$(FP)M, Not claimed]
  | o- malloc ........................................................................................................... [Bdevs: 4]
  | | o- Malloc0 ............................................................................................. [Size=$(FP)M, Claimed]
  | | o- Malloc1 ............................................................................................. [Size=$(FP)M, Claimed]
  | | o- Malloc2 ......................................................................................... [Size=$(FP)M, Not claimed]
  | | o- Malloc3 ......................................................................................... [Size=$(FP)M, Not claimed]
  | o- null ............................................................................................................. [Bdevs: 1]
  | | o- null_bdev ....................................................................................... [Size=$(FP)M, Not claimed]
  | o- nvme ............................................................................................................. [Bdevs: 1]
  | | o- Nvme0n1 $(S) [Size=$(FP)G, Claimed]
  | o- pmemblk .......................................................................................................... [Bdevs: 0]
  | o- rbd .............................................................................................................. [Bdevs: 0]
  | o- split_disk ....................................................................................................... [Bdevs: 4]
  | | o- Nvme0n1p0 $(S) [Size=$(FP)G, Not claimed]
  | | o- Nvme0n1p1 $(S) [Size=$(FP)G, Not claimed]
  | | o- Nvme0n1p2 $(S) [Size=$(FP)G, Not claimed]
  | | o- Nvme0n1p3 $(S) [Size=$(FP)G, Not claimed]
  | o- virtioblk_disk ................................................................................................... [Bdevs: 0]
  | o- virtioscsi_disk .................................................................................................. [Bdevs: 0]
  o- lvol_stores .................................................................................................. [Lvol stores: 1]
  | o- lvs ................................................................................................ [Size=$(FP)M, Free=$(FP)M]
  o- vhost ................................................................................................................... [...]
    o- block ................................................................................................................. [...]
    | o- vhost_blk1 $(S) [$(S)]
    | | o- Nvme0n1p0 ......................................................................................................... [...]
    | o- vhost_blk2 $(S) [$(S), Readonly]
    |   o- Nvme0n1p1 ......................................................................................................... [...]
    o- scsi .................................................................................................................. [...]
      o- vhost_scsi1 $(S) [$(S)]
      | o- Target_0 .......................................................................................... [LUNs: 1,TargetID: 0]
      |   o- Malloc2 ......................................................................................................... [...]
      o- vhost_scsi2 $(S) [$(S)]
        o- Target_0 .......................................................................................... [LUNs: 1,TargetID: 0]
        | o- Malloc3 ......................................................................................................... [...]
        o- Target_1 .......................................................................................... [LUNs: 1,TargetID: 1]
        | o- Nvme0n1p2 ....................................................................................................... [...]
        o- Target_2 .......................................................................................... [LUNs: 1,TargetID: 2]
          o- Nvme0n1p3 ....................................................................................................... [...]
Loading