| Top |
Convenience test data APIConvenience test data API — API to create test data without structure definition. |
| void | gcut_add_datum () |
| gboolean | gcut_data_has_field () |
| #define | gcut_data_get_char() |
| const gchar * | gcut_data_get_string () |
| gint | gcut_data_get_int () |
| guint | gcut_data_get_uint () |
| #define | gcut_data_get_int64() |
| #define | gcut_data_get_uint64() |
| #define | gcut_data_get_size() |
| guint | gcut_data_get_flags () |
| gint | gcut_data_get_enum () |
| gconstpointer | gcut_data_get_pointer () |
| gconstpointer | gcut_data_get_boxed () |
| GObject * | gcut_data_get_object () |
| gboolean | gcut_data_get_boolean () |
| gdouble | gcut_data_get_double () |
cut_add_data() requires custom data type for complex test
data. But it's not easy to write. gcut_add_datum()
provides API to use complex test data without custom data
type. It uses GType for providing complex data.
void gcut_add_datum (const gchar *name,const gchar *first_field_name,...);
Adds a datum to be used in data driven test. It's
convenient rather than cut_add_data() because you doesn't
need to define a new structure for a complex test data.
e.g.:
#include <gcutter.h>
void data_translate (void);
void test_translate (gconstpointer data);
static const gchar*
translate (gint input)
{
switch(input) {
case 1:
return "first";
case 111:
return "a hundred eleven";
default:
return "unsupported";
}
}
void
data_translate(void)
{
gcut_add_datum("simple data",
"translated", G_TYPE_STRING, "first",
"input", G_TYPE_INT, 1,
NULL);
gcut_add_datum("complex data",
"translated", G_TYPE_STRING, "a hundred eleven",
"input", G_TYPE_INT, 111,
NULL);
}
void
test_translate(gconstpointer data)
{
cut_assert_equal_string(gcut_data_get_string(data, "translated"),
translate(gcut_data_get_int(data, "input")));
}
Available types and their values are the followings:
|
gchar value e.g.:
gcut_add_datum("data name",
"field-name", G_TYPE_CHAR, 'X',
NULL);
|
|
|
const gchar *value e.g.:
gcut_add_datum("data name",
"field-name", G_TYPE_STRING, "string value",
NULL);
|
|
|
gint value e.g.:
gcut_add_datum("data name",
"field-name", G_TYPE_INT, 100,
NULL);
|
|
|
guint value e.g.:
gcut_add_datum("data name",
"field-name", G_TYPE_UINT, 100,
NULL);
|
|
|
gint64 value e.g.:
gcut_add_datum("data name",
"field-name", G_TYPE_INT64, G_GINT64_CONSTANT(100),
NULL);
|
|
|
guint64 value e.g.:
gcut_add_datum("data name",
"field-name", G_TYPE_UINT64, G_GUINT64_CONSTANT(100),
NULL);
|
|
|
GType value e.g.:
gcut_add_datum("data name",
"field-name", G_TYPE_GTYPE, G_TYPE_OBJECT,
NULL);
|
|
GFlags types |
its type value. e.g.:
gcut_add_datum("data name",
"field-name", GTK_TYPE_WIDGET_FLAGS, GTK_TOPLEVEL | GTK_MAPPED,
NULL);
|
GEnum types |
its type value. e.g.:
gcut_add_datum("data name",
"field-name", GTK_TYPE_WRAP_MODE, GTK_WRAP_NONE,
NULL);
|
|
gconstpointer value, GDestroyNotify notify notify is called when value is destroyed. e.g.:
gcut_add_datum("data name",
"field-name", G_TYPE_POINTER, my_structure_new(...), my_structure_free,
NULL);
NOTE: value's ownership is passed to Cutter. Don't free it. |
|
GBoxed types |
its type value. e.g.:
gcut_add_datum("data name",
"field-name", G_TYPE_HASH_TABLE,
gcut_hash_table_string_string_new("name1", "value1",
"name2", "value2",
NULL),
NULL);
NOTE: value's ownership is passed to Cutter. Don't free it. |
|
gboolean value e.g.:
gcut_add_datum("data name",
"field-name", G_TYPE_BOOLEAN, TRUE,
NULL);
|
|
|
gdouble value e.g.:
gcut_add_datum("data name",
"field-name", G_TYPE_DOUBLE, 2.9,
NULL);
|
name |
the name of the data. |
|
first_field_name |
the first field name. |
|
... |
the type and value pair of the first field,
followed optionally by the next field name, type
and value triples. |
Since 1.0.6
gboolean gcut_data_has_field (gconstpointer data,const gchar *field_name);
Since 1.1.5
#define gcut_data_get_char(data, field_name)
Gets a field value identified by field_name
as char.
Since 1.1.3
const gchar * gcut_data_get_string (gconstpointer data,const gchar *field_name);
Gets a field value identified by field_name
as string.
Since 1.0.6
gint gcut_data_get_int (gconstpointer data,const gchar *field_name);
Gets a field value identified by field_name
as integer.
Since 1.0.6
guint gcut_data_get_uint (gconstpointer data,const gchar *field_name);
Gets a field value identified by field_name
as
unsigned integer.
Since 1.0.6
#define gcut_data_get_int64(data, field_name)
Gets a field value identified by field_name
as 64-bit
integer.
Since 1.1.3
#define gcut_data_get_uint64(data, field_name)
Gets a field value identified by field_name
as
64-bit unsigned integer.
Since 1.1.3
#define gcut_data_get_size(data, field_name)
Gets a field value identified by field_name
as size_t.
Since 1.1.3
guint gcut_data_get_flags (gconstpointer data,const gchar *field_name);
Gets a field value identified by field_name
as
unsigned integer of GFlags.
Since 1.0.6
gint gcut_data_get_enum (gconstpointer data,const gchar *field_name);
Gets a field value identified by field_name
as
integer of GEnum type.
Since 1.0.6
gconstpointer gcut_data_get_pointer (gconstpointer data,const gchar *field_name);
Gets a field value identified by field_name
as
pointer.
Since 1.0.6
gconstpointer gcut_data_get_boxed (gconstpointer data,const gchar *field_name);
Gets a field value identified by field_name
as
GBoxed type value.
Since 1.0.7
GObject * gcut_data_get_object (gconstpointer data,const gchar *field_name);
Gets a field value identified by field_name
as
GObject type value.
Since 1.1.1
gboolean gcut_data_get_boolean (gconstpointer data,const gchar *field_name);
Gets a field value identified by field_name
as boolean.
Since 1.1.3
gdouble gcut_data_get_double (gconstpointer data,const gchar *field_name);
Gets a field value identified by field_name
as double
floating point number.
Since 1.1.3