diff options
author | Zach Goldberg <zach@zachgoldberg.com> | 2010-04-17 13:37:54 -0400 |
---|---|---|
committer | Zach Goldberg <zach@zachgoldberg.com> | 2010-04-17 16:44:30 -0400 |
commit | 7b6656e2f39d88671758dbf0775688fc53660936 (patch) | |
tree | ce10a6ad86ae09d0505f2d0882a61421083ce6c1 /gir | |
parent | cfd7aea1536919b5eee7b3d5f215961d8e479e40 (diff) | |
download | gobject-introspection-7b6656e2f39d88671758dbf0775688fc53660936.tar.gz |
Add a bunch of new tests for nullable args in Everything module
https://bugzilla.gnome.org/show_bug.cgi?id=616039
Diffstat (limited to 'gir')
-rw-r--r-- | gir/Everything-1.0-expected.gir | 115 | ||||
-rw-r--r-- | gir/everything.c | 85 | ||||
-rw-r--r-- | gir/everything.h | 9 |
3 files changed, 209 insertions, 0 deletions
diff --git a/gir/Everything-1.0-expected.gir b/gir/Everything-1.0-expected.gir index 6503f055..bd7eba19 100644 --- a/gir/Everything-1.0-expected.gir +++ b/gir/Everything-1.0-expected.gir @@ -726,6 +726,44 @@ case."> </parameter> </parameters> </function> + <function name="test_array_int_null_in" + c:identifier="test_array_int_null_in"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="arr" transfer-ownership="none" allow-none="1"> + <array c:type="int*"> + <type name="int"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + </parameters> + </function> + <function name="test_array_int_null_out" + c:identifier="test_array_int_null_out"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="arr" + direction="out" + transfer-ownership="full" + allow-none="1"> + <array c:type="int**"> + <type name="int"/> + </array> + </parameter> + <parameter name="len" + direction="out" + transfer-ownership="full" + doc=": length"> + <type name="int" c:type="int*"/> + </parameter> + </parameters> + </function> <function name="test_array_int_out" c:identifier="test_array_int_out"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> @@ -1136,6 +1174,16 @@ call and can be released on return."> </parameter> </parameters> </function> + <function name="test_ghash_null_out" c:identifier="test_ghash_null_out"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="out" transfer-ownership="none"> + <type name="GLib.HashTable" c:type="GHashTable**"/> + </parameter> + </parameters> + </function> <function name="test_ghash_null_return" c:identifier="test_ghash_null_return"> <return-value transfer-ownership="none"> @@ -1241,6 +1289,28 @@ call and can be released on return."> </type> </return-value> </function> + <function name="test_glist_null_in" c:identifier="test_glist_null_in"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="in" transfer-ownership="none" allow-none="1"> + <type name="GLib.SList" c:type="GSList*"> + <type name="utf8"/> + </type> + </parameter> + </parameters> + </function> + <function name="test_glist_null_out" c:identifier="test_glist_null_out"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="list_out" transfer-ownership="none"> + <type name="GLib.SList" c:type="GSList**"/> + </parameter> + </parameters> + </function> <function name="test_gslist_container_in" c:identifier="test_gslist_container_in"> <return-value transfer-ownership="none"> @@ -1337,6 +1407,28 @@ call and can be released on return."> </type> </return-value> </function> + <function name="test_gslist_null_in" c:identifier="test_gslist_null_in"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="in" transfer-ownership="none" allow-none="1"> + <type name="GLib.SList" c:type="GSList*"> + <type name="utf8"/> + </type> + </parameter> + </parameters> + </function> + <function name="test_gslist_null_out" c:identifier="test_gslist_null_out"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="out_list" transfer-ownership="none"> + <type name="GLib.SList" c:type="GSList**"/> + </parameter> + </parameters> + </function> <function name="test_gtype" c:identifier="test_gtype"> <return-value transfer-ownership="none"> <type name="GType" c:type="GType"/> @@ -1775,6 +1867,29 @@ call and can be released on return."> <type name="utf8" c:type="char*"/> </return-value> </function> + <function name="test_utf8_null_in" c:identifier="test_utf8_null_in"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="in" transfer-ownership="full" allow-none="1"> + <type name="utf8" c:type="char*"/> + </parameter> + </parameters> + </function> + <function name="test_utf8_null_out" c:identifier="test_utf8_null_out"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="char_out" + direction="out" + transfer-ownership="full" + allow-none="1"> + <type name="utf8" c:type="char**"/> + </parameter> + </parameters> + </function> <function name="test_utf8_out" c:identifier="test_utf8_out"> <return-value transfer-ownership="none"> <type name="none" c:type="void"/> diff --git a/gir/everything.c b/gir/everything.c index 006798a6..5e4aaaaa 100644 --- a/gir/everything.c +++ b/gir/everything.c @@ -416,6 +416,24 @@ test_utf8_out_nonconst_return (char **out) return g_strdup ("first"); } +/** + * test_utf8_null_in: + * @in: (allow-none): + */ +void test_utf8_null_in (char *in) +{ + g_assert (in == NULL); +} + +/** + * test_utf8_null_out: + * @char_out: (allow-none) (out): + */ +void test_utf8_null_out (char **char_out) +{ + *char_out = NULL; +} + /* non-basic-types */ @@ -733,6 +751,27 @@ test_array_int_none_out(int *len) { return result; } +/** + * test_array_int_null_in: + * @arr: (array length=1) (allow-none): + * @len: length + */ +void test_array_int_null_in (int *arr, int len) +{ + g_assert (arr == NULL); +} + +/** + * test_array_int_null_out: + * @arr: (out) (array length=1) (allow-none): + * @len: (out) : length + */ +void test_array_int_null_out (int **arr, int *len) +{ + *arr = NULL; + *len = 0; +} + /* interface */ /************************************************************************/ @@ -857,6 +896,25 @@ void test_glist_everything_in (GList *in) test_glist_free (in); } +/** + * test_glist_null_in: + * @in: (element-type utf8) (allow-none): + */ +void test_glist_null_in (GSList *in) +{ + g_assert (in == NULL); +} + +/** + * test_glist_null_out: + * @out_list: (out) (element-type utf8) (allow-none): + */ +void test_glist_null_out (GSList **out_list) +{ + *out_list = NULL; +} + + /************************************************************************/ /* GSList */ @@ -979,6 +1037,24 @@ void test_gslist_everything_in (GSList *in) test_gslist_free (in); } +/** + * test_gslist_null_in: + * @in: (element-type utf8) (allow-none): + */ +void test_gslist_null_in (GSList *in) +{ + g_assert (in == NULL); +} + +/** + * test_gslist_null_out: + * @out_list: (out) (element-type utf8) (allow-none): + */ +void test_gslist_null_out (GSList **out_list) +{ + *out_list = NULL; +} + /************************************************************************/ /* GHash */ @@ -1102,6 +1178,15 @@ void test_ghash_null_in (const GHashTable *in) } /** + * test_ghash_null_out: + * @out: (element-type utf8 utf8) (allow-none) (out): + */ +void test_ghash_null_out (const GHashTable **out) +{ + *out = NULL; +} + +/** * test_ghash_nothing_in: * @in: (element-type utf8 utf8): */ diff --git a/gir/everything.h b/gir/everything.h index 5521c4a5..c20d88e3 100644 --- a/gir/everything.h +++ b/gir/everything.h @@ -40,6 +40,8 @@ void test_utf8_const_in (const char *in); void test_utf8_out (char **out); void test_utf8_inout (char **inout); GSList *test_filename_return (void); +void test_utf8_null_in (char *in); +void test_utf8_null_out (char **char_out); /* in arguments after out arguments */ void test_int_out_utf8 (int *length, const char *in); @@ -74,6 +76,8 @@ gboolean test_strv_in_container (char **arr); int *test_array_int_full_out(int *len); int *test_array_int_none_out(int *len); +void test_array_int_null_in (int *arr, int len); +void test_array_int_null_out (int **arr, int *len); /* interface */ /* GList */ @@ -85,6 +89,8 @@ void test_glist_nothing_in (const GList *in); void test_glist_nothing_in2 (GList *in); void test_glist_container_in (GList *in); void test_glist_everything_in (GList *in); +void test_glist_null_in(GSList *in); +void test_glist_null_out(GSList **out_list); void test_glist_free (GList *in); /* GSList */ @@ -96,6 +102,8 @@ void test_gslist_nothing_in (const GSList *in); void test_gslist_nothing_in2 (GSList *in); void test_gslist_container_in (GSList *in); void test_gslist_everything_in (GSList *in); +void test_gslist_null_in(GSList *in); +void test_gslist_null_out(GSList **out_list); void test_gslist_free (GSList *in); /* GHashTable */ @@ -105,6 +113,7 @@ GHashTable *test_ghash_nothing_return2 (void); GHashTable *test_ghash_container_return (void); GHashTable *test_ghash_everything_return (void); void test_ghash_null_in (const GHashTable *in); +void test_ghash_null_out (const GHashTable **out); void test_ghash_nothing_in (const GHashTable *in); void test_ghash_nothing_in2 (GHashTable *in); void test_ghash_container_in (GHashTable *in); |