便利なテストデータ用API

便利なテストデータ用API — 構造体定義なしでテストデータを作成するためのAPI。

Functions

説明

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.

Functions

gcut_add_datum ()

void
gcut_add_datum (const gchar *name,
                const gchar *first_field_name,
                ...);

データ駆動テスト用のデータを追加します。複雑なテストデータのために新しく構造体を定義する必要がないため、cut_add_data()よりも便利です。

例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#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")));
}

利用可能な型とその時の値は以下の通りです。

G_TYPE_CHAR

gcharの値。

例:

1
2
3
gcut_add_datum("data name",
               "field-name", G_TYPE_CHAR, 'X',
               NULL);

G_TYPE_STRING

const gchar *value

例:

1
2
3
gcut_add_datum("data name",
               "field-name", G_TYPE_STRING, "string value",
               NULL);

G_TYPE_INT

gintの値。

例:

1
2
3
gcut_add_datum("data name",
               "field-name", G_TYPE_INT, 100,
               NULL);

G_TYPE_UINT

guintの値。

例:

1
2
3
gcut_add_datum("data name",
               "field-name", G_TYPE_UINT, 100,
               NULL);

G_TYPE_INT64

gint64の値。

例:

1
2
3
gcut_add_datum("data name",
               "field-name", G_TYPE_INT64, G_GINT64_CONSTANT(100),
               NULL);

G_TYPE_UINT64

guint64の値。

例:

1
2
3
gcut_add_datum("data name",
               "field-name", G_TYPE_UINT64, G_GUINT64_CONSTANT(100),
               NULL);

G_TYPE_GTYPE

GTypeの値。

例:

1
2
3
gcut_add_datum("data name",
               "field-name", G_TYPE_GTYPE, G_TYPE_OBJECT,
               NULL);

GFlagsの型

その型の値。

例:

1
2
3
gcut_add_datum("data name",
               "field-name", GTK_TYPE_WIDGET_FLAGS, GTK_TOPLEVEL | GTK_MAPPED,
               NULL);

GEnumの型

その型の値。

例:

1
2
3
gcut_add_datum("data name",
               "field-name", GTK_TYPE_WRAP_MODE, GTK_WRAP_NONE,
               NULL);

G_TYPE_POINTER

gconstpointer value, GDestroyNotify notify

valueが破棄されるときにnotifyが呼ばれます。

例:

1
2
3
gcut_add_datum("data name",
               "field-name", G_TYPE_POINTER, my_structure_new(...), my_structure_free,
               NULL);

注意: 値の所有者はCutterになります。解放しないで下さい。

GBoxedの型

その型の値。

例:

1
2
3
4
5
6
gcut_add_datum("data name",
               "field-name", G_TYPE_HASH_TABLE,
               gcut_hash_table_string_string_new("name1", "value1",
                                                 "name2", "value2",
                                                 NULL),
               NULL);

注意: 値の所有者はCutterになります。解放しないで下さい。

G_TYPE_BOOLEAN

gbooleanの値。

例:

1
2
3
gcut_add_datum("data name",
               "field-name", G_TYPE_BOOLEAN, TRUE,
               NULL);

G_TYPE_DOUBLE

gdoubleの値。

例:

1
2
3
gcut_add_datum("data name",
               "field-name", G_TYPE_DOUBLE, 2.9,
               NULL);

Parameters

name

データの名前。

 

first_field_name

最初のフィールド名。

 

...

最初のフィールドの型と値。その後に、フィールドの名前と型と値の3つを任意の数だけ指定します。最後の引数はNULLにしてください。詳細は関数の説明文のところにあります。

 

Since: 1.0.6


gcut_data_has_field ()

gboolean
gcut_data_has_field (gconstpointer data,
                     const gchar *field_name);

Parameters

data

gcut_add_datum()で追加したデータ。

 

field_name

フィールド名。

 

Returns

datafield_nameフィールドがあればTRUE、そうでなければFALSE

Since: 1.1.5


gcut_data_get_char()

#define             gcut_data_get_char(data, field_name)

field_nameフィールドの値を文字として取得します。

Parameters

data

gcut_add_datum()で追加したデータ。

 

field_name

フィールド名。

 

Returns

a field value corresponded to field_name .

Since: 1.1.3


gcut_data_get_string ()

