gir_ffi 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. data/History.txt +6 -0
  2. data/lib/ffi-glib.rb +1 -0
  3. data/lib/ffi-glib/array.rb +49 -10
  4. data/lib/ffi-glib/hash_table.rb +19 -5
  5. data/lib/ffi-glib/list.rb +4 -1
  6. data/lib/ffi-glib/list_methods.rb +8 -1
  7. data/lib/ffi-glib/s_list.rb +4 -1
  8. data/lib/ffi-glib/strv.rb +31 -0
  9. data/lib/ffi-gobject.rb +2 -35
  10. data/lib/ffi-gobject/base.rb +38 -0
  11. data/lib/ffi-gobject/object.rb +28 -30
  12. data/lib/ffi-gobject/value.rb +72 -56
  13. data/lib/ffi-gobject_introspection/i_struct_info.rb +11 -1
  14. data/lib/ffi-gobject_introspection/lib.rb +3 -1
  15. data/lib/gir_ffi/arg_helper.rb +2 -19
  16. data/lib/gir_ffi/builder/argument.rb +239 -305
  17. data/lib/gir_ffi/builder/argument/base.rb +12 -9
  18. data/lib/gir_ffi/builder/argument/in_base.rb +2 -6
  19. data/lib/gir_ffi/builder/argument/in_out_base.rb +2 -5
  20. data/lib/gir_ffi/builder/argument/out_base.rb +0 -11
  21. data/lib/gir_ffi/builder/field.rb +55 -0
  22. data/lib/gir_ffi/builder/function.rb +7 -7
  23. data/lib/gir_ffi/builder/module.rb +5 -7
  24. data/lib/gir_ffi/builder/type/object.rb +0 -33
  25. data/lib/gir_ffi/builder/type/registered_type.rb +0 -16
  26. data/lib/gir_ffi/builder/type/struct_based.rb +3 -3
  27. data/lib/gir_ffi/builder/type/unintrospectable.rb +1 -1
  28. data/lib/gir_ffi/builder/type/with_layout.rb +26 -58
  29. data/lib/gir_ffi/builder/type/with_methods.rb +9 -11
  30. data/lib/gir_ffi/class_base.rb +24 -6
  31. data/lib/gir_ffi/ffi_ext/pointer.rb +15 -0
  32. data/lib/gir_ffi/in_pointer.rb +10 -5
  33. data/lib/gir_ffi/info_ext/i_field_info.rb +15 -0
  34. data/lib/gir_ffi/info_ext/i_type_info.rb +26 -0
  35. data/lib/gir_ffi/method_stubber.rb +18 -0
  36. data/lib/gir_ffi/type_map.rb +1 -0
  37. data/lib/gir_ffi/variable_name_generator.rb +2 -0
  38. data/lib/gir_ffi/version.rb +1 -1
  39. data/test/builder_test.rb +6 -5
  40. data/test/ffi-glib/array_test.rb +40 -5
  41. data/test/ffi-glib/hash_table_test.rb +27 -3
  42. data/test/ffi-glib/list_test.rb +23 -0
  43. data/test/ffi-glib/strv_test.rb +41 -0
  44. data/test/ffi-gobject/gobject_test.rb +26 -22
  45. data/test/ffi-gobject/value_test.rb +26 -1
  46. data/test/ffi-gobject_introspection/lib_test.rb +10 -0
  47. data/test/gir_ffi_test_helper.rb +1 -1
  48. data/test/integration/derived_classes_test.rb +31 -0
  49. data/test/integration/generated_gimarshallingtests_test.rb +29 -15
  50. data/test/integration/generated_gio_test.rb +5 -6
  51. data/test/integration/generated_regress_test.rb +11 -7
  52. data/test/integration/method_lookup_test.rb +32 -0
  53. data/test/interface_type_builder_test.rb +1 -1
  54. data/test/test_helper.rb +38 -0
  55. data/test/unit/argument_builder_test.rb +16 -4
  56. data/test/unit/class_base_test.rb +48 -0
  57. data/test/unit/function_builder_test.rb +144 -4
  58. data/test/unit/hash_table_element_type_provider_test.rb +16 -0
  59. data/test/unit/i_field_info_test.rb +39 -0
  60. data/test/unit/i_type_info_test.rb +23 -0
  61. data/test/unit/list_element_type_provider_test.rb +13 -0
  62. data/test/unit/module_builder_test.rb +1 -1
  63. data/test/unit/object_type_builder_test.rb +0 -17
  64. data/test/unit/struct_builder_test.rb +27 -39
  65. metadata +118 -60
  66. data/lib/gir_ffi/builder/argument/hash_table_base.rb +0 -20
  67. data/lib/gir_ffi/builder/argument/list_base.rb +0 -16
  68. data/test/class_base_test.rb +0 -10
  69. data/test/function_definition_builder_test.rb +0 -130
