gstreamer/docs/random/omega/testing/framework

144 lines
2.8 KiB
Text

Construction
Validation
Testing
Construction will generate some state
Validation will ensure that everything is kosher
Tests use combinations of the above to check things
##### Example:
parent = gst_object_get_parent(object);
setup:
create: new object
action: object = gst_object_new();
validation: object != NULL, object->parent == NULL, etc
[cleanup: gst_object_destroy(object);]
create: new parent
action: parent = gst_object_new();
validation: parent != NULL, parent->parent == NULL, etc
[cleanup: gst_object_destroy(parent);]
create: set object's parent
precondition: object->parent == NULL
action: gst_object_set_parent(object,parent);
validation: object->parent = parent
preconditions:
nothing
action:
curparent = gst_element_get_parent(object);
validation:
curparent == object->parent
curparent == parent
cleanup:
nothing
##### Resulting code:
///// setup
// new object
object = gst_object_new();
ASSERT(object != NULL);
ASSERT(object->parent == NULL);
// new object
parent = gst_object_new();
ASSERT(parent != NULL);
ASSERT(parent->parent == NULL);
// set object parent
ASSERT(object->parent == NULL);
gst_object_set_parent(object,parent);
ASSERT(object->parent != NULL);
///// preconditions
///// action
curparent = gst_element_get_parent(object);
///// validation
ASSERT(object->parent == parent);
///// cleanup
gst_object_destroy(parent);
gst_object_destroy(object);
##### XML descriptions
<construct name="new object">
<variable>
GstObject *object;
</variabls>
<action>
object = gst_object_new();
</action>
<validation>
<assert>
object != NULL
</assert>
<assert>
GST_IS_OBJECT(object)
<assert>
object->parent == NULL
</assert>
</validation>
<cleanup>
<validation>
<assert>
object != NULL
</assert>
<assert>
GST_IS_OBJECT(object)
</assert>
</validation>
<action>
gst_object_destroy(object);
</action>
</cleanup>
</construct>
<construct name="set object parent">
<variable>
GstObject *object;
</variable>
<variable>
GstObject *object;
</variable>
<precondition>
<assert>
object->parent == NULL
</assert>
</precondition>
<action>
gst_object_set_parent(object,parent);
</action>
<validation>
<assert>
object->parent == parent
</assert>
</validation>
</construct>
<test name="set object parent">
<variable>
GstObject *object;
<variable>
</variable>
GstObject *parent;
<variable>
</variable>
GstObject *curparent;
</variable>
<setup>
object = gst_object_new();
parent = gst_object_new();
gst_object_set_parent(object,parent);
</setup>
<action>
curparent = gst_element_get_parent(object);
</action>
<validation>
curparent == object->parent
curparent == parent
</validation>
</test>