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.
- data/History.txt +6 -0
- data/lib/ffi-glib.rb +1 -0
- data/lib/ffi-glib/array.rb +49 -10
- data/lib/ffi-glib/hash_table.rb +19 -5
- data/lib/ffi-glib/list.rb +4 -1
- data/lib/ffi-glib/list_methods.rb +8 -1
- data/lib/ffi-glib/s_list.rb +4 -1
- data/lib/ffi-glib/strv.rb +31 -0
- data/lib/ffi-gobject.rb +2 -35
- data/lib/ffi-gobject/base.rb +38 -0
- data/lib/ffi-gobject/object.rb +28 -30
- data/lib/ffi-gobject/value.rb +72 -56
- data/lib/ffi-gobject_introspection/i_struct_info.rb +11 -1
- data/lib/ffi-gobject_introspection/lib.rb +3 -1
- data/lib/gir_ffi/arg_helper.rb +2 -19
- data/lib/gir_ffi/builder/argument.rb +239 -305
- data/lib/gir_ffi/builder/argument/base.rb +12 -9
- data/lib/gir_ffi/builder/argument/in_base.rb +2 -6
- data/lib/gir_ffi/builder/argument/in_out_base.rb +2 -5
- data/lib/gir_ffi/builder/argument/out_base.rb +0 -11
- data/lib/gir_ffi/builder/field.rb +55 -0
- data/lib/gir_ffi/builder/function.rb +7 -7
- data/lib/gir_ffi/builder/module.rb +5 -7
- data/lib/gir_ffi/builder/type/object.rb +0 -33
- data/lib/gir_ffi/builder/type/registered_type.rb +0 -16
- data/lib/gir_ffi/builder/type/struct_based.rb +3 -3
- data/lib/gir_ffi/builder/type/unintrospectable.rb +1 -1
- data/lib/gir_ffi/builder/type/with_layout.rb +26 -58
- data/lib/gir_ffi/builder/type/with_methods.rb +9 -11
- data/lib/gir_ffi/class_base.rb +24 -6
- data/lib/gir_ffi/ffi_ext/pointer.rb +15 -0
- data/lib/gir_ffi/in_pointer.rb +10 -5
- data/lib/gir_ffi/info_ext/i_field_info.rb +15 -0
- data/lib/gir_ffi/info_ext/i_type_info.rb +26 -0
- data/lib/gir_ffi/method_stubber.rb +18 -0
- data/lib/gir_ffi/type_map.rb +1 -0
- data/lib/gir_ffi/variable_name_generator.rb +2 -0
- data/lib/gir_ffi/version.rb +1 -1
- data/test/builder_test.rb +6 -5
- data/test/ffi-glib/array_test.rb +40 -5
- data/test/ffi-glib/hash_table_test.rb +27 -3
- data/test/ffi-glib/list_test.rb +23 -0
- data/test/ffi-glib/strv_test.rb +41 -0
- data/test/ffi-gobject/gobject_test.rb +26 -22
- data/test/ffi-gobject/value_test.rb +26 -1
- data/test/ffi-gobject_introspection/lib_test.rb +10 -0
- data/test/gir_ffi_test_helper.rb +1 -1
- data/test/integration/derived_classes_test.rb +31 -0
- data/test/integration/generated_gimarshallingtests_test.rb +29 -15
- data/test/integration/generated_gio_test.rb +5 -6
- data/test/integration/generated_regress_test.rb +11 -7
- data/test/integration/method_lookup_test.rb +32 -0
- data/test/interface_type_builder_test.rb +1 -1
- data/test/test_helper.rb +38 -0
- data/test/unit/argument_builder_test.rb +16 -4
- data/test/unit/class_base_test.rb +48 -0
- data/test/unit/function_builder_test.rb +144 -4
- data/test/unit/hash_table_element_type_provider_test.rb +16 -0
- data/test/unit/i_field_info_test.rb +39 -0
- data/test/unit/i_type_info_test.rb +23 -0
- data/test/unit/list_element_type_provider_test.rb +13 -0
- data/test/unit/module_builder_test.rb +1 -1
- data/test/unit/object_type_builder_test.rb +0 -17
- data/test/unit/struct_builder_test.rb +27 -39
- metadata +118 -60
- data/lib/gir_ffi/builder/argument/hash_table_base.rb +0 -20
- data/lib/gir_ffi/builder/argument/list_base.rb +0 -16
- data/test/class_base_test.rb +0 -10
- 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
|
-
|
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
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2011-12-31 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: ffi
|
16
|
-
|
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
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
26
37
|
name: indentation
|
27
|
-
|
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
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
37
53
|
name: minitest
|
38
|
-
|
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
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
67
|
+
version_requirements: *id003
|
68
|
+
- !ruby/object:Gem::Dependency
|
48
69
|
name: rr
|
49
|
-
|
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
|
-
|
57
|
-
|
58
|
-
- !ruby/object:Gem::Dependency
|
83
|
+
version_requirements: *id004
|
84
|
+
- !ruby/object:Gem::Dependency
|
59
85
|
name: rake
|
60
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
248
|
-
|
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
|
-
|
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.
|
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
|
-
|
data/test/class_base_test.rb
DELETED
@@ -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
|