[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 43/44] tests: Use field properties at check-qom-proplist test
From: |
Eduardo Habkost |
Subject: |
[PATCH v2 43/44] tests: Use field properties at check-qom-proplist test case |
Date: |
Wed, 4 Nov 2020 11:00:20 -0500 |
Use field properties for the bool and string properties used at
check-qom-proplist.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
Changes v2:
* Redone patch using PROP_* instead of DEFINE_PROP_*
---
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: qemu-devel@nongnu.org
---
include/qom/property-types.h | 2 +-
tests/check-qom-proplist.c | 64 +++++-------------------------------
2 files changed, 10 insertions(+), 56 deletions(-)
diff --git a/include/qom/property-types.h b/include/qom/property-types.h
index a891dffb6e..3a36e1fec5 100644
--- a/include/qom/property-types.h
+++ b/include/qom/property-types.h
@@ -242,7 +242,7 @@ extern const PropertyInfo prop_info_link;
*/
#define FIELD_PROP(def) \
- ({ static Property _p = def; &p; })
+ ({ static Property _p = def; &_p; })
#define PROP_SIGNED(...) \
FIELD_PROP(DEFINE_PROP_SIGNED(NULL, __VA_ARGS__))
diff --git a/tests/check-qom-proplist.c b/tests/check-qom-proplist.c
index 1b76581980..b960df1964 100644
--- a/tests/check-qom-proplist.c
+++ b/tests/check-qom-proplist.c
@@ -26,6 +26,9 @@
#include "qemu/option.h"
#include "qemu/config-file.h"
#include "qom/object_interfaces.h"
+#include "qom/field-property.h"
+#include "qom/field-property-internal.h"
+#include "qom/property-types.h"
#define TYPE_DUMMY "qemu-dummy"
@@ -68,24 +71,6 @@ struct DummyObjectClass {
};
-static void dummy_set_bv(Object *obj,
- bool value,
- Error **errp)
-{
- DummyObject *dobj = DUMMY_OBJECT(obj);
-
- dobj->bv = value;
-}
-
-static bool dummy_get_bv(Object *obj,
- Error **errp)
-{
- DummyObject *dobj = DUMMY_OBJECT(obj);
-
- return dobj->bv;
-}
-
-
static void dummy_set_av(Object *obj,
int value,
Error **errp)
@@ -103,39 +88,18 @@ static int dummy_get_av(Object *obj,
return dobj->av;
}
-
-static void dummy_set_sv(Object *obj,
- const char *value,
- Error **errp)
-{
- DummyObject *dobj = DUMMY_OBJECT(obj);
-
- g_free(dobj->sv);
- dobj->sv = g_strdup(value);
-}
-
-static char *dummy_get_sv(Object *obj,
- Error **errp)
-{
- DummyObject *dobj = DUMMY_OBJECT(obj);
-
- return g_strdup(dobj->sv);
-}
-
-
static void dummy_init(Object *obj)
{
- object_property_add_bool(obj, "bv",
- dummy_get_bv,
- dummy_set_bv);
+ object_property_add_field(obj, "bv",
+ PROP_BOOL(DummyObject, bv, false),
+ prop_allow_set_always);
}
-
static void dummy_class_init(ObjectClass *cls, void *data)
{
- object_class_property_add_str(cls, "sv",
- dummy_get_sv,
- dummy_set_sv);
+ object_class_property_add_field(cls, "sv",
+ PROP_STRING(DummyObject, sv),
+ prop_allow_set_always);
object_class_property_add_enum(cls, "av",
"DummyAnimal",
&dummy_animal_map,
@@ -143,21 +107,11 @@ static void dummy_class_init(ObjectClass *cls, void *data)
dummy_set_av);
}
-
-static void dummy_finalize(Object *obj)
-{
- DummyObject *dobj = DUMMY_OBJECT(obj);
-
- g_free(dobj->sv);
-}
-
-
static const TypeInfo dummy_info = {
.name = TYPE_DUMMY,
.parent = TYPE_OBJECT,
.instance_size = sizeof(DummyObject),
.instance_init = dummy_init,
- .instance_finalize = dummy_finalize,
.class_size = sizeof(DummyObjectClass),
.class_init = dummy_class_init,
.interfaces = (InterfaceInfo[]) {
--
2.28.0
- [PATCH v2 29/44] qdev: Remove ArrayElementProperty.propname field, (continued)
- [PATCH v2 29/44] qdev: Remove ArrayElementProperty.propname field, Eduardo Habkost, 2020/11/04
- [PATCH v2 40/44] qdev: Move core field property code to QOM, Eduardo Habkost, 2020/11/04
- [PATCH v2 23/44] qdev: Make PropertyInfo.create return ObjectProperty*, Eduardo Habkost, 2020/11/04
- [PATCH v2 26/44] qdev: Rename Property.name to Property.qdev_prop_name, Eduardo Habkost, 2020/11/04
- [PATCH v2 33/44] qdev: Make qdev_prop_allow_set() a ObjectProperty.allow_set callback, Eduardo Habkost, 2020/11/04
- [PATCH v2 41/44] qdev: Move base property types to qom/property-types.c, Eduardo Habkost, 2020/11/04
- [PATCH v2 34/44] qdev: Make qdev_propinfo_get_uint16() static, Eduardo Habkost, 2020/11/04
- [PATCH v2 43/44] tests: Use field properties at check-qom-proplist test case,
Eduardo Habkost <=
- [PATCH v2 19/44] qdev: Add name parameter to qdev_class_add_property(), Eduardo Habkost, 2020/11/04
- [PATCH v2 24/44] qdev: Make qdev_class_add_property() more flexible, Eduardo Habkost, 2020/11/04
- [PATCH v2 30/44] qdev: Get rid of ArrayElementProperty struct, Eduardo Habkost, 2020/11/04
- [PATCH v2 44/44] machine: Register most properties as field properties, Eduardo Habkost, 2020/11/04
- [PATCH v2 38/44] qdev: Rename qdev_prop_* to prop_info_*, Eduardo Habkost, 2020/11/04
- [PATCH v2 37/44] qdev: Move qdev_prop_tpm declaration to tpm_prop.h, Eduardo Habkost, 2020/11/04
- [PATCH v2 25/44] qdev: Separate generic and device-specific property registration, Eduardo Habkost, 2020/11/04
- [PATCH v2 35/44] qdev: Rename qdev_propinfo_* to field_prop_*, Eduardo Habkost, 2020/11/04
- [PATCH v2 42/44] qom: Include static property API reference in documentation, Eduardo Habkost, 2020/11/04