metadata CHANGED
@@ -1,82 +1,115 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: gir_ffi
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.2
3
+ version: !ruby/object:Gem::Version
4
+ hash: 17
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 3
10
+ version: 0.2.3
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Matijs van Zuijlen
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2011-12-06 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2011-12-31 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: ffi
16
- requirement: &11478020 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
17
24
  none: false
18
- requirements:
25
+ requirements:
19
26
  - - ~>
20
- - !ruby/object:Gem::Version
27
+ - !ruby/object:Gem::Version
28
+ hash: 7
29
+ segments:
30
+ - 1
31
+ - 0
32
+ - 8
21
33
  version: 1.0.8
22
34
  type: :runtime
23
- prerelease: false
24
- version_requirements: *11478020
25
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
26
37
  name: indentation
27
- requirement: &11477500 !ruby/object:Gem::Requirement
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
28
40
  none: false
29
- requirements:
41
+ requirements:
30
42
  - - ~>
31
- - !ruby/object:Gem::Version
43
+ - !ruby/object:Gem::Version
44
+ hash: 19
45
+ segments:
46
+ - 0
47
+ - 0
48
+ - 6
32
49
  version: 0.0.6
33
50
  type: :runtime
34
- prerelease: false
35
- version_requirements: *11477500
36
- - !ruby/object:Gem::Dependency
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
37
53
  name: minitest
38
- requirement: &11477020 !ruby/object:Gem::Requirement
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
39
56
  none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 11
61
+ segments:
62
+ - 2
63
+ - 0
64
+ - 2
43
65
  version: 2.0.2
44
66
  type: :development
45
- prerelease: false
46
- version_requirements: *11477020
47
- - !ruby/object:Gem::Dependency
67
+ version_requirements: *id003
68
+ - !ruby/object:Gem::Dependency
48
69
  name: rr
49
- requirement: &11476540 !ruby/object:Gem::Requirement
70
+ prerelease: false
71
+ requirement: &id004 !ruby/object:Gem::Requirement
50
72
  none: false
51
- requirements:
73
+ requirements:
52
74
  - - ~>
53
- - !ruby/object:Gem::Version
75
+ - !ruby/object:Gem::Version
76
+ hash: 19
77
+ segments:
78
+ - 1
79
+ - 0
80
+ - 2
54
81
  version: 1.0.2
55
82
  type: :development
56
- prerelease: false
57
- version_requirements: *11476540
58
- - !ruby/object:Gem::Dependency
83
+ version_requirements: *id004
84
+ - !ruby/object:Gem::Dependency
59
85
  name: rake
60
- requirement: &11476060 !ruby/object:Gem::Requirement
86
+ prerelease: false
87
+ requirement: &id005 !ruby/object:Gem::Requirement
61
88
  none: false
62
- requirements:
89
+ requirements:
63
90
  - - ~>
64
- - !ruby/object:Gem::Version
91
+ - !ruby/object:Gem::Version
92
+ hash: 63
93
+ segments:
94
+ - 0
95
+ - 9
96
+ - 2
65
97
  version: 0.9.2
66
98
  type: :development
67
- prerelease: false
68
- version_requirements: *11476060
99
+ version_requirements: *id005
69
100
  description:
70
- email:
101
+ email:
71
102
  - matijs@matijs.net
72
103
  executables: []
104
+
73
105
  extensions: []
74
- extra_rdoc_files:
106
+
107
+ extra_rdoc_files:
75
108
  - DESIGN.rdoc
76
109
  - History.txt
77
110
  - README.rdoc
78
111
  - TODO.rdoc
