Message ID | 1444668104-22955-2-git-send-email-marcandre.lureau@redhat.com |
---|---|
State | New |
Headers | show |
Am 12.10.2015 um 18:40 schrieb marcandre.lureau@redhat.com: > From: Andreas Färber <afaerber@suse.de> > > Note that it launches two instances, as sharing memory is the purpose of > ivshmem. > > Cc: Cam Macdonell <cam@cs.ualberta.ca> > Cc: Marc-André Lureau <marcandre.lureau@redhat.com> > Signed-off-by: Andreas Färber <afaerber@suse.de> > [ Remove Nahanni codename, add test to pci set - Marc-André ] > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > tests/Makefile | 3 +++ > tests/ivshmem-test.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 54 insertions(+) > create mode 100644 tests/ivshmem-test.c > > diff --git a/tests/Makefile b/tests/Makefile > index dbd32a6..c44b8de 100644 > --- a/tests/Makefile > +++ b/tests/Makefile > @@ -149,6 +149,8 @@ gcov-files-pci-y += hw/display/virtio-gpu-pci.c > gcov-files-pci-$(CONFIG_VIRTIO_VGA) += hw/display/virtio-vga.c > check-qtest-pci-y += tests/intel-hda-test$(EXESUF) > gcov-files-pci-y += hw/audio/intel-hda.c hw/audio/hda-codec.c > +check-qtest-pci-$(CONFIG_IVSHMEM) += tests/ivshmem-test$(EXESUF) > +gcov-files-pci-y += hw/misc/ivshmem.c Based on my comment from Saturday, this line is probably wrong... but doesn't need to hold up this queue. My patch adding it to i386 variable had used i386-softmmu/hw/... path. We then have this for x86_64: gcov-files-x86_64-y = $(subst i386-softmmu/,x86_64-softmmu/,$(gcov-files-i386-y)) gcov-files-pci-y is currently only added to i386, so the prefix could just be added back, whereas when we do pci tests also for ppc, arm, etc. we'll have to copy that subst around or think of a better solution. Marc-André, can you prepare a follow-up fix for ivshmem-test please? Regards, Andreas > > check-qtest-i386-y = tests/endianness-test$(EXESUF) > check-qtest-i386-y += tests/fdc-test$(EXESUF) [snip]
diff --git a/tests/Makefile b/tests/Makefile index dbd32a6..c44b8de 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -149,6 +149,8 @@ gcov-files-pci-y += hw/display/virtio-gpu-pci.c gcov-files-pci-$(CONFIG_VIRTIO_VGA) += hw/display/virtio-vga.c check-qtest-pci-y += tests/intel-hda-test$(EXESUF) gcov-files-pci-y += hw/audio/intel-hda.c hw/audio/hda-codec.c +check-qtest-pci-$(CONFIG_IVSHMEM) += tests/ivshmem-test$(EXESUF) +gcov-files-pci-y += hw/misc/ivshmem.c check-qtest-i386-y = tests/endianness-test$(EXESUF) check-qtest-i386-y += tests/fdc-test$(EXESUF) @@ -440,6 +442,7 @@ tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_hel tests/test-qemu-opts$(EXESUF): tests/test-qemu-opts.o $(test-util-obj-y) tests/test-write-threshold$(EXESUF): tests/test-write-threshold.o $(test-block-obj-y) tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y) +tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o ifeq ($(CONFIG_POSIX),y) LIBS += -lutil diff --git a/tests/ivshmem-test.c b/tests/ivshmem-test.c new file mode 100644 index 0000000..2f6bec8 --- /dev/null +++ b/tests/ivshmem-test.c @@ -0,0 +1,51 @@ +/* + * QTest testcase for ivshmem + * + * Copyright (c) 2014 SUSE LINUX Products GmbH + * + * 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 <glib.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include "libqtest.h" +#include "qemu/osdep.h" + +static char dev_shm_path[] = "/dev/shm/qtest.XXXXXX"; + +/* Tests only initialization so far. TODO: Replace with functional tests */ +static void nop(void) +{ +} + +int main(int argc, char **argv) +{ + QTestState *s1, *s2; + char *cmd; + int ret, fd; + + g_test_init(&argc, &argv, NULL); + qtest_add_func("/ivshmem/nop", nop); + + fd = mkstemp(dev_shm_path); + g_assert(fd >= 0); + close(fd); + unlink(dev_shm_path); + + cmd = g_strdup_printf("-device ivshmem,shm=%s,size=1M", &dev_shm_path[9]); + s1 = qtest_start(cmd); + s2 = qtest_start(cmd); + g_free(cmd); + + ret = g_test_run(); + + qtest_quit(s1); + qtest_quit(s2); + + unlink(dev_shm_path); + + return ret; +}