summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZach Goldberg <zach@zachgoldberg.com>2010-04-17 13:37:54 -0400
committerZach Goldberg <zach@zachgoldberg.com>2010-04-17 16:44:30 -0400
commit7b6656e2f39d88671758dbf0775688fc53660936 (patch)
treece10a6ad86ae09d0505f2d0882a61421083ce6c1
parentcfd7aea1536919b5eee7b3d5f215961d8e479e40 (diff)
downloadgobject-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
-rw-r--r--gir/Everything-1.0-expected.gir115
-rw-r--r--gir/everything.c85
-rw-r--r--gir/everything.h9
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);