79
- files:
112
+ files:
80
113
  - lib/ffi-gtk3.rb
81
114
  - lib/gir_ffi.rb
82
115
  - lib/ffi-gtk/base.rb
@@ -111,6 +144,7 @@ files:
111
144
  - lib/ffi-glib/ptr_array.rb
112
145
  - lib/ffi-glib/list.rb
113
146
  - lib/ffi-glib/list_methods.rb
147
+ - lib/ffi-glib/strv.rb
114
148
  - lib/ffi-glib/hash_table.rb
115
149
  - lib/ffi-glib/byte_array.rb
116
150
  - lib/ffi-glib/s_list.rb
@@ -118,10 +152,8 @@ files:
118
152
  - lib/gir_ffi/builder_helper.rb
119
153
  - lib/gir_ffi/builder.rb
120
154
  - lib/gir_ffi/in_out_pointer.rb
121
- - lib/gir_ffi/builder/argument/list_base.rb
122
155
  - lib/gir_ffi/builder/argument/base.rb
123
156
  - lib/gir_ffi/builder/argument/in_base.rb
124
- - lib/gir_ffi/builder/argument/hash_table_base.rb
125
157
  - lib/gir_ffi/builder/argument/out_base.rb
126
158
  - lib/gir_ffi/builder/argument/in_out_base.rb
127
159
  - lib/gir_ffi/builder/module.rb
@@ -140,6 +172,7 @@ files:
140
172
  - lib/gir_ffi/builder/type/union.rb
141
173
  - lib/gir_ffi/builder/type/object.rb
142
174
  - lib/gir_ffi/builder/type.rb
175
+ - lib/gir_ffi/builder/field.rb
143
176
  - lib/gir_ffi/builder/argument.rb
144
177
  - lib/gir_ffi/interface_base.rb
145
178
  - lib/gir_ffi/module_base.rb
@@ -148,24 +181,27 @@ files:
148
181
  - lib/gir_ffi/in_pointer.rb
149
182
  - lib/gir_ffi/variable_name_generator.rb
150
183
  - lib/gir_ffi/version.rb
184
+ - lib/gir_ffi/info_ext/i_field_info.rb
185
+ - lib/gir_ffi/info_ext/i_type_info.rb
151
186
  - lib/gir_ffi/allocation_helper.rb
187
+ - lib/gir_ffi/ffi_ext/pointer.rb
188
+ - lib/gir_ffi/method_stubber.rb
152
189
  - lib/gir_ffi/arg_helper.rb
153
190
  - lib/gir_ffi/type_map.rb
154
191
  - lib/ffi-gobject/ruby_closure.rb
192
+ - lib/ffi-gobject/base.rb
155
193
  - lib/ffi-gobject/value.rb
156
194
  - lib/ffi-gobject/closure.rb
157
195
  - lib/ffi-gobject/initially_unowned.rb
158
196
  - lib/ffi-gobject/helper.rb
159
197
  - lib/ffi-gobject/object.rb
160
198
  - test/unintrospectable_type_builder_test.rb
161
- - test/function_definition_builder_test.rb
162
199
  - test/gir_ffi_test_helper.rb
163
200
  - test/arg_helper_test.rb
164
201
  - test/lib/Makefile.am
165
202
  - test/lib/autogen.sh
166
203
  - test/lib/configure.ac
167
204
  - test/lib/m4/jhflags.m4
168
- - test/class_base_test.rb
169
205
  - test/ffi-gobject_introspection/i_repository_test.rb
170
206
  - test/ffi-gobject_introspection/i_object_info_test.rb
171
207
  - test/ffi-gobject_introspection/i_base_info_test.rb
@@ -179,15 +215,20 @@ files:
179
215
  - test/unit/argument_builder_test.rb
180
216
  - test/unit/callback_builder_test.rb
181
217
  - test/unit/arg_helper_test.rb
218
+ - test/unit/i_type_info_test.rb
182
219
  - test/unit/constant_builder_test.rb
220
+ - test/unit/class_base_test.rb
183
221
  - test/unit/function_builder_test.rb
184
222
  - test/unit/module_builder_test.rb
223
+ - test/unit/hash_table_element_type_provider_test.rb
224
+ - test/unit/list_element_type_provider_test.rb
185
225
  - test/unit/interface_builder_test.rb
