gstreamer/docs/random/omega/testing/framework

145 lines
2.8 KiB
Text
Raw Normal View History

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);
validaton:
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>