On Fri, Jan 15, 2021 at 04:09:36PM +0100, Philippe Mathieu-Daudé wrote: > This test fails when QEMU is built without the virtio-scsi device, > restrict it to its availability. > > Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com> Are you merging this with rest of patchset? > --- > Cc: "Michael S. Tsirkin" <m...@redhat.com> > > Note when running check-qtest-i386 I still get this failure: > > qemu-system-i386: Cannot map used > > it comes from virtio_init_region_cache(). Not sure I understand this part. > --- > tests/qtest/fuzz-test.c | 51 -------------------- > tests/qtest/fuzz-virtio-scsi-test.c | 75 +++++++++++++++++++++++++++++ > MAINTAINERS | 1 + > tests/qtest/meson.build | 1 + > 4 files changed, 77 insertions(+), 51 deletions(-) > create mode 100644 tests/qtest/fuzz-virtio-scsi-test.c > > diff --git a/tests/qtest/fuzz-test.c b/tests/qtest/fuzz-test.c > index 6188fbb8e96..d112798afe3 100644 > --- a/tests/qtest/fuzz-test.c > +++ b/tests/qtest/fuzz-test.c > @@ -25,55 +25,6 @@ static void > test_lp1878642_pci_bus_get_irq_level_assert(void) > qtest_quit(s); > } > > -/* > - * Here a MemoryRegionCache pointed to an MMIO region but had a > - * larger size than the underlying region. > - */ > -static void test_mmio_oob_from_memory_region_cache(void) > -{ > - QTestState *s; > - > - s = qtest_init("-M pc-q35-5.2 -display none -m 512M " > - "-device virtio-scsi,num_queues=8,addr=03.0 "); > - > - qtest_outl(s, 0xcf8, 0x80001811); > - qtest_outb(s, 0xcfc, 0x6e); > - qtest_outl(s, 0xcf8, 0x80001824); > - qtest_outl(s, 0xcf8, 0x80001813); > - qtest_outl(s, 0xcfc, 0xa080000); > - qtest_outl(s, 0xcf8, 0x80001802); > - qtest_outl(s, 0xcfc, 0x5a175a63); > - qtest_outb(s, 0x6e08, 0x9e); > - qtest_writeb(s, 0x9f003, 0xff); > - qtest_writeb(s, 0x9f004, 0x01); > - qtest_writeb(s, 0x9e012, 0x0e); > - qtest_writeb(s, 0x9e01b, 0x0e); > - qtest_writeb(s, 0x9f006, 0x01); > - qtest_writeb(s, 0x9f008, 0x01); > - qtest_writeb(s, 0x9f00a, 0x01); > - qtest_writeb(s, 0x9f00c, 0x01); > - qtest_writeb(s, 0x9f00e, 0x01); > - qtest_writeb(s, 0x9f010, 0x01); > - qtest_writeb(s, 0x9f012, 0x01); > - qtest_writeb(s, 0x9f014, 0x01); > - qtest_writeb(s, 0x9f016, 0x01); > - qtest_writeb(s, 0x9f018, 0x01); > - qtest_writeb(s, 0x9f01a, 0x01); > - qtest_writeb(s, 0x9f01c, 0x01); > - qtest_writeb(s, 0x9f01e, 0x01); > - qtest_writeb(s, 0x9f020, 0x01); > - qtest_writeb(s, 0x9f022, 0x01); > - qtest_writeb(s, 0x9f024, 0x01); > - qtest_writeb(s, 0x9f026, 0x01); > - qtest_writeb(s, 0x9f028, 0x01); > - qtest_writeb(s, 0x9f02a, 0x01); > - qtest_writeb(s, 0x9f02c, 0x01); > - qtest_writeb(s, 0x9f02e, 0x01); > - qtest_writeb(s, 0x9f030, 0x01); > - qtest_outb(s, 0x6e10, 0x00); > - qtest_quit(s); > -} > - > int main(int argc, char **argv) > { > const char *arch = qtest_get_arch(); > @@ -83,8 +34,6 @@ int main(int argc, char **argv) > if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) { > qtest_add_func("fuzz/test_lp1878642_pci_bus_get_irq_level_assert", > test_lp1878642_pci_bus_get_irq_level_assert); > - qtest_add_func("fuzz/test_mmio_oob_from_memory_region_cache", > - test_mmio_oob_from_memory_region_cache); > } > > return g_test_run(); > diff --git a/tests/qtest/fuzz-virtio-scsi-test.c > b/tests/qtest/fuzz-virtio-scsi-test.c > new file mode 100644 > index 00000000000..aaf6d10e189 > --- /dev/null > +++ b/tests/qtest/fuzz-virtio-scsi-test.c > @@ -0,0 +1,75 @@ > +/* > + * QTest fuzzer-generated testcase for virtio-scsi device > + * > + * Copyright (c) 2020 Li Qiang <liq...@gmail.com> > + * > + * This work is licensed under the terms of the GNU GPL, version 2 or later. > + * See the COPYING file in the top-level directory. > + */ > + > +#include "qemu/osdep.h" > + > +#include "libqos/libqtest.h" > + > +/* > + * Here a MemoryRegionCache pointed to an MMIO region but had a > + * larger size than the underlying region. > + */ > +static void test_mmio_oob_from_memory_region_cache(void) > +{ > + QTestState *s; > + > + s = qtest_init("-M pc-q35-5.2 -display none -m 512M " > + "-device virtio-scsi,num_queues=8,addr=03.0 "); > + > + qtest_outl(s, 0xcf8, 0x80001811); > + qtest_outb(s, 0xcfc, 0x6e); > + qtest_outl(s, 0xcf8, 0x80001824); > + qtest_outl(s, 0xcf8, 0x80001813); > + qtest_outl(s, 0xcfc, 0xa080000); > + qtest_outl(s, 0xcf8, 0x80001802); > + qtest_outl(s, 0xcfc, 0x5a175a63); > + qtest_outb(s, 0x6e08, 0x9e); > + qtest_writeb(s, 0x9f003, 0xff); > + qtest_writeb(s, 0x9f004, 0x01); > + qtest_writeb(s, 0x9e012, 0x0e); > + qtest_writeb(s, 0x9e01b, 0x0e); > + qtest_writeb(s, 0x9f006, 0x01); > + qtest_writeb(s, 0x9f008, 0x01); > + qtest_writeb(s, 0x9f00a, 0x01); > + qtest_writeb(s, 0x9f00c, 0x01); > + qtest_writeb(s, 0x9f00e, 0x01); > + qtest_writeb(s, 0x9f010, 0x01); > + qtest_writeb(s, 0x9f012, 0x01); > + qtest_writeb(s, 0x9f014, 0x01); > + qtest_writeb(s, 0x9f016, 0x01); > + qtest_writeb(s, 0x9f018, 0x01); > + qtest_writeb(s, 0x9f01a, 0x01); > + qtest_writeb(s, 0x9f01c, 0x01); > + qtest_writeb(s, 0x9f01e, 0x01); > + qtest_writeb(s, 0x9f020, 0x01); > + qtest_writeb(s, 0x9f022, 0x01); > + qtest_writeb(s, 0x9f024, 0x01); > + qtest_writeb(s, 0x9f026, 0x01); > + qtest_writeb(s, 0x9f028, 0x01); > + qtest_writeb(s, 0x9f02a, 0x01); > + qtest_writeb(s, 0x9f02c, 0x01); > + qtest_writeb(s, 0x9f02e, 0x01); > + qtest_writeb(s, 0x9f030, 0x01); > + qtest_outb(s, 0x6e10, 0x00); > + qtest_quit(s); > +} > + > +int main(int argc, char **argv) > +{ > + const char *arch = qtest_get_arch(); > + > + g_test_init(&argc, &argv, NULL); > + > + if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) { > + qtest_add_func("fuzz/test_mmio_oob_from_memory_region_cache", > + test_mmio_oob_from_memory_region_cache); > + } > + > + return g_test_run(); > +} > diff --git a/MAINTAINERS b/MAINTAINERS > index b2ef820a9fa..fcbe3ac79a8 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1717,6 +1717,7 @@ S: Supported > F: include/hw/scsi/* > F: hw/scsi/* > F: tests/qtest/virtio-scsi-test.c > +F: tests/qtest/fuzz-virtio-scsi-test.c > T: git https://github.com/bonzini/qemu.git scsi-next > > SSI > diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build > index a24e7f1c34a..fedce3ee3c1 100644 > --- a/tests/qtest/meson.build > +++ b/tests/qtest/meson.build > @@ -6,6 +6,7 @@ > > qtests_generic = \ > (config_all_devices.has_key('CONFIG_MEGASAS_SCSI_PCI') ? > ['fuzz-megasas-test'] : []) + \ > + (config_all_devices.has_key('CONFIG_VIRTIO_SCSI') ? > ['fuzz-virtio-scsi-test'] : []) + \ > [ > 'cdrom-test', > 'device-introspect-test', > -- > 2.26.2