186
226
  - test/unit/in_out_pointer_test.rb
187
227
  - test/unit/callback_helper_test.rb
188
228
  - test/unit/builder_test.rb
189
229
  - test/unit/in_pointer_test.rb
190
230
  - test/unit/enum_builder_test.rb
231
+ - test/unit/i_field_info_test.rb
191
232
  - test/unit/struct_builder_test.rb
192
233
  - test/unit/object_type_builder_test.rb
193
234
  - test/unit/variable_name_generator_test.rb
@@ -196,6 +237,8 @@ files:
196
237
  - test/gtk_overrides_test.rb
197
238
  - test/integration/generated_regress_test.rb
198
239
  - test/integration/pretty_print_test.rb
240
+ - test/integration/derived_classes_test.rb
241
+ - test/integration/method_lookup_test.rb
199
242
  - test/integration/generated_gtk_test.rb
200
243
  - test/integration/generated_gobject_test.rb
201
244
  - test/integration/generated_gio_test.rb
@@ -204,6 +247,7 @@ files:
204
247
  - test/ffi-glib/array_test.rb
205
248
  - test/ffi-glib/hash_table_test.rb
206
249
  - test/ffi-glib/byte_array_test.rb
250
+ - test/ffi-glib/strv_test.rb
207
251
  - test/ffi-glib/glib_overrides_test.rb
208
252
  - test/ffi-glib/list_test.rb
209
253
  - test/ffi-glib/ptr_array_test.rb
@@ -233,34 +277,41 @@ files:
233
277
  - Rakefile
234
278
  homepage: http://www.github.com/mvz/ruby-gir-ffi
235
279
  licenses: []
280
+
236
281
  post_install_message:
237
- rdoc_options:
282
+ rdoc_options:
238
283
  - --main
239
284
  - README.rdoc
240
- require_paths:
285
+ require_paths:
241
286
  - lib
242
- required_ruby_version: !ruby/object:Gem::Requirement
287
+ required_ruby_version: !ruby/object:Gem::Requirement
243
288
  none: false
244
- requirements:
245
- - - ! '>='
246
- - !ruby/object:Gem::Version
247
- version: '0'
248
- required_rubygems_version: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ hash: 3
293
+ segments:
294
+ - 0
295
+ version: "0"
296
+ required_rubygems_version: !ruby/object:Gem::Requirement
249
297
  none: false
250
- requirements:
251
- - - ! '>='
252
- - !ruby/object:Gem::Version
253
- version: '0'
298
+ requirements:
299
+ - - ">="
300
+ - !ruby/object:Gem::Version
301
+ hash: 3
302
+ segments:
303
+ - 0
304
+ version: "0"
254
305
  requirements: []
306
+
255
307
  rubyforge_project:
256
- rubygems_version: 1.8.11
308
+ rubygems_version: 1.8.12
257
309
  signing_key:
258
310
  specification_version: 3
259
311
  summary: FFI-based GObject binding using the GObject Introspection Repository
260
- test_files:
312
+ test_files:
261
313
  - test/arg_helper_test.rb
262
314
  - test/builder_test.rb
263
- - test/class_base_test.rb
264
315
  - test/ffi-glib/array_test.rb
265
316
  - test/ffi-glib/byte_array_test.rb
266
317
  - test/ffi-glib/glib_overrides_test.rb
@@ -268,6 +319,7 @@ test_files:
268
319
  - test/ffi-glib/list_test.rb
269
320
  - test/ffi-glib/ptr_array_test.rb
270
321
  - test/ffi-glib/s_list_test.rb
322
+ - test/ffi-glib/strv_test.rb
271
323
  - test/ffi-gobject/g_object_overrides_test.rb
272
324
  - test/ffi-gobject/gobject_test.rb
273
325
  - test/ffi-gobject/object_test.rb
@@ -278,15 +330,16 @@ test_files:
278
330
  - test/ffi-gobject_introspection/i_object_info_test.rb
279
331
  - test/ffi-gobject_introspection/i_repository_test.rb
280
332
  - test/ffi-gobject_introspection/lib_test.rb
