From: Paolo Bonzini <pbonzini@redhat.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>,
Maxim Levitsky <mlevitsk@redhat.com>,
qemu-devel@nongnu.org
Cc: "Kevin Wolf" <kwolf@redhat.com>,
"Laurent Vivier" <lvivier@redhat.com>,
"Thomas Huth" <thuth@redhat.com>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Eduardo Habkost" <ehabkost@redhat.com>,
qemu-block@nongnu.org, "Max Reitz" <mreitz@redhat.com>
Subject: Re: [PATCH 4/4] iotests: rewrite iotest 240 in python
Date: Thu, 29 Oct 2020 13:32:38 +0100 [thread overview]
Message-ID: <f0eb66e3-f9bb-abd4-bf68-268245a43577@redhat.com> (raw)
In-Reply-To: <214647b0-c745-0941-ba66-8248d915a156@de.ibm.com>
On 29/10/20 12:16, Christian Borntraeger wrote:
> On 19.10.20 18:37, Maxim Levitsky wrote:
>> The recent changes that brought RCU delayed device deletion,
>> broke few tests and this test breakage went unnoticed.
>>
>> Fix this test by rewriting it in python
>> (which allows to wait for DEVICE_DELETED events before continuing).
>
> While this is now fine for x86, this seems to not cover the s390 specific ccw bus:
You can add a filter to qmp_log calls that do device_add, for example
filters=((lambda x: x.replace("virtio-scsi-ccw", "virtio-scsi-pci")),)
Paolo
> --- /home/cborntra/REPOS/qemu/tests/qemu-iotests/240.out 2020-10-29 12:14:42.409233949 +0100
> +++ /home/cborntra/REPOS/qemu/build/240.out.bad 2020-10-29 12:15:29.309233949 +0100
> @@ -3,7 +3,7 @@
> {"return": {}}
> {"execute": "object-add", "arguments": {"id": "iothread0", "qom-type": "iothread"}}
> {"return": {}}
> -{"execute": "device_add", "arguments": {"driver": "virtio-scsi-pci", "id": "scsi0", "iothread": "iothread0"}}
> +{"execute": "device_add", "arguments": {"driver": "virtio-scsi-ccw", "id": "scsi0", "iothread": "iothread0"}}
> {"return": {}}
> {"execute": "device_add", "arguments": {"drive": "hd0", "driver": "scsi-hd", "id": "scsi-hd0"}}
> {"return": {}}
> @@ -22,7 +22,7 @@
> {"return": {}}
> {"execute": "object-add", "arguments": {"id": "iothread0", "qom-type": "iothread"}}
> {"return": {}}
> -{"execute": "device_add", "arguments": {"driver": "virtio-scsi-pci", "id": "scsi0", "iothread": "iothread0"}}
> +{"execute": "device_add", "arguments": {"driver": "virtio-scsi-ccw", "id": "scsi0", "iothread": "iothread0"}}
> {"return": {}}
> {"execute": "device_add", "arguments": {"drive": "hd0", "driver": "scsi-hd", "id": "scsi-hd0"}}
> {"return": {}}
> @@ -43,9 +43,9 @@
> {"return": {}}
> {"execute": "object-add", "arguments": {"id": "iothread1", "qom-type": "iothread"}}
> {"return": {}}
> -{"execute": "device_add", "arguments": {"driver": "virtio-scsi-pci", "id": "scsi0", "iothread": "iothread0"}}
> +{"execute": "device_add", "arguments": {"driver": "virtio-scsi-ccw", "id": "scsi0", "iothread": "iothread0"}}
> {"return": {}}
> -{"execute": "device_add", "arguments": {"driver": "virtio-scsi-pci", "id": "scsi1", "iothread": "iothread1"}}
> +{"execute": "device_add", "arguments": {"driver": "virtio-scsi-ccw", "id": "scsi1", "iothread": "iothread1"}}
> {"return": {}}
> {"execute": "device_add", "arguments": {"bus": "scsi0.0", "drive": "hd0", "driver": "scsi-hd", "id": "scsi-hd0"}}
> {"return": {}}
> @@ -72,7 +72,7 @@
> {"return": {}}
> {"execute": "object-add", "arguments": {"id": "iothread0", "qom-type": "iothread"}}
> {"return": {}}
> -{"execute": "device_add", "arguments": {"driver": "virtio-scsi-pci", "id": "scsi0", "iothread": "iothread0"}}
> +{"execute": "device_add", "arguments": {"driver": "virtio-scsi-ccw", "id": "scsi0", "iothread": "iothread0"}}
> {"return": {}}
> {"execute": "device_add", "arguments": {"drive": "hd0", "driver": "scsi-hd", "id": "scsi-hd0"}}
> {"return": {}}
> Failures: 240
> Failed 1 of 1 iotests
>
>>
>> Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
>> ---
>> tests/qemu-iotests/240 | 228 ++++++++++++++++---------------------
>> tests/qemu-iotests/240.out | 76 ++++++++-----
>> 2 files changed, 143 insertions(+), 161 deletions(-)
>>
>> diff --git a/tests/qemu-iotests/240 b/tests/qemu-iotests/240
>> index 8b4337b58d..a739de6769 100755
>> --- a/tests/qemu-iotests/240
>> +++ b/tests/qemu-iotests/240
>> @@ -1,5 +1,5 @@
>> -#!/usr/bin/env bash
>> -#
>> +#!/usr/bin/env python3
>> +
>> # Test hot plugging and unplugging with iothreads
>> #
>> # Copyright (C) 2019 Igalia, S.L.
>> @@ -17,133 +17,99 @@
>> #
>> # You should have received a copy of the GNU General Public License
>> # along with this program. If not, see <http://www.gnu.org/licenses/>.
>> -#
>>
>> -# creator
>> -owner=berto@igalia.com
>> -
>> -seq=`basename $0`
>> -echo "QA output created by $seq"
>> -
>> -status=1 # failure is the default!
>> -
>> -_cleanup()
>> -{
>> - rm -f "$SOCK_DIR/nbd"
>> -}
>> -trap "_cleanup; exit \$status" 0 1 2 3 15
>> -
>> -# get standard environment, filters and checks
>> -. ./common.rc
>> -. ./common.filter
>> -
>> -_supported_fmt generic
>> -_supported_proto generic
>> -
>> -do_run_qemu()
>> -{
>> - echo Testing: "$@"
>> - $QEMU -nographic -qmp stdio -serial none "$@"
>> - echo
>> -}
>> -
>> -# Remove QMP events from (pretty-printed) output. Doesn't handle
>> -# nested dicts correctly, but we don't get any of those in this test.
>> -_filter_qmp_events()
>> -{
>> - tr '\n' '\t' | sed -e \
>> - 's/{\s*"timestamp":\s*{[^}]*},\s*"event":[^,}]*\(,\s*"data":\s*{[^}]*}\)\?\s*}\s*//g' \
>> - | tr '\t' '\n'
>> -}
>> -
>> -run_qemu()
>> -{
>> - do_run_qemu "$@" 2>&1 | _filter_qmp | _filter_qmp_events
>> -}
>> -
>> -case "$QEMU_DEFAULT_MACHINE" in
>> - s390-ccw-virtio)
>> - virtio_scsi=virtio-scsi-ccw
>> - ;;
>> - *)
>> - virtio_scsi=virtio-scsi-pci
>> - ;;
>> -esac
>> -
>> -echo
>> -echo === Unplug a SCSI disk and then plug it again ===
>> -echo
>> -
>> -run_qemu <<EOF
>> -{ "execute": "qmp_capabilities" }
>> -{ "execute": "blockdev-add", "arguments": {"driver": "null-co", "read-zeroes": true, "node-name": "hd0"}}
>> -{ "execute": "object-add", "arguments": {"qom-type": "iothread", "id": "iothread0"}}
>> -{ "execute": "device_add", "arguments": {"id": "scsi0", "driver": "${virtio_scsi}", "iothread": "iothread0"}}
>> -{ "execute": "device_add", "arguments": {"id": "scsi-hd0", "driver": "scsi-hd", "drive": "hd0"}}
>> -{ "execute": "device_del", "arguments": {"id": "scsi-hd0"}}
>> -{ "execute": "device_add", "arguments": {"id": "scsi-hd0", "driver": "scsi-hd", "drive": "hd0"}}
>> -{ "execute": "device_del", "arguments": {"id": "scsi-hd0"}}
>> -{ "execute": "device_del", "arguments": {"id": "scsi0"}}
>> -{ "execute": "blockdev-del", "arguments": {"node-name": "hd0"}}
>> -{ "execute": "quit"}
>> -EOF
>> -
>> -echo
>> -echo === Attach two SCSI disks using the same block device and the same iothread ===
>> -echo
>> -
>> -run_qemu <<EOF
>> -{ "execute": "qmp_capabilities" }
>> -{ "execute": "blockdev-add", "arguments": {"driver": "null-co", "read-zeroes": true, "node-name": "hd0", "read-only": true}}
>> -{ "execute": "object-add", "arguments": {"qom-type": "iothread", "id": "iothread0"}}
>> -{ "execute": "device_add", "arguments": {"id": "scsi0", "driver": "${virtio_scsi}", "iothread": "iothread0"}}
>> -{ "execute": "device_add", "arguments": {"id": "scsi-hd0", "driver": "scsi-hd", "drive": "hd0"}}
>> -{ "execute": "device_add", "arguments": {"id": "scsi-hd1", "driver": "scsi-hd", "drive": "hd0"}}
>> -{ "execute": "device_del", "arguments": {"id": "scsi-hd0"}}
>> -{ "execute": "device_del", "arguments": {"id": "scsi-hd1"}}
>> -{ "execute": "device_del", "arguments": {"id": "scsi0"}}
>> -{ "execute": "blockdev-del", "arguments": {"node-name": "hd0"}}
>> -{ "execute": "quit"}
>> -EOF
>> -
>> -echo
>> -echo === Attach two SCSI disks using the same block device but different iothreads ===
>> -echo
>> -
>> -run_qemu <<EOF
>> -{ "execute": "qmp_capabilities" }
>> -{ "execute": "blockdev-add", "arguments": {"driver": "null-co", "read-zeroes": true, "node-name": "hd0", "read-only": true}}
>> -{ "execute": "object-add", "arguments": {"qom-type": "iothread", "id": "iothread0"}}
>> -{ "execute": "object-add", "arguments": {"qom-type": "iothread", "id": "iothread1"}}
>> -{ "execute": "device_add", "arguments": {"id": "scsi0", "driver": "${virtio_scsi}", "iothread": "iothread0"}}
>> -{ "execute": "device_add", "arguments": {"id": "scsi1", "driver": "${virtio_scsi}", "iothread": "iothread1"}}
>> -{ "execute": "device_add", "arguments": {"id": "scsi-hd0", "driver": "scsi-hd", "drive": "hd0", "bus": "scsi0.0"}}
>> -{ "execute": "device_add", "arguments": {"id": "scsi-hd1", "driver": "scsi-hd", "drive": "hd0", "bus": "scsi1.0"}}
>> -{ "execute": "device_del", "arguments": {"id": "scsi-hd0"}}
>> -{ "execute": "device_add", "arguments": {"id": "scsi-hd1", "driver": "scsi-hd", "drive": "hd0", "bus": "scsi1.0"}}
>> -{ "execute": "device_del", "arguments": {"id": "scsi-hd1"}}
>> -{ "execute": "device_del", "arguments": {"id": "scsi0"}}
>> -{ "execute": "device_del", "arguments": {"id": "scsi1"}}
>> -{ "execute": "blockdev-del", "arguments": {"node-name": "hd0"}}
>> -{ "execute": "quit"}
>> -EOF
>> -
>> -echo
>> -echo === Attach a SCSI disks using the same block device as a NBD server ===
>> -echo
>> -
>> -run_qemu <<EOF
>> -{ "execute": "qmp_capabilities" }
>> -{ "execute": "blockdev-add", "arguments": {"driver": "null-co", "read-zeroes": true, "node-name": "hd0", "read-only": true}}
>> -{ "execute": "nbd-server-start", "arguments": {"addr":{"type":"unix","data":{"path":"$SOCK_DIR/nbd"}}}}
>> -{ "execute": "nbd-server-add", "arguments": {"device":"hd0"}}
>> -{ "execute": "object-add", "arguments": {"qom-type": "iothread", "id": "iothread0"}}
>> -{ "execute": "device_add", "arguments": {"id": "scsi0", "driver": "${virtio_scsi}", "iothread": "iothread0"}}
>> -{ "execute": "device_add", "arguments": {"id": "scsi-hd0", "driver": "scsi-hd", "drive": "hd0", "bus": "scsi0.0"}}
>> -{ "execute": "quit"}
>> -EOF
>> -
>> -# success, all done
>> -echo "*** done"
>> -rm -f $seq.full
>> -status=0
>> +import iotests
>> +import os
>> +
>> +nbd_sock = iotests.file_path('nbd.sock', base_dir=iotests.sock_dir)
>> +
>> +class TestCase(iotests.QMPTestCase):
>> + test_driver = "null-co"
>> +
>> + def required_drivers(self):
>> + return [self.test_driver]
>> +
>> + @iotests.skip_if_unsupported(required_drivers)
>> + def setUp(self):
>> + self.vm = iotests.VM()
>> + self.vm.launch()
>> +
>> + def tearDown(self):
>> + self.vm.shutdown()
>> +
>> + def test1(self):
>> + iotests.log('==Unplug a SCSI disk and then plug it again==')
>> + self.vm.qmp_log('blockdev-add', driver='null-co', read_zeroes=True, node_name='hd0')
>> + self.vm.qmp_log('object-add', qom_type='iothread', id="iothread0")
>> + self.vm.qmp_log('device_add', id='scsi0', driver=iotests.get_virtio_scsi_device(), iothread='iothread0')
>> + self.vm.qmp_log('device_add', id='scsi-hd0', driver='scsi-hd', drive='hd0')
>> + self.vm.qmp_log('device_del', id='scsi-hd0')
>> + self.vm.event_wait('DEVICE_DELETED')
>> + self.vm.qmp_log('device_add', id='scsi-hd0', driver='scsi-hd', drive='hd0')
>> + self.vm.qmp_log('device_del', id='scsi-hd0')
>> + self.vm.event_wait('DEVICE_DELETED')
>> + self.vm.qmp_log('device_del', id='scsi0')
>> + self.vm.qmp_log('blockdev-del', node_name='hd0')
>> +
>> + def test2(self):
>> + iotests.log('==Attach two SCSI disks using the same block device and the same iothread==')
>> + self.vm.qmp_log('blockdev-add', driver='null-co', read_zeroes=True, node_name='hd0', read_only=True)
>> + self.vm.qmp_log('object-add', qom_type='iothread', id="iothread0")
>> + self.vm.qmp_log('device_add', id='scsi0', driver=iotests.get_virtio_scsi_device(), iothread='iothread0')
>> +
>> + self.vm.qmp_log('device_add', id='scsi-hd0', driver='scsi-hd', drive='hd0')
>> + self.vm.qmp_log('device_add', id='scsi-hd1', driver='scsi-hd', drive='hd0')
>> + self.vm.qmp_log('device_del', id='scsi-hd1')
>> + self.vm.event_wait('DEVICE_DELETED')
>> + self.vm.qmp_log('device_del', id='scsi-hd0')
>> + self.vm.event_wait('DEVICE_DELETED')
>> + self.vm.qmp_log('device_del', id='scsi0')
>> + self.vm.qmp_log('blockdev-del', node_name='hd0')
>> +
>> + def test3(self):
>> + iotests.log('==Attach two SCSI disks using the same block device but different iothreads==')
>> +
>> + self.vm.qmp_log('blockdev-add', driver='null-co', read_zeroes=True, node_name='hd0', read_only=True)
>> +
>> + self.vm.qmp_log('object-add', qom_type='iothread', id="iothread0")
>> + self.vm.qmp_log('object-add', qom_type='iothread', id="iothread1")
>> +
>> + self.vm.qmp_log('device_add', id='scsi0', driver=iotests.get_virtio_scsi_device(), iothread='iothread0')
>> + self.vm.qmp_log('device_add', id='scsi1', driver=iotests.get_virtio_scsi_device(), iothread='iothread1')
>> +
>> + self.vm.qmp_log('device_add', id='scsi-hd0', driver='scsi-hd', drive='hd0', bus="scsi0.0")
>> + self.vm.qmp_log('device_add', id='scsi-hd1', driver='scsi-hd', drive='hd0', bus="scsi1.0")
>> +
>> + self.vm.qmp_log('device_del', id='scsi-hd0')
>> + self.vm.event_wait('DEVICE_DELETED')
>> + self.vm.qmp_log('device_add', id='scsi-hd1', driver='scsi-hd', drive='hd0', bus="scsi1.0")
>> +
>> + self.vm.qmp_log('device_del', id='scsi-hd1')
>> + self.vm.event_wait('DEVICE_DELETED')
>> +
>> + self.vm.qmp_log('device_del', id='scsi1')
>> + self.vm.qmp_log('device_del', id='scsi0')
>> +
>> + self.vm.qmp_log('blockdev-del', node_name='hd0')
>> +
>> + def test4(self):
>> + iotests.log('==Attach a SCSI disks using the same block device as a NBD server==')
>> +
>> + self.vm.qmp_log('blockdev-add', driver='null-co', read_zeroes=True, node_name='hd0', read_only=True)
>> +
>> + self.vm.qmp_log('nbd-server-start',
>> + filters=[iotests.filter_qmp_testfiles],
>> + addr={'type':'unix', 'data':{'path':nbd_sock}})
>> +
>> + self.vm.qmp_log('nbd-server-add', device='hd0')
>> +
>> + self.vm.qmp_log('object-add', qom_type='iothread', id="iothread0")
>> + self.vm.qmp_log('device_add', id='scsi0', driver=iotests.get_virtio_scsi_device(), iothread='iothread0')
>> + self.vm.qmp_log('device_add', id='scsi-hd0', driver='scsi-hd', drive='hd0')
>> +
>> +
>> +if __name__ == '__main__':
>> + if 'null-co' not in iotests.supported_formats():
>> + iotests.notrun('null-co driver support missing')
>> + iotests.activate_logging()
>> + iotests.main()
>> diff --git a/tests/qemu-iotests/240.out b/tests/qemu-iotests/240.out
>> index d00df50297..24847be6b3 100644
>> --- a/tests/qemu-iotests/240.out
>> +++ b/tests/qemu-iotests/240.out
>> @@ -1,67 +1,83 @@
>> -QA output created by 240
>> -
>> -=== Unplug a SCSI disk and then plug it again ===
>> -
>> -Testing:
>> -QMP_VERSION
>> -{"return": {}}
>> +==Unplug a SCSI disk and then plug it again==
>> +{"execute": "blockdev-add", "arguments": {"driver": "null-co", "node-name": "hd0", "read-zeroes": true}}
>> {"return": {}}
>> +{"execute": "object-add", "arguments": {"id": "iothread0", "qom-type": "iothread"}}
>> {"return": {}}
>> +{"execute": "device_add", "arguments": {"driver": "virtio-scsi-pci", "id": "scsi0", "iothread": "iothread0"}}
>> {"return": {}}
>> +{"execute": "device_add", "arguments": {"drive": "hd0", "driver": "scsi-hd", "id": "scsi-hd0"}}
>> {"return": {}}
>> +{"execute": "device_del", "arguments": {"id": "scsi-hd0"}}
>> {"return": {}}
>> +{"execute": "device_add", "arguments": {"drive": "hd0", "driver": "scsi-hd", "id": "scsi-hd0"}}
>> {"return": {}}
>> +{"execute": "device_del", "arguments": {"id": "scsi-hd0"}}
>> {"return": {}}
>> +{"execute": "device_del", "arguments": {"id": "scsi0"}}
>> {"return": {}}
>> +{"execute": "blockdev-del", "arguments": {"node-name": "hd0"}}
>> {"return": {}}
>> +==Attach two SCSI disks using the same block device and the same iothread==
>> +{"execute": "blockdev-add", "arguments": {"driver": "null-co", "node-name": "hd0", "read-only": true, "read-zeroes": true}}
>> {"return": {}}
>> -
>> -=== Attach two SCSI disks using the same block device and the same iothread ===
>> -
>> -Testing:
>> -QMP_VERSION
>> +{"execute": "object-add", "arguments": {"id": "iothread0", "qom-type": "iothread"}}
>> {"return": {}}
>> +{"execute": "device_add", "arguments": {"driver": "virtio-scsi-pci", "id": "scsi0", "iothread": "iothread0"}}
>> {"return": {}}
>> +{"execute": "device_add", "arguments": {"drive": "hd0", "driver": "scsi-hd", "id": "scsi-hd0"}}
>> {"return": {}}
>> +{"execute": "device_add", "arguments": {"drive": "hd0", "driver": "scsi-hd", "id": "scsi-hd1"}}
>> {"return": {}}
>> +{"execute": "device_del", "arguments": {"id": "scsi-hd1"}}
>> {"return": {}}
>> +{"execute": "device_del", "arguments": {"id": "scsi-hd0"}}
>> {"return": {}}
>> +{"execute": "device_del", "arguments": {"id": "scsi0"}}
>> {"return": {}}
>> +{"execute": "blockdev-del", "arguments": {"node-name": "hd0"}}
>> {"return": {}}
>> +==Attach two SCSI disks using the same block device but different iothreads==
>> +{"execute": "blockdev-add", "arguments": {"driver": "null-co", "node-name": "hd0", "read-only": true, "read-zeroes": true}}
>> {"return": {}}
>> +{"execute": "object-add", "arguments": {"id": "iothread0", "qom-type": "iothread"}}
>> {"return": {}}
>> +{"execute": "object-add", "arguments": {"id": "iothread1", "qom-type": "iothread"}}
>> {"return": {}}
>> -
>> -=== Attach two SCSI disks using the same block device but different iothreads ===
>> -
>> -Testing:
>> -QMP_VERSION
>> -{"return": {}}
>> -{"return": {}}
>> -{"return": {}}
>> -{"return": {}}
>> +{"execute": "device_add", "arguments": {"driver": "virtio-scsi-pci", "id": "scsi0", "iothread": "iothread0"}}
>> {"return": {}}
>> +{"execute": "device_add", "arguments": {"driver": "virtio-scsi-pci", "id": "scsi1", "iothread": "iothread1"}}
>> {"return": {}}
>> +{"execute": "device_add", "arguments": {"bus": "scsi0.0", "drive": "hd0", "driver": "scsi-hd", "id": "scsi-hd0"}}
>> {"return": {}}
>> +{"execute": "device_add", "arguments": {"bus": "scsi1.0", "drive": "hd0", "driver": "scsi-hd", "id": "scsi-hd1"}}
>> {"error": {"class": "GenericError", "desc": "Cannot change iothread of active block backend"}}
>> +{"execute": "device_del", "arguments": {"id": "scsi-hd0"}}
>> {"return": {}}
>> +{"execute": "device_add", "arguments": {"bus": "scsi1.0", "drive": "hd0", "driver": "scsi-hd", "id": "scsi-hd1"}}
>> {"return": {}}
>> +{"execute": "device_del", "arguments": {"id": "scsi-hd1"}}
>> {"return": {}}
>> +{"execute": "device_del", "arguments": {"id": "scsi1"}}
>> {"return": {}}
>> +{"execute": "device_del", "arguments": {"id": "scsi0"}}
>> {"return": {}}
>> +{"execute": "blockdev-del", "arguments": {"node-name": "hd0"}}
>> {"return": {}}
>> +==Attach a SCSI disks using the same block device as a NBD server==
>> +{"execute": "blockdev-add", "arguments": {"driver": "null-co", "node-name": "hd0", "read-only": true, "read-zeroes": true}}
>> {"return": {}}
>> -
>> -=== Attach a SCSI disks using the same block device as a NBD server ===
>> -
>> -Testing:
>> -QMP_VERSION
>> -{"return": {}}
>> -{"return": {}}
>> +{"execute": "nbd-server-start", "arguments": {"addr": {"data": {"path": "SOCK_DIR/PID-nbd.sock"}, "type": "unix"}}}
>> {"return": {}}
>> +{"execute": "nbd-server-add", "arguments": {"device": "hd0"}}
>> {"return": {}}
>> +{"execute": "object-add", "arguments": {"id": "iothread0", "qom-type": "iothread"}}
>> {"return": {}}
>> +{"execute": "device_add", "arguments": {"driver": "virtio-scsi-pci", "id": "scsi0", "iothread": "iothread0"}}
>> {"return": {}}
>> +{"execute": "device_add", "arguments": {"drive": "hd0", "driver": "scsi-hd", "id": "scsi-hd0"}}
>> {"return": {}}
>> -{"return": {}}
>> -*** done
>> +....
>> +----------------------------------------------------------------------
>> +Ran 4 tests
>> +
>> +OK
>>
>
prev parent reply other threads:[~2020-10-29 12:34 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-19 16:36 [PATCH 0/4] Assorted fixes to tests that were broken by recent scsi changes Maxim Levitsky
2020-10-19 16:36 ` [PATCH 1/4] qdev: Fix two typos Maxim Levitsky
2020-10-19 19:51 ` Philippe Mathieu-Daudé
2020-10-24 5:34 ` Thomas Huth
2020-10-26 19:34 ` Laurent Vivier
2020-10-19 16:37 ` [PATCH 2/4] libqtest: fix the order of buffered events Maxim Levitsky
2020-10-19 16:37 ` [PATCH 3/4] libqtest: fix memory leak in the qtest_qmp_event_ref Maxim Levitsky
2020-10-24 5:37 ` Thomas Huth
2020-10-19 16:37 ` [PATCH 4/4] iotests: rewrite iotest 240 in python Maxim Levitsky
2020-10-29 11:16 ` Christian Borntraeger
2020-10-29 12:32 ` Paolo Bonzini [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f0eb66e3-f9bb-abd4-bf68-268245a43577@redhat.com \
--to=pbonzini@redhat.com \
--cc=berrange@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=ehabkost@redhat.com \
--cc=kwolf@redhat.com \
--cc=lvivier@redhat.com \
--cc=mlevitsk@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).