[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/3] test-qdev-global-props: Test global propert
From: |
Greg Kurz |
Subject: |
Re: [Qemu-devel] [PATCH 2/3] test-qdev-global-props: Test global property ordering |
Date: |
Tue, 11 Jul 2017 15:16:34 +0200 |
On Mon, 10 Jul 2017 21:43:02 -0300
Eduardo Habkost <address@hidden> wrote:
> 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>
> ---
Reviewed-by: Greg Kurz <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 48e5b73..ef2951f 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;
pgp4X0CRzg89r.pgp
Description: OpenPGP digital signature
[Qemu-devel] [PATCH 2/3] test-qdev-global-props: Test global property ordering, Eduardo Habkost, 2017/07/10
[Qemu-devel] [PATCH 3/3] Revert "machine: Convert abstract typename on compat_props to subclass names", Eduardo Habkost, 2017/07/10