Commit 7156ca48 authored by Aarushi Mehta's avatar Aarushi Mehta Committed by Stefan Hajnoczi
Browse files

tests/qemu-iotests: enable testing with aio options



Signed-off-by: default avatarAarushi Mehta <mehta.aaru20@gmail.com>
Acked-by: default avatarStefano Garzarella <sgarzare@redhat.com>
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
Message-id: 20200120141858.587874-15-stefanha@redhat.com
Message-Id: <20200120141858.587874-15-stefanha@redhat.com>
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent 7680274d
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -137,6 +137,7 @@ sortme=false
expunge=true
have_test_arg=false
cachemode=false
aiomode=false

tmp="${TEST_DIR}"/$$
rm -f $tmp.list $tmp.tmp $tmp.sed
@@ -146,6 +147,7 @@ export IMGFMT_GENERIC=true
export IMGPROTO=file
export IMGOPTS=""
export CACHEMODE="writeback"
export AIOMODE="threads"
export QEMU_IO_OPTIONS=""
export QEMU_IO_OPTIONS_NO_FMT=""
export CACHEMODE_IS_DEFAULT=true
@@ -230,6 +232,11 @@ s/ .*//p
        CACHEMODE_IS_DEFAULT=false
        cachemode=false
        continue
    elif $aiomode
    then
        AIOMODE="$r"
        aiomode=false
        continue
    fi

    xpand=true
@@ -274,6 +281,7 @@ other options
    -n                  show me, do not run tests
    -o options          -o options to pass to qemu-img create/convert
    -c mode             cache mode
    -i mode             AIO mode
    -makecheck          pretty print output for make check

testlist options
@@ -438,10 +446,13 @@ testlist options
            cachemode=true
            xpand=false
            ;;
        -i)
            aiomode=true
            xpand=false
            ;;
        -T)        # deprecated timestamp option
            xpand=false
            ;;

        -v)
            verbose=true
            xpand=false
@@ -520,6 +531,8 @@ done

# Set qemu-io cache mode with $CACHEMODE we have
QEMU_IO_OPTIONS="$QEMU_IO_OPTIONS --cache $CACHEMODE"
# Set qemu-io aio mode with $AIOMODE we have
QEMU_IO_OPTIONS="$QEMU_IO_OPTIONS --aio $AIOMODE"

QEMU_IO_OPTIONS_NO_FMT="$QEMU_IO_OPTIONS"
if [ "$IMGOPTSSYNTAX" != "true" ]; then
+14 −0
Original line number Diff line number Diff line
@@ -645,6 +645,20 @@ _default_cache_mode()
        return
    fi
}
_supported_aio_modes()
{
    for mode; do
        if [ "$mode" = "$AIOMODE" ]; then
            return
        fi
    done
    _notrun "not suitable for aio mode: $AIOMODE"
}
_default_aio_mode()
{
    AIOMODE="$1"
    QEMU_IO="$QEMU_IO --aio $1"
}

_unsupported_imgopts()
{
+10 −2
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ test_dir = os.environ.get('TEST_DIR')
sock_dir = os.environ.get('SOCK_DIR')
output_dir = os.environ.get('OUTPUT_DIR', '.')
cachemode = os.environ.get('CACHEMODE')
aiomode = os.environ.get('AIOMODE')
qemu_default_machine = os.environ.get('QEMU_DEFAULT_MACHINE')

socket_scm_helper = os.environ.get('SOCKET_SCM_HELPER', 'socket_scm_helper')
@@ -495,6 +496,7 @@ class VM(qtest.QEMUQtestMachine):
            options.append('file=%s' % path)
            options.append('format=%s' % format)
            options.append('cache=%s' % cachemode)
            options.append('aio=%s' % aiomode)

        if opts:
            options.append(opts)
@@ -937,6 +939,10 @@ def verify_cache_mode(supported_cache_modes=[]):
    if supported_cache_modes and (cachemode not in supported_cache_modes):
        notrun('not suitable for this cache mode: %s' % cachemode)

def verify_aio_mode(supported_aio_modes=[]):
    if supported_aio_modes and (aiomode not in supported_aio_modes):
        notrun('not suitable for this aio mode: %s' % aiomode)

def supports_quorum():
    return 'quorum' in qemu_img_pipe('--help')

@@ -1023,8 +1029,9 @@ def execute_unittest(output, verbosity, debug):

def execute_test(test_function=None,
                 supported_fmts=[], supported_oses=['linux'],
                 supported_cache_modes=[], unsupported_fmts=[],
                 supported_protocols=[], unsupported_protocols=[]):
                 supported_cache_modes=[], supported_aio_modes={},
                 unsupported_fmts=[], supported_protocols=[],
                 unsupported_protocols=[]):
    """Run either unittest or script-style tests."""

    # We are using TEST_DIR and QEMU_DEFAULT_MACHINE as proxies to
@@ -1041,6 +1048,7 @@ def execute_test(test_function=None,
    verify_protocol(supported_protocols, unsupported_protocols)
    verify_platform(supported_oses)
    verify_cache_mode(supported_cache_modes)
    verify_aio_mode(supported_aio_modes)

    if debug:
        output = sys.stdout