diff options
author | Johan Dahlin <johan@gnome.org> | 2010-09-02 17:18:35 -0300 |
---|---|---|
committer | Johan Dahlin <johan@gnome.org> | 2010-09-02 17:19:18 -0300 |
commit | b0b18465bc01e4b261670c40f7122d9516c430fd (patch) | |
tree | d09225deff43a4fc6d66c7e60eb8a5f3ff26af20 | |
parent | 4da9654e44eff6eb7c22510d89a3b00e969a16ab (diff) | |
download | gobject-introspection-b0b18465bc01e4b261670c40f7122d9516c430fd.tar.gz |
[tests] Add callback scope tests
And fix a bug in the warning call in the scanner
-rw-r--r-- | giscanner/maintransformer.py | 4 | ||||
-rw-r--r-- | tests/warn/Makefile.am | 2 | ||||
-rw-r--r-- | tests/warn/callback-invalid-scope.h | 11 | ||||
-rw-r--r-- | tests/warn/callback-missing-scope.h | 5 |
4 files changed, 20 insertions, 2 deletions
diff --git a/giscanner/maintransformer.py b/giscanner/maintransformer.py index 9a8d93de..1aeb089b 100644 --- a/giscanner/maintransformer.py +++ b/giscanner/maintransformer.py @@ -485,9 +485,9 @@ class MainTransformer(object): if scope not in [ast.PARAM_SCOPE_CALL, ast.PARAM_SCOPE_ASYNC, ast.PARAM_SCOPE_NOTIFIED]: - message.warn( + message.warn_node( parent, - "Invalid scope %r for parameter %r" % (scope, param.name)) + "Invalid scope %r for parameter %r" % (scope, param.argname)) else: param.scope = scope param.transfer = ast.PARAM_TRANSFER_NONE diff --git a/tests/warn/Makefile.am b/tests/warn/Makefile.am index aefc7a70..2d3c3240 100644 --- a/tests/warn/Makefile.am +++ b/tests/warn/Makefile.am @@ -1,6 +1,8 @@ include $(top_srcdir)/common.mk TESTS = \ + callback-invalid-scope.h \ + callback-missing-scope.h \ return-gobject.h \ unresolved-type.h diff --git a/tests/warn/callback-invalid-scope.h b/tests/warn/callback-invalid-scope.h new file mode 100644 index 00000000..c42a49a9 --- /dev/null +++ b/tests/warn/callback-invalid-scope.h @@ -0,0 +1,11 @@ +#include "common.h" + +/** + * test_callback_invalid: + * @callback: (scope invalid): + * + */ +void test_callback_invalid(GCallback *callback, gpointer user_data); + +// EXPECT:8: Warning: Test: test_callback_invalid: argument callback: Missing (scope) annotation for callback without GDestroyNotify (valid: call, async) +// EXPECT:8: Warning: Test: Invalid scope 'invalid' for parameter 'callback' diff --git a/tests/warn/callback-missing-scope.h b/tests/warn/callback-missing-scope.h new file mode 100644 index 00000000..7932198e --- /dev/null +++ b/tests/warn/callback-missing-scope.h @@ -0,0 +1,5 @@ +#include "common.h" + +void test_callback(GCallback *callback, gpointer user_data); + +// EXPECT:3: Warning: Test: test_callback: argument callback: Missing (scope) annotation for callback without GDestroyNotify (valid: call, async) |