From cd355e86a28bfed7744ac567f06ab18a12d1ad1d Mon Sep 17 00:00:00 2001 From: Philip Chimento Date: Sat, 6 Feb 2016 20:31:27 -0800 Subject: tests: Add regression test for signal w. array+len This is a regression test for marshalling callback arguments from signals with an array parameter and separate length parameter into closures in the introspected language. https://bugzilla.gnome.org/show_bug.cgi?id=761659 --- .../Regress.TestObj-sig-with-array-len-prop.page | 4 ++- ...gress.TestObj.emit_sig_with_array_len_prop.page | 38 ++++++++++++++++++++++ .../Regress.TestObj-sig-with-array-len-prop.page | 4 ++- ...gress.TestObj.emit_sig_with_array_len_prop.page | 26 +++++++++++++++ .../Regress.TestObj-sig-with-array-len-prop.page | 4 ++- ...gress.TestObj.emit_sig_with_array_len_prop.page | 37 +++++++++++++++++++++ tests/scanner/Regress-1.0-expected.gir | 15 ++++++++- tests/scanner/Regress-1.0-sections-expected.txt | 1 + tests/scanner/regress.c | 14 +++++++- tests/scanner/regress.h | 3 ++ 10 files changed, 141 insertions(+), 5 deletions(-) create mode 100644 tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_array_len_prop.page create mode 100644 tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_array_len_prop.page create mode 100644 tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_array_len_prop.page diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-array-len-prop.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-array-len-prop.page index dcb254b1..ab7407d5 100644 --- a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-array-len-prop.page +++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-sig-with-array-len-prop.page @@ -14,7 +14,9 @@ void sig-with-array-len-prop (guint* arr, gint len); -

This test signal similar to GSettings::change-event

+

This test signal similar to GSettings::change-event. +You can use this with , or +raise from the introspection client language.

diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_array_len_prop.page b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_array_len_prop.page new file mode 100644 index 00000000..331e3eb4 --- /dev/null +++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj.emit_sig_with_array_len_prop.page @@ -0,0 +1,38 @@ + + + + + + + void + + regress_test_obj_emit_sig_with_array_len_prop + + RegressTestObj* + obj + + + + regress_test_obj_emit_sig_with_array_len_prop + +void regress_test_obj_emit_sig_with_array_len_prop (RegressTestObj* obj); + + + + + +<code>obj</code> + + + +<code>Returns</code> + + + + + diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-array-len-prop.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-array-len-prop.page index 6af8b356..588eab4a 100644 --- a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-array-len-prop.page +++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj-sig-with-array-len-prop.page @@ -13,7 +13,9 @@ connect('sig-with-array-len-prop', function (testObj, arr: Array(Number(guint)), ): void); -

This test signal similar to GSettings::change-event

+

This test signal similar to GSettings::change-event. +You can use this with , or +raise from the introspection client language.

diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_array_len_prop.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_array_len_prop.page new file mode 100644 index 00000000..014e56db --- /dev/null +++ b/tests/scanner/Regress-1.0-Gjs-expected/Regress.TestObj.emit_sig_with_array_len_prop.page @@ -0,0 +1,26 @@ + + + + + + + void + + regress_test_obj_emit_sig_with_array_len_prop + + + Regress.TestObj.prototype.emit_sig_with_array_len_prop + +function emit_sig_with_array_len_prop(): void { + // Gjs wrapper for regress_test_obj_emit_sig_with_array_len_prop() +} + + + + + diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-array-len-prop.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-array-len-prop.page index 2b38065c..04c8eb25 100644 --- a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-array-len-prop.page +++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-sig-with-array-len-prop.page @@ -13,7 +13,9 @@ def callback(test_obj, arr, len, user_param1, ...) -

This test signal similar to GSettings::change-event

+

This test signal similar to GSettings::change-event. +You can use this with , or +raise from the introspection client language.

diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_array_len_prop.page b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_array_len_prop.page new file mode 100644 index 00000000..8c768bb4 --- /dev/null +++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj.emit_sig_with_array_len_prop.page @@ -0,0 +1,37 @@ + + + + + + + none + + regress_test_obj_emit_sig_with_array_len_prop + + Regress.TestObj + self + + + + Regress.TestObj.emit_sig_with_array_len_prop + +@accepts(Regress.TestObj) +@returns(none) +def emit_sig_with_array_len_prop(self): + # Python wrapper for regress_test_obj_emit_sig_with_array_len_prop() + + + + + +<code>self</code> + + + + + diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir index 321a7c60..658b17fb 100644 --- a/tests/scanner/Regress-1.0-expected.gir +++ b/tests/scanner/Regress-1.0-expected.gir @@ -3056,6 +3056,17 @@ case. + + + + + + + + + + @@ -3628,7 +3639,9 @@ raise an error. - This test signal similar to GSettings::change-event + This test signal similar to GSettings::change-event. +You can use this with regress_test_obj_emit_sig_with_array_len_prop(), or +raise from the introspection client language. diff --git a/tests/scanner/Regress-1.0-sections-expected.txt b/tests/scanner/Regress-1.0-sections-expected.txt index 26ace9ab..4c5100e4 100644 --- a/tests/scanner/Regress-1.0-sections-expected.txt +++ b/tests/scanner/Regress-1.0-sections-expected.txt @@ -336,6 +336,7 @@ RegressTestInterfaceIface RegressTestObj RegressTestObjClass regress_test_obj_do_matrix +regress_test_obj_emit_sig_with_array_len_prop regress_test_obj_emit_sig_with_foreign_struct regress_test_obj_emit_sig_with_int64 regress_test_obj_emit_sig_with_obj diff --git a/tests/scanner/regress.c b/tests/scanner/regress.c index 6eac6f7b..c317682a 100644 --- a/tests/scanner/regress.c +++ b/tests/scanner/regress.c @@ -2329,7 +2329,9 @@ regress_test_obj_class_init (RegressTestObjClass *klass) * @arr: (array length=len) (element-type uint) (allow-none): numbers, or %NULL * @len: length of @arr, or 0 * - * This test signal similar to GSettings::change-event + * This test signal similar to GSettings::change-event. + * You can use this with regress_test_obj_emit_sig_with_array_len_prop(), or + * raise from the introspection client language. */ regress_test_obj_signals[REGRESS_TEST_OBJ_SIGNAL_SIG_NEW_WITH_ARRAY_LEN_PROP] = g_signal_new ("sig-with-array-len-prop", @@ -2756,6 +2758,16 @@ regress_test_obj_emit_sig_with_uint64 (RegressTestObj *obj) g_assert (ret == G_MAXUINT64); } +/** + * regress_test_obj_emit_sig_with_array_len_prop: + */ +void +regress_test_obj_emit_sig_with_array_len_prop (RegressTestObj *obj) +{ + int arr[] = { 0, 1, 2, 3, 4 }; + g_signal_emit_by_name (obj, "sig-with-array-len-prop", &arr, 5); +} + int regress_test_obj_instance_method (RegressTestObj *obj) { diff --git a/tests/scanner/regress.h b/tests/scanner/regress.h index 780f8e21..c1106902 100644 --- a/tests/scanner/regress.h +++ b/tests/scanner/regress.h @@ -827,6 +827,9 @@ void regress_test_obj_emit_sig_with_int64 (RegressTestObj *obj); _GI_TEST_EXTERN void regress_test_obj_emit_sig_with_uint64 (RegressTestObj *obj); +_GI_TEST_EXTERN +void regress_test_obj_emit_sig_with_array_len_prop (RegressTestObj *obj); + _GI_TEST_EXTERN int regress_test_obj_instance_method (RegressTestObj *obj); -- cgit v1.2.1