From 3d738d4569e7a03900ed95373fc235ae20e854ad Mon Sep 17 00:00:00 2001 From: Lukasz Galka Date: Thu, 3 Aug 2017 22:32:58 +0200 Subject: [PATCH] test/vhost: move fiotest functions to common directory Move files from test/vhost/fiotest to test/vhost/common. Scripts and functions from fio tests will be re-used in any new test scripts. Change-Id: I2423d636d41dcb2b2af12987769961607e969392 Signed-off-by: Lukasz Galka Reviewed-on: https://review.gerrithub.io/372545 Reviewed-by: Dariusz Stojaczyk Tested-by: SPDK Automated Test System Reviewed-by: Karol Latecki Reviewed-by: Pawel Kaminski Reviewed-by: Daniel Verkamp --- test/vhost/{fiotest => common}/README | 0 test/vhost/{fiotest => common}/autotest.config | 0 test/vhost/{fiotest => common}/common.sh | 10 ++++++---- .../fio_jobs/default_integrity.job | 0 .../fio_jobs/default_performance.job | 0 test/vhost/{fiotest => common}/run_fio.py | 4 ++-- test/vhost/{fiotest => common}/run_vhost.sh | 7 +++++-- test/vhost/{fiotest => common}/vm_run.sh | 3 ++- test/vhost/{fiotest => common}/vm_setup.sh | 3 ++- test/vhost/{fiotest => common}/vm_shutdown.sh | 3 ++- test/vhost/{fiotest => common}/vm_ssh.sh | 3 ++- test/vhost/fiotest/autotest.sh | 13 +++++++------ test/vhost/spdk_vhost.sh | 8 ++++---- 13 files changed, 32 insertions(+), 22 deletions(-) rename test/vhost/{fiotest => common}/README (100%) rename test/vhost/{fiotest => common}/autotest.config (100%) rename test/vhost/{fiotest => common}/common.sh (98%) rename test/vhost/{fiotest => common}/fio_jobs/default_integrity.job (100%) rename test/vhost/{fiotest => common}/fio_jobs/default_performance.job (100%) rename test/vhost/{fiotest => common}/run_fio.py (97%) rename test/vhost/{fiotest => common}/run_vhost.sh (89%) rename test/vhost/{fiotest => common}/vm_run.sh (91%) rename test/vhost/{fiotest => common}/vm_setup.sh (96%) rename test/vhost/{fiotest => common}/vm_shutdown.sh (93%) rename test/vhost/{fiotest => common}/vm_ssh.sh (93%) diff --git a/test/vhost/fiotest/README b/test/vhost/common/README similarity index 100% rename from test/vhost/fiotest/README rename to test/vhost/common/README diff --git a/test/vhost/fiotest/autotest.config b/test/vhost/common/autotest.config similarity index 100% rename from test/vhost/fiotest/autotest.config rename to test/vhost/common/autotest.config diff --git a/test/vhost/fiotest/common.sh b/test/vhost/common/common.sh similarity index 98% rename from test/vhost/fiotest/common.sh rename to test/vhost/common/common.sh index cd0d53873..8e7794748 100644 --- a/test/vhost/fiotest/common.sh +++ b/test/vhost/common/common.sh @@ -7,8 +7,8 @@ MAKE="make -j$(( $(nproc) * 2 ))" # Default running dir -> spdk/.. [[ -z "$TEST_DIR" ]] && TEST_DIR=$BASE_DIR/../../../../ +COMMON_DIR="$(cd $BASE_DIR/../common && pwd)" TEST_DIR="$(mkdir -p $TEST_DIR && cd $TEST_DIR && echo $PWD)" - SPDK_SRC_DIR=$TEST_DIR/spdk SPDK_BUILD_DIR=$BASE_DIR/../../../ VHOST_APP=$SPDK_BUILD_DIR/app/vhost/vhost @@ -39,7 +39,7 @@ INSTALL_DIR="$TEST_DIR/root" mkdir -p $TEST_DIR -. $BASE_DIR/autotest.config +. $COMMON_DIR/autotest.config RPC_PORT=5260 @@ -125,11 +125,13 @@ function spdk_build_and_install() function spdk_vhost_run() { + local vhost_conf_path="$1" + local vhost_app="$SPDK_BUILD_DIR/app/vhost/vhost" local vhost_log_file="$SPDK_VHOST_SCSI_TEST_DIR/vhost.log" local vhost_pid_file="$SPDK_VHOST_SCSI_TEST_DIR/vhost.pid" local vhost_socket="$SPDK_VHOST_SCSI_TEST_DIR/usvhost" - local vhost_conf_template="$BASE_DIR/vhost.conf.in" - local vhost_conf_file="$BASE_DIR/vhost.conf" + local vhost_conf_template="$vhost_conf_path/vhost.conf.in" + local vhost_conf_file="$vhost_conf_path/vhost.conf" echo "INFO: starting vhost app in background" [[ -r "$vhost_pid_file" ]] && spdk_vhost_kill [[ -d $SPDK_VHOST_SCSI_TEST_DIR ]] && rm -f $SPDK_VHOST_SCSI_TEST_DIR/* diff --git a/test/vhost/fiotest/fio_jobs/default_integrity.job b/test/vhost/common/fio_jobs/default_integrity.job similarity index 100% rename from test/vhost/fiotest/fio_jobs/default_integrity.job rename to test/vhost/common/fio_jobs/default_integrity.job diff --git a/test/vhost/fiotest/fio_jobs/default_performance.job b/test/vhost/common/fio_jobs/default_performance.job similarity index 100% rename from test/vhost/fiotest/fio_jobs/default_performance.job rename to test/vhost/common/fio_jobs/default_performance.job diff --git a/test/vhost/fiotest/run_fio.py b/test/vhost/common/run_fio.py similarity index 97% rename from test/vhost/fiotest/run_fio.py rename to test/vhost/common/run_fio.py index d70397c79..b3003a4aa 100755 --- a/test/vhost/fiotest/run_fio.py +++ b/test/vhost/common/run_fio.py @@ -159,7 +159,7 @@ def main(): # VM - tuple of IP / Port / Filename for VM to run test print("Preparing VM {0} - {1} for FIO job".format(i, vm[0])) - exec_cmd("./test/vhost/fiotest/vm_ssh.sh {vm_num} sh -c 'rm {cfg}'" + exec_cmd("./test/vhost/common/vm_ssh.sh {vm_num} sh -c 'rm {cfg}'" .format(vm_num=i, cfg=fio_cfg_fname), blocking=True) # Copy FIO config to VM @@ -167,7 +167,7 @@ def main(): for line in fio_cfg_fh.readlines(): if "filename" in line: line = "filename=" + vm[2] - out = exec_cmd("./test/vhost/fiotest/vm_ssh.sh {vm_num} sh -c 'echo {line} >> {cfg}'" + out = exec_cmd("./test/vhost/common/vm_ssh.sh {vm_num} sh -c 'echo {line} >> {cfg}'" .format(vm_num=i, line=line.strip(), cfg=fio_cfg_fname), blocking=True) if out[0] != 0: print("ERROR! While copying FIO job config file to VM {vm_num} - {vm_ip}" diff --git a/test/vhost/fiotest/run_vhost.sh b/test/vhost/common/run_vhost.sh similarity index 89% rename from test/vhost/fiotest/run_vhost.sh rename to test/vhost/common/run_vhost.sh index 36b489404..39dfc8e7e 100755 --- a/test/vhost/fiotest/run_vhost.sh +++ b/test/vhost/common/run_vhost.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash BASE_DIR=$(readlink -f $(dirname $0)) +[[ -z "$COMMON_DIR" ]] && COMMON_DIR="$(cd $BASE_DIR/../common && pwd)" [[ -z "$TEST_DIR" ]] && TEST_DIR="$(cd $BASE_DIR/../../../../ && pwd)" function usage() @@ -13,6 +14,7 @@ function usage() echo " --gdb Run app under gdb" echo " --gdbserver Run app under gdb-server" echo " --work-dir=PATH Where to find source/project. [default=$TEST_DIR]" + echo " --conf-dir=PATH Path to directory with configuration for vhost" exit 0 } @@ -27,6 +29,7 @@ while getopts 'xh-:' optchar; do gdbserver) VHOST_GDB="gdbserver 127.0.0.1:12345" ;; work-dir=*) TEST_DIR="${OPTARG#*=}" ;; + conf-dir=*) CONF_DIR="${OPTARG#*=}" ;; *) usage $0 echo "Invalid argument '$OPTARG'" ;; esac ;; @@ -44,7 +47,7 @@ fi echo "INFO: $0" echo -. $BASE_DIR/common.sh +. $COMMON_DIR/common.sh echo "INFO: Testing vhost command line arguments" # Printing help will force vhost to exit without error @@ -68,4 +71,4 @@ if ! $VHOST_APP -t vhost_scsi -h; then fi # Starting vhost with valid options -spdk_vhost_run +spdk_vhost_run $CONF_DIR diff --git a/test/vhost/fiotest/vm_run.sh b/test/vhost/common/vm_run.sh similarity index 91% rename from test/vhost/fiotest/vm_run.sh rename to test/vhost/common/vm_run.sh index 6999e38b0..2f878f58c 100755 --- a/test/vhost/fiotest/vm_run.sh +++ b/test/vhost/common/vm_run.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash BASE_DIR=$(readlink -f $(dirname $0)) +[[ -z "$COMMON_DIR" ]] && COMMON_DIR="$(cd $BASE_DIR/../common && pwd)" [[ -z "$TEST_DIR" ]] && TEST_DIR="$(cd $BASE_DIR/../../../../ && pwd)" function usage() @@ -32,7 +33,7 @@ while getopts 'xah-:' optchar; do esac done -. $BASE_DIR/common.sh +. $COMMON_DIR/common.sh if [[ $EUID -ne 0 ]]; then echo "Go away user come back as root" diff --git a/test/vhost/fiotest/vm_setup.sh b/test/vhost/common/vm_setup.sh similarity index 96% rename from test/vhost/fiotest/vm_setup.sh rename to test/vhost/common/vm_setup.sh index 8e1196aae..7d3c8814b 100755 --- a/test/vhost/fiotest/vm_setup.sh +++ b/test/vhost/common/vm_setup.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash BASE_DIR=$(readlink -f $(dirname $0)) +[[ -z "$COMMON_DIR" ]] && COMMON_DIR="$(cd $BASE_DIR/../common && pwd)" [[ -z "$TEST_DIR" ]] && TEST_DIR="$(cd $BASE_DIR/../../../../ && pwd)" function usage() @@ -64,7 +65,7 @@ while getopts 'xf:h-:' optchar; do esac done -. $BASE_DIR/common.sh +. $COMMON_DIR/common.sh [[ -z "$os" ]] && os="$TEST_DIR/debian.qcow2" [[ $test_type =~ "spdk_vhost" ]] && [[ -z "$disk" ]] && disk="$SPDK_VHOST_SCSI_TEST_DIR/usvhost" diff --git a/test/vhost/fiotest/vm_shutdown.sh b/test/vhost/common/vm_shutdown.sh similarity index 93% rename from test/vhost/fiotest/vm_shutdown.sh rename to test/vhost/common/vm_shutdown.sh index 81a24173c..f60e1ba21 100755 --- a/test/vhost/fiotest/vm_shutdown.sh +++ b/test/vhost/common/vm_shutdown.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash BASE_DIR=$(readlink -f $(dirname $0)) +[[ -z "$COMMON_DIR" ]] && COMMON_DIR="$(cd $BASE_DIR/../common && pwd)" [[ -z "$TEST_DIR" ]] && TEST_DIR="$(cd $BASE_DIR/../../../../ && pwd)" function usage() @@ -35,7 +36,7 @@ while getopts "$optspec" optchar; do esac done -. $BASE_DIR/common.sh +. $COMMON_DIR/common.sh if $do_kill && [[ $EUID -ne 0 ]]; then echo "Go away user come back as root" diff --git a/test/vhost/fiotest/vm_ssh.sh b/test/vhost/common/vm_ssh.sh similarity index 93% rename from test/vhost/fiotest/vm_ssh.sh rename to test/vhost/common/vm_ssh.sh index c36f87983..d6d761b9b 100755 --- a/test/vhost/fiotest/vm_ssh.sh +++ b/test/vhost/common/vm_ssh.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash BASE_DIR=$(readlink -f $(dirname $0)) +[[ -z "$COMMON_DIR" ]] && COMMON_DIR="$(cd $BASE_DIR/../common && pwd)" [[ -z "$TEST_DIR" ]] && TEST_DIR="$(cd $BASE_DIR/../../../../ && pwd)" function usage() @@ -32,7 +33,7 @@ while getopts 'xwh-:' optchar; do esac done -. $BASE_DIR/common.sh +. $COMMON_DIR/common.sh shift $((OPTIND-1)) vm_num="$1" diff --git a/test/vhost/fiotest/autotest.sh b/test/vhost/fiotest/autotest.sh index ca4f50b8c..ce66c140b 100755 --- a/test/vhost/fiotest/autotest.sh +++ b/test/vhost/fiotest/autotest.sh @@ -1,12 +1,13 @@ #!/usr/bin/env bash set -e BASE_DIR=$(readlink -f $(dirname $0)) +[[ -z "$COMMON_DIR" ]] && COMMON_DIR="$(cd $BASE_DIR/../common && pwd)" [[ -z "$TEST_DIR" ]] && TEST_DIR="$(cd $BASE_DIR/../../../../ && pwd)" dry_run=false no_shutdown=false fio_bin="fio" -fio_jobs="$BASE_DIR/fio_jobs/" +fio_jobs="$COMMON_DIR/fio_jobs/" test_type=spdk_vhost_scsi reuse_vms=false force_build=false @@ -85,7 +86,7 @@ if [[ -d "$fio_jobs" ]]; then fio_jobs="$fio_jobs/*.job" fi -. $BASE_DIR/common.sh +. $COMMON_DIR/common.sh trap 'error_exit "${FUNCNAME}" "${LINENO}"' ERR @@ -121,7 +122,7 @@ if [[ $test_type =~ "spdk_vhost" ]]; then echo "" echo "INFO: running SPDK" echo "" - $BASE_DIR/run_vhost.sh $x --work-dir=$TEST_DIR + $COMMON_DIR/run_vhost.sh $x --work-dir=$TEST_DIR --conf-dir=$BASE_DIR echo fi @@ -135,7 +136,7 @@ rpc_py+="-s 127.0.0.1 " for vm_conf in ${vms[@]}; do IFS=',' read -ra conf <<< "$vm_conf" - setup_cmd="$BASE_DIR/vm_setup.sh $x --work-dir=$TEST_DIR --test-type=$test_type" + setup_cmd="$COMMON_DIR/vm_setup.sh $x --work-dir=$TEST_DIR --test-type=$test_type" if [[ x"${conf[0]}" == x"" ]] || ! assert_number ${conf[0]}; then echo "ERROR: invalid VM configuration syntax $vm_conf" exit 1; @@ -246,7 +247,7 @@ for vm_conf in ${vms[@]}; do done # Run everything -$BASE_DIR/vm_run.sh $x --work-dir=$TEST_DIR $used_vms +$COMMON_DIR/vm_run.sh $x --work-dir=$TEST_DIR $used_vms vm_wait_for_boot 600 $used_vms if [[ $test_type == "spdk_vhost_scsi" ]]; then @@ -274,7 +275,7 @@ echo "" echo "INFO: Testing..." echo "INFO: Running fio jobs ..." -run_fio="python $BASE_DIR/run_fio.py " +run_fio="python $COMMON_DIR/run_fio.py " run_fio+="$fio_bin " run_fio+="--job-file=" for job in $fio_jobs; do diff --git a/test/vhost/spdk_vhost.sh b/test/vhost/spdk_vhost.sh index 1edb03ab6..0b49b94bd 100755 --- a/test/vhost/spdk_vhost.sh +++ b/test/vhost/spdk_vhost.sh @@ -22,7 +22,7 @@ case $param in ./fiotest/autotest.sh --fio-bin=/home/sys_sgsw/fio_ubuntu \ --vm=0,/home/sys_sgsw/vhost_vm_image.qcow2,Nvme0n1p0 \ --test-type=spdk_vhost_scsi \ - --fio-jobs=$WORKDIR/fiotest/fio_jobs/default_performance.job \ + --fio-jobs=$WORKDIR/common/fio_jobs/default_performance.job \ --qemu-src=/home/sys_sgsw/vhost/qemu ;; -pb|--performance-blk) @@ -30,7 +30,7 @@ case $param in ./fiotest/autotest.sh --fio-bin=/home/sys_sgsw/fio_ubuntu \ --vm=0,/home/sys_sgsw/vhost_vm_image.qcow2,Nvme0n1p0 \ --test-type=spdk_vhost_blk \ - --fio-jobs=$WORKDIR/fiotest/fio_jobs/default_performance.job \ + --fio-jobs=$WORKDIR/common/fio_jobs/default_performance.job \ --qemu-src=/home/sys_sgsw/vhost/qemu ;; -i|--integrity) @@ -38,7 +38,7 @@ case $param in ./fiotest/autotest.sh --fio-bin=/home/sys_sgsw/fio_ubuntu \ --vm=0,/home/sys_sgsw/vhost_vm_image.qcow2,Nvme0n1p0:Nvme0n1p1:Nvme0n1p2:Nvme0n1p3 \ --test-type=spdk_vhost_scsi \ - --fio-jobs=$WORKDIR/fiotest/fio_jobs/default_integrity.job \ + --fio-jobs=$WORKDIR/common/fio_jobs/default_integrity.job \ --qemu-src=/home/sys_sgsw/vhost/qemu -x ;; -ib|--integrity-blk) @@ -46,7 +46,7 @@ case $param in ./fiotest/autotest.sh --fio-bin=/home/sys_sgsw/fio_ubuntu \ --vm=0,/home/sys_sgsw/vhost_vm_image.qcow2,Nvme0n1p0:Nvme0n1p1:Nvme0n1p2:Nvme0n1p3 \ --test-type=spdk_vhost_blk \ - --fio-jobs=$WORKDIR/fiotest/fio_jobs/default_integrity.job \ + --fio-jobs=$WORKDIR/common/fio_jobs/default_integrity.job \ --qemu-src=/home/sys_sgsw/vhost/qemu -x ;; -fs|--fs-integrity-scsi)