const gchar *
gcut_data_get_string (gconstpointer data,
                      const gchar *field_name);

field_nameフィールドの値を文字列として取得します。

Parameters

data

gcut_add_datum()で追加したデータ。

 

field_name

フィールド名。

 

Returns

a field value corresponded to field_name .

Since: 1.0.6


gcut_data_get_int ()

gint
gcut_data_get_int (gconstpointer data,
                   const gchar *field_name);

field_nameフィールドの値を整数として取得します。

Parameters

data

gcut_add_datum()で追加したデータ。

 

field_name

フィールド名。

 

Returns

a field value corresponded to field_name .

Since: 1.0.6


gcut_data_get_uint ()

guint
gcut_data_get_uint (gconstpointer data,
                    const gchar *field_name);

field_nameの値を符号なし整数として取得します。

Parameters

data

gcut_add_datum()で追加したデータ。

 

field_name

フィールド名。

 

Returns

a field value corresponded to field_name .

Since: 1.0.6


gcut_data_get_int64()

#define             gcut_data_get_int64(data, field_name)

field_nameフィールドの値を64bit整数として取得します。

Parameters

data

gcut_add_datum()で追加したデータ。

 

field_name

フィールド名。

 

Returns

a field value corresponded to field_name .

Since: 1.1.3


gcut_data_get_uint64()

#define             gcut_data_get_uint64(data, field_name)

field_nameの値を64bit符号なし整数として取得します。

Parameters

data

gcut_add_datum()で追加したデータ。

 

field_name

フィールド名。

 

Returns

a field value corresponded to field_name .

Since: 1.1.3


gcut_data_get_size()

#define             gcut_data_get_size(data, field_name)

field_nameフィールドの値をsize_tとして取得します。

Parameters

data

gcut_add_datum()で追加したデータ。

 

field_name

フィールド名。

 

Returns

a field value corresponded to field_name .

Since: 1.1.3


gcut_data_get_flags ()

guint
gcut_data_get_flags (gconstpointer data,
                     const gchar *field_name);

field_nameの値をGFlags型の符号なし整数として取得します。

Parameters

data

gcut_add_datum()で追加したデータ。

 

field_name

フィールド名。

 

Returns

a field value corresponded to field_name .

Since: 1.0.6


gcut_data_get_enum ()

gint
gcut_data_get_enum (gconstpointer data,
                    const gchar *field_name);

field_nameフィールドの値をGEnum型の整数として取得します。

Parameters

data

gcut_add_datum()で追加したデータ。

 

field_name

フィールド名。

 

Returns

a field value corresponded to field_name .

Since: 1.0.6


gcut_data_get_pointer ()

gconstpointer
gcut_data_get_pointer (gconstpointer data,
                       const gchar *field_name);

field_nameの値をポインタとして取得します。

Parameters

data

gcut_add_datum()で追加したデータ。

 

field_name

フィールド名。

 

Returns

a field value corresponded to field_name .

Since: 1.0.6


gcut_data_get_boxed ()

gconstpointer
gcut_data_get_boxed (gconstpointer data,
                     const gchar *field_name);

field_nameフィールドの値をGBoxed型の値として取得します。

Parameters

data

gcut_add_datum()で追加したデータ。

 

field_name

フィールド名。

 

Returns

a field value corresponded to field_name .

Since: 1.0.7


gcut_data_get_object ()

GObject *
gcut_data_get_object (gconstpointer data,
                      const gchar *field_name);

field_nameフィールドの値をGObjectとして取得します。

Parameters

data

gcut_add_datum()で追加したデータ。

 

field_name

フィールド名。

 

Returns

a field value corresponded to field_name .

Since: 1.1.1


gcut_data_get_boolean ()

gboolean
gcut_data_get_boolean (gconstpointer data,
                       const gchar *field_name);

field_nameの値を真偽値として取得します。

Parameters

data

gcut_add_datum()で追加したデータ。

 

field_name

フィールド名。

 

Returns

a field value corresponded to field_name .

Since: 1.1.3


gcut_data_get_double ()

gdouble
gcut_data_get_double (gconstpointer data,
                      const gchar *field_name);

field_nameの値を倍精度浮動小数点数として取得します。

Parameters

data

gcut_add_datum()で追加したデータ。

 

field_name

フィールド名。

 

Returns

a field value corresponded to field_name .

Since: 1.1.3

Types and Values