summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Pitt <martin.pitt@ubuntu.com>2011-10-21 16:13:02 +0200
committerMartin Pitt <martin.pitt@ubuntu.com>2011-10-21 16:17:17 +0200
commitd6ab510feb72ac0ff30f0942e874e2d52f3e82f6 (patch)
treee2133b56018097013b0d8dbe69bdd75358cc2cdf
parentb100380f7bf0f785d8c6bd2c329cd44a17d5f103 (diff)
downloadgobject-introspection-d6ab510feb72ac0ff30f0942e874e2d52f3e82f6.tar.gz
Add regress test method for a (skip) return value without out arguments
This is a requisite for writing a pygobject test case for https://bugzilla.gnome.org/show_bug.cgi?id=662383
-rw-r--r--tests/scanner/Regress-1.0-expected.gir16
-rw-r--r--tests/scanner/regress.c24
-rw-r--r--tests/scanner/regress.h4
3 files changed, 44 insertions, 0 deletions
diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir
index d8cbd69c..161b5242 100644
--- a/tests/scanner/Regress-1.0-expected.gir
+++ b/tests/scanner/Regress-1.0-expected.gir
@@ -750,6 +750,22 @@ case.</doc>
</parameter>
</parameters>
</method>
+ <method name="skip_return_val_no_out"
+ c:identifier="regress_test_obj_skip_return_val_no_out"
+ throws="1">
+ <doc xml:whitespace="preserve">Check that the return value is skipped. Succeed if a is nonzero, otherwise
+raise an error.</doc>
+ <return-value transfer-ownership="none" skip="1">
+ <doc xml:whitespace="preserve">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="a" transfer-ownership="none">
+ <doc xml:whitespace="preserve">Parameter.</doc>
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="torture_signature_0"
c:identifier="regress_test_obj_torture_signature_0">
<return-value transfer-ownership="none">
diff --git a/tests/scanner/regress.c b/tests/scanner/regress.c
index d1efb2e3..dcd4976e 100644
--- a/tests/scanner/regress.c
+++ b/tests/scanner/regress.c
@@ -2254,6 +2254,30 @@ regress_test_obj_skip_return_val (RegressTestObj *obj,
}
/**
+ * regress_test_obj_skip_return_val_no_out:
+ * @obj: a #RegressTestObj
+ * @a: Parameter.
+ * @error: Return location for error.
+ *
+ * Check that the return value is skipped. Succeed if a is nonzero, otherwise
+ * raise an error.
+ *
+ * Returns: (skip): %TRUE if the call succeeds, %FALSE if @error is set.
+ */
+gboolean
+regress_test_obj_skip_return_val_no_out (RegressTestObj *obj,
+ gint a,
+ GError **error)
+{
+ if (a == 0) {
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "a is zero");
+ return FALSE;
+ } else {
+ return TRUE;
+ }
+}
+
+/**
* regress_test_obj_skip_param:
* @obj: A #RegressTestObj.
* @a: Parameter.
diff --git a/tests/scanner/regress.h b/tests/scanner/regress.h
index fa6e7c27..f76c1467 100644
--- a/tests/scanner/regress.h
+++ b/tests/scanner/regress.h
@@ -392,6 +392,10 @@ gboolean regress_test_obj_skip_return_val (RegressTestObj *obj,
gint num2,
GError **error);
+gboolean regress_test_obj_skip_return_val_no_out (RegressTestObj *obj,
+ gint a,
+ GError **error);
+
gboolean regress_test_obj_skip_param (RegressTestObj *obj,
gint a,
gint *out_b,