281
- - test/function_definition_builder_test.rb
282
333
  - test/gir_ffi_test_helper.rb
283
334
  - test/girffi_test.rb
284
335
  - test/gtk_overrides_test.rb
336
+ - test/integration/derived_classes_test.rb
285
337
  - test/integration/generated_gimarshallingtests_test.rb
286
338
  - test/integration/generated_gio_test.rb
287
339
  - test/integration/generated_gobject_test.rb
288
340
  - test/integration/generated_gtk_test.rb
289
341
  - test/integration/generated_regress_test.rb
342
+ - test/integration/method_lookup_test.rb
290
343
  - test/integration/pretty_print_test.rb
291
344
  - test/interface_type_builder_test.rb
292
345
  - test/lib/Makefile.am
@@ -301,12 +354,17 @@ test_files:
301
354
  - test/unit/builder_test.rb
302
355
  - test/unit/callback_builder_test.rb
303
356
  - test/unit/callback_helper_test.rb
357
+ - test/unit/class_base_test.rb
304
358
  - test/unit/constant_builder_test.rb
305
359
  - test/unit/enum_builder_test.rb
306
360
  - test/unit/function_builder_test.rb
361
+ - test/unit/hash_table_element_type_provider_test.rb
362
+ - test/unit/i_field_info_test.rb
363
+ - test/unit/i_type_info_test.rb
307
364
  - test/unit/in_out_pointer_test.rb
308
365
  - test/unit/in_pointer_test.rb
309
366
  - test/unit/interface_builder_test.rb
367
+ - test/unit/list_element_type_provider_test.rb
310
368
  - test/unit/module_builder_test.rb
311
369
  - test/unit/object_type_builder_test.rb
312
370
  - test/unit/struct_builder_test.rb
