Message ID | 1434463863-26560-5-git-send-email-ghammer@redhat.com |
---|---|
State | New |
Headers | show |
On Tue, 16 Jun 2015 17:11:03 +0300 Gal Hammer <ghammer@redhat.com> wrote: > Signed-off-by: Gal Hammer <ghammer@redhat.com> > --- > tests/Makefile | 2 ++ > tests/vmgenid-test.c | 44 > ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 > insertions(+) create mode 100644 tests/vmgenid-test.c > > diff --git a/tests/Makefile b/tests/Makefile > index c5e4744..3608068 100644 > --- a/tests/Makefile > +++ b/tests/Makefile > @@ -177,6 +177,7 @@ check-qtest-i386-y += tests/pc-cpu-test$(EXESUF) > check-qtest-i386-y += tests/q35-test$(EXESUF) > gcov-files-i386-y += hw/pci-host/q35.c > check-qtest-i386-$(CONFIG_LINUX) += tests/vhost-user-test$(EXESUF) > +check-qtest-i386-y += tests/vmgenid-test$(EXESUF) > check-qtest-x86_64-y = $(check-qtest-i386-y) > gcov-files-i386-y += i386-softmmu/hw/timer/mc146818rtc.c > gcov-files-x86_64-y = $(subst > i386-softmmu/,x86_64-softmmu/,$(gcov-files-i386-y)) @@ -396,6 +397,7 > @@ tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o > qemu-char.o qemu-timer.o > tests/qemu-iotests/socket_scm_helper$(EXESUF): > tests/qemu-iotests/socket_scm_helper.o tests/test-qemu-opts$(EXESUF): > tests/test-qemu-opts.o libqemuutil.a libqemustub.a > tests/test-write-threshold$(EXESUF): tests/test-write-threshold.o > $(block-obj-y) libqemuutil.a libqemustub.a > +tests/vmgenid-test$(EXESUF): tests/vmgenid-test.o ifeq > ($(CONFIG_POSIX),y) LIBS += -lutil diff --git a/tests/vmgenid-test.c > b/tests/vmgenid-test.c new file mode 100644 index 0000000..dad1f1b > --- /dev/null > +++ b/tests/vmgenid-test.c > @@ -0,0 +1,44 @@ > +/* > + * QTest testcase for VM Generation ID > + * > + * Copyright (c) 2015 Red Hat, Inc. > + * > + * 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 <string.h> > +#include "libqtest.h" > + > +static void vmgenid_test(void) > +{ > + static const uint8_t expected[16] = { > + 0x32, 0x4e, 0x6e, 0xaf, 0xd1, 0xd1, 0x4b, 0xf6, > + 0xbf, 0x41, 0xb9, 0xbb, 0x6c, 0x91, 0xfb, 0x87 > + }; > + uint8_t guid[16]; > + uint32_t i; > + > + /* Skip the ACPI ADDR method and read the GUID directly from > memory. */ > + for (i = 0; i < 16; i++) { > + guid[i] = readb(0xfedf0000 + i); get address from vmgidid.addr property > + } > + > + g_assert_cmpuint(sizeof(guid), ==, sizeof(expected)); > + g_assert(memcmp(guid, expected, sizeof(guid)) == 0); > +} > + > +int main(int argc, char **argv) > +{ > + int ret; > + > + g_test_init(&argc, &argv, NULL); > + qtest_add_func("/vmgenid/vmgenid", vmgenid_test); > + > + qtest_start("-device > vmgenid,uuid=324e6eaf-d1d1-4bf6-bf41-b9bb6c91fb87"); add case for non default addr value, BTW if board would use default mapping addr then it should also set vmgenid.addr to it so that introspection tools would see actual mapped addr. > + ret = g_test_run(); > + > + qtest_end(); > + > + return ret; > +}
diff --git a/tests/Makefile b/tests/Makefile index c5e4744..3608068 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -177,6 +177,7 @@ check-qtest-i386-y += tests/pc-cpu-test$(EXESUF) check-qtest-i386-y += tests/q35-test$(EXESUF) gcov-files-i386-y += hw/pci-host/q35.c check-qtest-i386-$(CONFIG_LINUX) += tests/vhost-user-test$(EXESUF) +check-qtest-i386-y += tests/vmgenid-test$(EXESUF) check-qtest-x86_64-y = $(check-qtest-i386-y) gcov-files-i386-y += i386-softmmu/hw/timer/mc146818rtc.c gcov-files-x86_64-y = $(subst i386-softmmu/,x86_64-softmmu/,$(gcov-files-i386-y)) @@ -396,6 +397,7 @@ tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o qemu-char.o qemu-timer.o tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o tests/test-qemu-opts$(EXESUF): tests/test-qemu-opts.o libqemuutil.a libqemustub.a tests/test-write-threshold$(EXESUF): tests/test-write-threshold.o $(block-obj-y) libqemuutil.a libqemustub.a +tests/vmgenid-test$(EXESUF): tests/vmgenid-test.o ifeq ($(CONFIG_POSIX),y) LIBS += -lutil diff --git a/tests/vmgenid-test.c b/tests/vmgenid-test.c new file mode 100644 index 0000000..dad1f1b --- /dev/null +++ b/tests/vmgenid-test.c @@ -0,0 +1,44 @@ +/* + * QTest testcase for VM Generation ID + * + * Copyright (c) 2015 Red Hat, Inc. + * + * 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 <string.h> +#include "libqtest.h" + +static void vmgenid_test(void) +{ + static const uint8_t expected[16] = { + 0x32, 0x4e, 0x6e, 0xaf, 0xd1, 0xd1, 0x4b, 0xf6, + 0xbf, 0x41, 0xb9, 0xbb, 0x6c, 0x91, 0xfb, 0x87 + }; + uint8_t guid[16]; + uint32_t i; + + /* Skip the ACPI ADDR method and read the GUID directly from memory. */ + for (i = 0; i < 16; i++) { + guid[i] = readb(0xfedf0000 + i); + } + + g_assert_cmpuint(sizeof(guid), ==, sizeof(expected)); + g_assert(memcmp(guid, expected, sizeof(guid)) == 0); +} + +int main(int argc, char **argv) +{ + int ret; + + g_test_init(&argc, &argv, NULL); + qtest_add_func("/vmgenid/vmgenid", vmgenid_test); + + qtest_start("-device vmgenid,uuid=324e6eaf-d1d1-4bf6-bf41-b9bb6c91fb87"); + ret = g_test_run(); + + qtest_end(); + + return ret; +}
Signed-off-by: Gal Hammer <ghammer@redhat.com> --- tests/Makefile | 2 ++ tests/vmgenid-test.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 tests/vmgenid-test.c