[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 04/15] test-qdev-global-props: Test global property o
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [PULL 04/15] test-qdev-global-props: Test global property ordering |
Date: |
Mon, 17 Jul 2017 15:50:40 -0300 |
Test case to detect the bug fixed by commit
"qdev: fix the order compat and global properties are applied".
Signed-off-by: Eduardo Habkost <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Reviewed-by: Halil Pasic <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>
---
tests/test-qdev-global-props.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/tests/test-qdev-global-props.c b/tests/test-qdev-global-props.c
index b25fe89..d81b086 100644
--- a/tests/test-qdev-global-props.c
+++ b/tests/test-qdev-global-props.c
@@ -33,6 +33,8 @@
#define STATIC_TYPE(obj) \
OBJECT_CHECK(MyType, (obj), TYPE_STATIC_PROPS)
+#define TYPE_SUBCLASS "static_prop_subtype"
+
#define PROP_DEFAULT 100
typedef struct MyType {
@@ -63,6 +65,11 @@ static const TypeInfo static_prop_type = {
.class_init = static_prop_class_init,
};
+static const TypeInfo subclass_type = {
+ .name = TYPE_SUBCLASS,
+ .parent = TYPE_STATIC_PROPS,
+};
+
/* Test simple static property setting to default value */
static void test_static_prop_subprocess(void)
{
@@ -279,12 +286,35 @@ static void test_dynamic_globalprop_nouser(void)
g_test_trap_assert_stdout("");
}
+/* Test if global props affecting subclasses are applied in the right order */
+static void test_subclass_global_props(void)
+{
+ MyType *mt;
+ /* Global properties must be applied in the order they were registered */
+ static GlobalProperty props[] = {
+ { TYPE_STATIC_PROPS, "prop1", "101" },
+ { TYPE_SUBCLASS, "prop1", "102" },
+ { TYPE_SUBCLASS, "prop2", "103" },
+ { TYPE_STATIC_PROPS, "prop2", "104" },
+ {}
+ };
+
+ qdev_prop_register_global_list(props);
+
+ mt = STATIC_TYPE(object_new(TYPE_SUBCLASS));
+ qdev_init_nofail(DEVICE(mt));
+
+ g_assert_cmpuint(mt->prop1, ==, 102);
+ g_assert_cmpuint(mt->prop2, ==, 104);
+}
+
int main(int argc, char **argv)
{
g_test_init(&argc, &argv, NULL);
module_call_init(MODULE_INIT_QOM);
type_register_static(&static_prop_type);
+ type_register_static(&subclass_type);
type_register_static(&dynamic_prop_type);
type_register_static(&hotplug_type);
type_register_static(&nohotplug_type);
@@ -310,6 +340,9 @@ int main(int argc, char **argv)
g_test_add_func("/qdev/properties/dynamic/global/nouser",
test_dynamic_globalprop_nouser);
+ g_test_add_func("/qdev/properties/global/subclass",
+ test_subclass_global_props);
+
g_test_run();
return 0;
--
2.9.4
- [Qemu-devel] [PULL 00/15] x86 and machine queue for 2.10 soft freeze, Eduardo Habkost, 2017/07/17
- [Qemu-devel] [PULL 01/15] device-crash-test: Fix regexp on whitelist, Eduardo Habkost, 2017/07/17
- [Qemu-devel] [PULL 02/15] tests: Test case for object_resolve_path*(), Eduardo Habkost, 2017/07/17
- [Qemu-devel] [PULL 03/15] qdev: fix the order compat and global properties are applied, Eduardo Habkost, 2017/07/17
- [Qemu-devel] [PULL 04/15] test-qdev-global-props: Test global property ordering,
Eduardo Habkost <=
- [Qemu-devel] [PULL 07/15] fw_cfg: switch fw_cfg_find() to locate the fw_cfg device by type rather than path, Eduardo Habkost, 2017/07/17
- [Qemu-devel] [PULL 05/15] Revert "machine: Convert abstract typename on compat_props to subclass names", Eduardo Habkost, 2017/07/17
- [Qemu-devel] [PULL 08/15] fw_cfg: move qdev_init_nofail() from fw_cfg_init1() to callers, Eduardo Habkost, 2017/07/17
- [Qemu-devel] [PULL 06/15] qom: Fix ambiguous path detection when ambiguous=NULL, Eduardo Habkost, 2017/07/17
- [Qemu-devel] [PULL 09/15] fw_cfg: move QOM type defines and fw_cfg types into fw_cfg.h, Eduardo Habkost, 2017/07/17
- [Qemu-devel] [PULL 10/15] i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf, Eduardo Habkost, 2017/07/17
- [Qemu-devel] [PULL 12/15] i386: add Skylake-Server cpu model, Eduardo Habkost, 2017/07/17
- [Qemu-devel] [PULL 13/15] tests: Simplify abstract-interfaces check with a helper, Eduardo Habkost, 2017/07/17
- [Qemu-devel] [PULL 11/15] i386: Update comment about XSAVES on Skylake-Client, Eduardo Habkost, 2017/07/17
- [Qemu-devel] [PULL 14/15] qmp: Include 'abstract' field on 'qom-list-types' output, Eduardo Habkost, 2017/07/17