@@ -1,20 +0,0 @@
1
- module GirFFI
2
- module Builder
3
- module Argument
4
- # Module implementing helper methods needed by HashTable arguments.
5
- module HashTableBase
6
- private
7
-
8
- def key_t
9
- subtype_tag(0).inspect
10
- end
11
-
12
- def val_t
13
- subtype_tag(1).inspect
14
- end
15
- end
16
- end
17
- end
18
- end
19
-
20
-
@@ -1,16 +0,0 @@
1
- module GirFFI
2
- module Builder
3
- module Argument
4
- # Module implementing helper methods needed by List and SList
5
- # arguments.
6
- module ListBase
7
- private
8
-
9
- def elm_t
10
- subtype_tag.inspect
11
- end
12
- end
13
- end
14
- end
15
- end
16
-
@@ -1,10 +0,0 @@
1
- require File.expand_path('gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
-
3
- class ClassBaseTest < MiniTest::Spec
4
- context "A class derived from GirFFI::Base" do
5
- # TODO: See if we can test some part of Base again.
6
- should "pass" do
7
- assert true
8
- end
9
- end
10
- end
@@ -1,130 +0,0 @@
1
- require File.expand_path('gir_ffi_test_helper.rb', File.dirname(__FILE__))
2
-
3
- class FunctionDefinitionBuilderTest < MiniTest::Spec
4
- context "The Builder::Function class" do
5
- should "build correct definition of Gtk.init" do
6
- go = get_introspection_data 'Gtk', 'init'
7
- fbuilder = GirFFI::Builder::Function.new go, Lib
8
- code = fbuilder.generate
9
-
10
- expected = "
11
- def init argv
12
- argc = argv.length
13
- _v1 = GirFFI::InOutPointer.from :gint32, argc
14
- _v2 = GirFFI::InOutPointer.from_array :utf8, argv
15
- ::Lib.gtk_init _v1, _v2
16
- _v3 = _v1.to_value
17
- _v4 = _v2.to_sized_array_value _v3
18
- return _v4
19
- end
20
- "
21
-
22
- assert_equal cws(expected), cws(code)
23
- end
24
-
25
- should "build correct definition of Gtk::Widget.show" do
26
- go = get_method_introspection_data 'Gtk', 'Widget', 'show'
27
- fbuilder = GirFFI::Builder::Function.new go, Lib
28
- code = fbuilder.generate
29
-
30
- expected = "
31
- def show
32
- ::Lib.gtk_widget_show self
33
- end
34
- "
35
-
36
- assert_equal cws(expected), cws(code)
37
- end
38
-
39
- should "build correct definition of Regress.test_callback_destroy_notify" do
40
- go = get_introspection_data 'Regress', 'test_callback_destroy_notify'
41
- fbuilder = GirFFI::Builder::Function.new go, Lib
42
- code = fbuilder.generate
43
-
44
- expected =
45
- "def test_callback_destroy_notify callback, user_data, notify
46
- _v1 = GirFFI::CallbackHelper.wrap_in_callback_args_mapper \"Regress\", \"TestCallbackUserData\", callback
47
- ::Lib::CALLBACKS << _v1
48
- _v2 = GirFFI::ArgHelper.object_to_inptr user_data
49
- _v3 = GirFFI::CallbackHelper.wrap_in_callback_args_mapper \"GLib\", \"DestroyNotify\", notify
50
- ::Lib::CALLBACKS << _v3
51
- _v4 = ::Lib.regress_test_callback_destroy_notify _v1, _v2, _v3
52
- return _v4
53
- end"
54
-
55
- assert_equal cws(expected), cws(code)
56
- end
57
-
58
- should "build correct definition of Regress::TestObj#new_from_file" do
59
- go = get_method_introspection_data 'Regress', 'TestObj', 'new_from_file'
60
- fbuilder = GirFFI::Builder::Function.new go, Lib
61
- code = fbuilder.generate
62
-
63
- expected =
64
- "def new_from_file x
65
- _v1 = GirFFI::InPointer.from :utf8, x
66
- _v2 = FFI::MemoryPointer.new(:pointer).write_pointer nil
67
- _v3 = ::Lib.regress_test_obj_new_from_file _v1, _v2
68
- GirFFI::ArgHelper.check_error(_v2)
69
- _v4 = self.constructor_wrap(_v3)
70
- return _v4
71
- end"
72
-
73
- assert_equal cws(expected), cws(code)
74
- end
75
-
76
- should "build correct definition of Regress:test_array_int_null_in" do
77
- go = get_introspection_data 'Regress', 'test_array_int_null_in'
78
- fbuilder = GirFFI::Builder::Function.new go, Lib
79
- code = fbuilder.generate
80
-
81
- expected =
82
- "def test_array_int_null_in arr
83
- _v1 = GirFFI::InPointer.from_array :gint32, arr
84
- len = arr.nil? ? 0 : arr.length
85
- _v2 = len
86
- ::Lib.regress_test_array_int_null_in _v1, _v2
87
- end"
88
-
89
- assert_equal cws(expected), cws(code)
90
- end
91
-
92
- should "build correct definition of Regress:test_array_int_null_out" do
93
- go = get_introspection_data 'Regress', 'test_array_int_null_out'
94
- fbuilder = GirFFI::Builder::Function.new go, Lib
95
- code = fbuilder.generate
96
-
97
- expected =
98
- "def test_array_int_null_out
99
- _v1 = GirFFI::InOutPointer.for_array :gint32
100
- _v2 = GirFFI::InOutPointer.for :gint32
101
- ::Lib.regress_test_array_int_null_out _v1, _v2
102
- _v3 = _v2.to_value
103
- _v4 = _v1.to_sized_array_value _v3
104
- return _v4
105
- end"
106
-
107
- assert_equal cws(expected), cws(code)
108
- end
109
-
110
- it "builds the correct definition of GIMarshallingTests::Object#method_array_inout" do
111
- go = get_method_introspection_data 'GIMarshallingTests', 'Object', 'method_array_inout'
112
- fbuilder = GirFFI::Builder::Function.new go, Lib
113
- code = fbuilder.generate
114
-
115
- expected =
116
- "def method_array_inout ints
117
- _v1 = GirFFI::InOutPointer.from_array :gint32, ints
118
- length = ints.length
119
- _v2 = GirFFI::InOutPointer.from :gint32, length
120
- ::Lib.gi_marshalling_tests_object_method_array_inout self, _v1, _v2
121
- _v3 = _v2.to_value
122
- _v4 = _v1.to_sized_array_value _v3
123
- return _v4
124
- end"
125
-
126
- assert_equal cws(expected), cws(code)
127
- end
128
-
129
- end
130
- end