gir_ffi 0.0.3 → 0.0.4
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/DESIGN.rdoc +9 -0
- data/History.txt +11 -0
- data/TODO.rdoc +6 -9
- data/examples/01_empty_window.rb +1 -1
- data/examples/02_hello_world.rb +4 -4
- data/examples/03_upgraded_hello_world.rb +7 -8
- data/lib/gir_ffi.rb +0 -4
- data/lib/gir_ffi/arg_helper.rb +27 -2
- data/lib/gir_ffi/builder.rb +13 -86
- data/lib/gir_ffi/builder_helper.rb +2 -15
- data/lib/gir_ffi/class_base.rb +51 -0
- data/lib/gir_ffi/class_builder.rb +178 -52
- data/lib/gir_ffi/function_definition_builder.rb +46 -9
- data/lib/gir_ffi/g_object.rb +37 -0
- data/lib/gir_ffi/i_arg_info.rb +27 -9
- data/lib/gir_ffi/i_base_info.rb +12 -4
- data/lib/gir_ffi/i_callable_info.rb +15 -5
- data/lib/gir_ffi/i_enum_info.rb +9 -3
- data/lib/gir_ffi/i_field_info.rb +12 -4
- data/lib/gir_ffi/i_function_info.rb +24 -8
- data/lib/gir_ffi/i_object_info.rb +63 -21
- data/lib/gir_ffi/i_registered_type_info.rb +11 -0
- data/lib/gir_ffi/i_repository.rb +2 -2
- data/lib/gir_ffi/i_signal_info.rb +1 -1
- data/lib/gir_ffi/i_struct_info.rb +24 -8
- data/lib/gir_ffi/i_type_info.rb +24 -8
- data/lib/gir_ffi/i_union_info.rb +15 -0
- data/lib/gir_ffi/i_value_info.rb +3 -1
- data/lib/gir_ffi/i_vfunc_info.rb +12 -1
- data/lib/gir_ffi/lib.rb +23 -1
- data/lib/gir_ffi/lib_c.rb +1 -1
- data/lib/gir_ffi/module_base.rb +19 -0
- data/lib/gir_ffi/module_builder.rb +67 -20
- data/lib/gir_ffi/overrides/gobject.rb +174 -0
- data/lib/gir_ffi/overrides/gtk.rb +26 -9
- data/test/builder_test.rb +57 -37
- data/test/{base_test.rb → class_base_test.rb} +3 -3
- data/test/class_builder_test.rb +48 -6
- data/test/everything_test.rb +285 -36
- data/test/function_definition_builder_test.rb +11 -9
- data/test/g_object_test.rb +22 -0
- data/test/gobject_overrides_test.rb +216 -0
- data/test/i_object_info_test.rb +21 -0
- data/test/module_builder_test.rb +54 -0
- data/test/test_helper.rb +6 -4
- metadata +18 -14
- data/lib/gir_ffi/base.rb +0 -25
- data/lib/gir_ffi/constructor_definition_builder.rb +0 -20
- data/lib/gir_ffi/g_type.rb +0 -14
- data/lib/gir_ffi/method_missing_definition_builder.rb +0 -59
- data/test/constructor_definition_builder_test.rb +0 -19
- data/test/g_type_test.rb +0 -22
@@ -1,10 +1,10 @@
|
|
1
1
|
require File.expand_path('test_helper.rb', File.dirname(__FILE__))
|
2
|
-
require 'gir_ffi/
|
2
|
+
require 'gir_ffi/class_base'
|
3
3
|
|
4
|
-
class
|
4
|
+
class ClassBaseTest < Test::Unit::TestCase
|
5
5
|
context "A class derived from GirFFI::Base" do
|
6
6
|
setup do
|
7
|
-
@klass = Class.new(GirFFI::
|
7
|
+
@klass = Class.new(GirFFI::ClassBase) do
|
8
8
|
# Boilerplate to make regular #new work again.
|
9
9
|
def initialize; end
|
10
10
|
def self.new; self._real_new; end
|
data/test/class_builder_test.rb
CHANGED
@@ -3,21 +3,63 @@ require 'gir_ffi'
|
|
3
3
|
|
4
4
|
class ClassBuilderTest < Test::Unit::TestCase
|
5
5
|
context "The ClassBuilder" do
|
6
|
-
|
6
|
+
should "use parent struct as default layout" do
|
7
7
|
@gir = GirFFI::IRepository.default
|
8
8
|
@gir.require 'GObject', nil
|
9
|
-
|
10
|
-
should "use parent struct as default layout" do
|
11
|
-
@classbuilder = GirFFI::ClassBuilder.new 'Foo', 'Bar'
|
9
|
+
|
12
10
|
stub(info = Object.new).parent { @gir.find_by_name 'GObject', 'Object' }
|
13
11
|
stub(info).fields { [] }
|
12
|
+
stub(info).type { :object }
|
13
|
+
|
14
|
+
@classbuilder = GirFFI::ClassBuilder.new 'Foo', 'Bar'
|
14
15
|
@classbuilder.instance_eval { @info = info }
|
15
|
-
@classbuilder.instance_eval { @parent = info.parent }
|
16
|
-
@classbuilder.instance_eval { @superclass = GObject::Object }
|
17
16
|
|
18
17
|
spec = @classbuilder.send :layout_specification
|
19
18
|
assert_equal [:parent, GObject::Object::Struct, 0], spec
|
20
19
|
end
|
20
|
+
|
21
|
+
context "for Gtk::Widget" do
|
22
|
+
setup do
|
23
|
+
@cbuilder = GirFFI::ClassBuilder.new 'Gtk', 'Widget'
|
24
|
+
end
|
25
|
+
|
26
|
+
context "looking at Gtk::Widget#show" do
|
27
|
+
setup do
|
28
|
+
@go = get_method_introspection_data 'Gtk', 'Widget', 'show'
|
29
|
+
end
|
30
|
+
|
31
|
+
should "delegate definition to FunctionDefinitionBuilder" do
|
32
|
+
code = @cbuilder.send :function_definition, @go
|
33
|
+
expected = GirFFI::FunctionDefinitionBuilder.new(@go, Gtk::Lib).generate
|
34
|
+
assert_equal cws(expected), cws(code)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context 'the find_signal method' do
|
41
|
+
should 'find the signal "test" for TestObj' do
|
42
|
+
builder = GirFFI::ClassBuilder.new 'Everything', 'TestObj'
|
43
|
+
sig = builder.find_signal 'test'
|
44
|
+
assert_equal 'test', sig.name
|
45
|
+
end
|
46
|
+
|
47
|
+
should 'find the signal "test" for TestSubObj' do
|
48
|
+
builder = GirFFI::ClassBuilder.new 'Everything', 'TestSubObj'
|
49
|
+
sig = builder.find_signal 'test'
|
50
|
+
assert_equal 'test', sig.name
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context "for GObject::TypeCValue (a union)" do
|
55
|
+
setup do
|
56
|
+
@cbuilder = GirFFI::ClassBuilder.new 'GObject', 'TypeCValue'
|
57
|
+
end
|
58
|
+
|
59
|
+
should "not raise an error looking for a method that doesn't exist" do
|
60
|
+
assert_nothing_raised { @cbuilder.setup_instance_method 'blub' }
|
61
|
+
end
|
62
|
+
end
|
21
63
|
end
|
22
64
|
end
|
23
65
|
|
data/test/everything_test.rb
CHANGED
@@ -1,34 +1,19 @@
|
|
1
1
|
require File.expand_path('test_helper.rb', File.dirname(__FILE__))
|
2
2
|
require 'gir_ffi'
|
3
3
|
|
4
|
-
GirFFI.setup :Everything
|
5
|
-
|
6
4
|
# Tests generated methods and functions in the Everything namespace.
|
7
5
|
class EverythingTest < Test::Unit::TestCase
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
assert_equal true, Everything.test_boolean(true)
|
12
|
-
end
|
13
|
-
|
14
|
-
should "have correct test_callback_user_data" do
|
15
|
-
a = :foo
|
16
|
-
result = Everything.test_callback_user_data Proc.new {|u|
|
17
|
-
a = u
|
18
|
-
5
|
19
|
-
}, :bar
|
20
|
-
assert_equal :bar, a
|
21
|
-
assert_equal 5, result
|
22
|
-
end
|
6
|
+
def ref_count object
|
7
|
+
GObject::Object::Struct.new(object.to_ptr)[:ref_count]
|
8
|
+
end
|
23
9
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
end
|
10
|
+
def is_floating? object
|
11
|
+
(GObject::Object::Struct.new(object.to_ptr)[:qdata].address & 2) == 2
|
12
|
+
end
|
28
13
|
|
29
|
-
|
30
|
-
|
31
|
-
|
14
|
+
context "The generated Everything module" do
|
15
|
+
setup do
|
16
|
+
GirFFI.setup :Everything
|
32
17
|
end
|
33
18
|
|
34
19
|
context "the Everything::TestBoxed class" do
|
@@ -37,33 +22,56 @@ class EverythingTest < Test::Unit::TestCase
|
|
37
22
|
assert_instance_of Everything::TestBoxed, tb
|
38
23
|
end
|
39
24
|
|
40
|
-
should "
|
25
|
+
should "create an instance using #new_alternative_constructor1" do
|
41
26
|
tb = Everything::TestBoxed.new_alternative_constructor1 1
|
42
27
|
assert_instance_of Everything::TestBoxed, tb
|
43
28
|
assert_equal 1, tb[:some_int8]
|
29
|
+
end
|
44
30
|
|
31
|
+
should "create an instance using #new_alternative_constructor2" do
|
45
32
|
tb = Everything::TestBoxed.new_alternative_constructor2 1, 2
|
46
33
|
assert_instance_of Everything::TestBoxed, tb
|
47
34
|
assert_equal 1 + 2, tb[:some_int8]
|
35
|
+
end
|
48
36
|
|
37
|
+
should "create an instance using #new_alternative_constructor3" do
|
49
38
|
tb = Everything::TestBoxed.new_alternative_constructor3 "54"
|
50
39
|
assert_instance_of Everything::TestBoxed, tb
|
51
40
|
assert_equal 54, tb[:some_int8]
|
52
41
|
end
|
53
42
|
|
54
|
-
should "have
|
55
|
-
|
56
|
-
tb2 = Everything::TestBoxed.new_alternative_constructor2 120, 3
|
57
|
-
assert_equal true, tb.equals(tb2)
|
43
|
+
should "have non-zero result for #get_gtype" do
|
44
|
+
assert Everything::TestBoxed.get_gtype > 0
|
58
45
|
end
|
59
46
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
47
|
+
context "an instance" do
|
48
|
+
setup do
|
49
|
+
@tb = Everything::TestBoxed.new_alternative_constructor1 123
|
50
|
+
end
|
51
|
+
|
52
|
+
should "have a working equals method" do
|
53
|
+
tb2 = Everything::TestBoxed.new_alternative_constructor2 120, 3
|
54
|
+
assert_equal true, @tb.equals(tb2)
|
55
|
+
end
|
56
|
+
|
57
|
+
context "its copy method" do
|
58
|
+
setup do
|
59
|
+
@tb2 = @tb.copy
|
60
|
+
end
|
61
|
+
|
62
|
+
should "return an instance of TestBoxed" do
|
63
|
+
assert_instance_of Everything::TestBoxed, @tb2
|
64
|
+
end
|
65
|
+
|
66
|
+
should "copy fields" do
|
67
|
+
assert_equal 123, @tb2[:some_int8]
|
68
|
+
end
|
69
|
+
|
70
|
+
should "create a true copy" do
|
71
|
+
@tb[:some_int8] = 89
|
72
|
+
assert_equal 123, @tb2[:some_int8]
|
73
|
+
end
|
74
|
+
end
|
67
75
|
end
|
68
76
|
end
|
69
77
|
|
@@ -73,6 +81,247 @@ class EverythingTest < Test::Unit::TestCase
|
|
73
81
|
end
|
74
82
|
end
|
75
83
|
|
84
|
+
# TestFlags
|
85
|
+
|
86
|
+
context "the Everything::TestFloating class" do
|
87
|
+
context "an instance" do
|
88
|
+
setup do
|
89
|
+
@o = Everything::TestFloating.new
|
90
|
+
end
|
91
|
+
|
92
|
+
should "have a reference count of 1" do
|
93
|
+
assert_equal 1, ref_count(@o)
|
94
|
+
end
|
95
|
+
|
96
|
+
should "have been sunk" do
|
97
|
+
assert !is_floating?(@o)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
context "the Everything::TestObj class" do
|
103
|
+
should "create an instance using #new_from_file" do
|
104
|
+
o = Everything::TestObj.new_from_file("foo")
|
105
|
+
assert_instance_of Everything::TestObj, o
|
106
|
+
end
|
107
|
+
|
108
|
+
should "create an instance using #new_callback" do
|
109
|
+
o = Everything::TestObj.new_callback Proc.new { }, nil, nil
|
110
|
+
assert_instance_of Everything::TestObj, o
|
111
|
+
end
|
112
|
+
|
113
|
+
should "have a working #static_method" do
|
114
|
+
rv = Everything::TestObj.static_method 623
|
115
|
+
assert_equal 623.0, rv
|
116
|
+
end
|
117
|
+
|
118
|
+
should "have a working #static_method_callback" do
|
119
|
+
a = 1
|
120
|
+
Everything::TestObj.static_method_callback Proc.new { a = 2 }
|
121
|
+
assert_equal 2, a
|
122
|
+
end
|
123
|
+
|
124
|
+
context "an instance" do
|
125
|
+
setup do
|
126
|
+
@o = Everything::TestObj.new_from_file("foo")
|
127
|
+
end
|
128
|
+
|
129
|
+
should "have a reference count of 1" do
|
130
|
+
assert_equal 1, ref_count(@o)
|
131
|
+
end
|
132
|
+
|
133
|
+
should "not float" do
|
134
|
+
assert !is_floating?(@o)
|
135
|
+
end
|
136
|
+
|
137
|
+
should "have a working (virtual) #matrix method" do
|
138
|
+
rv = @o.matrix "bar"
|
139
|
+
assert_equal 42, rv
|
140
|
+
end
|
141
|
+
|
142
|
+
should "have a working #set_bare method" do
|
143
|
+
obj = Everything::TestObj.new_from_file("bar")
|
144
|
+
rv = @o.set_bare obj
|
145
|
+
# TODO: What is the correct value to retrieve from the fields?
|
146
|
+
assert_equal obj.to_ptr, @o[:bare]
|
147
|
+
end
|
148
|
+
|
149
|
+
should "have a working #instance_method method" do
|
150
|
+
rv = @o.instance_method
|
151
|
+
assert_equal(-1, rv)
|
152
|
+
end
|
153
|
+
|
154
|
+
should "have a working #torture_signature_0 method" do
|
155
|
+
y, z, q = @o.torture_signature_0(-21, "hello", 13)
|
156
|
+
assert_equal [-21, 2 * -21, "hello".length + 13],
|
157
|
+
[y, z, q]
|
158
|
+
end
|
159
|
+
|
160
|
+
context "its #torture_signature_1 method" do
|
161
|
+
should "work for m even" do
|
162
|
+
ret, y, z, q = @o.torture_signature_1(-21, "hello", 12)
|
163
|
+
assert_equal [true, -21, 2 * -21, "hello".length + 12],
|
164
|
+
[ret, y, z, q]
|
165
|
+
end
|
166
|
+
|
167
|
+
should "throw an exception for m odd" do
|
168
|
+
assert_raises RuntimeError do
|
169
|
+
@o.torture_signature_1(-21, "hello", 11)
|
170
|
+
end
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
should "have a working #instance_method_callback method" do
|
175
|
+
a = 1
|
176
|
+
@o.instance_method_callback Proc.new { a = 2 }
|
177
|
+
assert_equal 2, a
|
178
|
+
end
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
context "the Everything::TestSimpleBoxedA class" do
|
183
|
+
should "create an instance using #new" do
|
184
|
+
obj = Everything::TestSimpleBoxedA.new
|
185
|
+
assert_instance_of Everything::TestSimpleBoxedA, obj
|
186
|
+
end
|
187
|
+
|
188
|
+
context "an instance" do
|
189
|
+
setup do
|
190
|
+
@obj = Everything::TestSimpleBoxedA.new
|
191
|
+
@obj[:some_int] = 4236
|
192
|
+
@obj[:some_int8] = 36
|
193
|
+
@obj[:some_double] = 23.53
|
194
|
+
@obj[:some_enum] = :value2
|
195
|
+
end
|
196
|
+
|
197
|
+
context "its equals method" do
|
198
|
+
setup do
|
199
|
+
@ob2 = Everything::TestSimpleBoxedA.new
|
200
|
+
@ob2[:some_int] = 4236
|
201
|
+
@ob2[:some_int8] = 36
|
202
|
+
@ob2[:some_double] = 23.53
|
203
|
+
@ob2[:some_enum] = :value2
|
204
|
+
end
|
205
|
+
|
206
|
+
should "return true if values are the same" do
|
207
|
+
assert_equal true, @obj.equals(@ob2)
|
208
|
+
end
|
209
|
+
|
210
|
+
should "return true if enum values differ" do
|
211
|
+
@ob2[:some_enum] = :value3
|
212
|
+
assert_equal true, @obj.equals(@ob2)
|
213
|
+
end
|
214
|
+
|
215
|
+
should "return false if other values differ" do
|
216
|
+
@ob2[:some_int] = 1
|
217
|
+
assert_equal false, @obj.equals(@ob2)
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
context "its copy method" do
|
222
|
+
setup do
|
223
|
+
@ob2 = @obj.copy
|
224
|
+
end
|
225
|
+
|
226
|
+
should "return an instance of TestSimpleBoxedA" do
|
227
|
+
assert_instance_of Everything::TestSimpleBoxedA, @ob2
|
228
|
+
end
|
229
|
+
|
230
|
+
should "copy fields" do
|
231
|
+
assert_equal 4236, @ob2[:some_int]
|
232
|
+
assert_equal 36, @ob2[:some_int8]
|
233
|
+
assert_equal 23.53, @ob2[:some_double]
|
234
|
+
assert_equal :value2, @ob2[:some_enum]
|
235
|
+
end
|
236
|
+
|
237
|
+
should "create a true copy" do
|
238
|
+
@obj[:some_int8] = 89
|
239
|
+
assert_equal 36, @ob2[:some_int8]
|
240
|
+
end
|
241
|
+
end
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
context "the Everything::TestStructA class" do
|
246
|
+
context "an instance" do
|
247
|
+
should "have a working clone method" do
|
248
|
+
a = Everything::TestStructA.new
|
249
|
+
a[:some_int] = 2556
|
250
|
+
a[:some_int8] = -10
|
251
|
+
a[:some_double] = 1.03455e20
|
252
|
+
a[:some_enum] = :value2
|
253
|
+
|
254
|
+
b = a.clone
|
255
|
+
|
256
|
+
assert_equal 2556, b[:some_int]
|
257
|
+
assert_equal(-10, b[:some_int8])
|
258
|
+
assert_equal 1.03455e20, b[:some_double]
|
259
|
+
assert_equal :value2, b[:some_enum]
|
260
|
+
end
|
261
|
+
end
|
262
|
+
end
|
263
|
+
|
264
|
+
# TestStructB
|
265
|
+
# TestStructC
|
266
|
+
# TestSubObj
|
267
|
+
|
268
|
+
context "the Everything::TestWi8021x class" do
|
269
|
+
should "create an instance using #new" do
|
270
|
+
o = Everything::TestWi8021x.new
|
271
|
+
assert_instance_of Everything::TestWi8021x, o
|
272
|
+
end
|
273
|
+
|
274
|
+
context "an instance" do
|
275
|
+
setup do
|
276
|
+
@obj = Everything::TestWi8021x.new
|
277
|
+
end
|
278
|
+
should "set its boolean struct member with #set_testbool" do
|
279
|
+
@obj.set_testbool true
|
280
|
+
assert_equal 1, @obj[:testbool]
|
281
|
+
gv = GObject::Value.new
|
282
|
+
gv.init GObject.type_from_name "gboolean"
|
283
|
+
@obj.get_property "testbool", gv
|
284
|
+
assert_equal true, gv.get_boolean
|
285
|
+
end
|
286
|
+
end
|
287
|
+
end
|
288
|
+
|
289
|
+
should "have correct test_boolean" do
|
290
|
+
assert_equal false, Everything.test_boolean(false)
|
291
|
+
assert_equal true, Everything.test_boolean(true)
|
292
|
+
end
|
293
|
+
|
294
|
+
should "have correct test_callback" do
|
295
|
+
result = Everything.test_callback Proc.new { 5 }
|
296
|
+
assert_equal 5, result
|
297
|
+
end
|
298
|
+
|
299
|
+
context "the test_callback_user_data function" do
|
300
|
+
should "return the callbacks return value" do
|
301
|
+
result = Everything.test_callback_user_data Proc.new {|u| 5 }, nil
|
302
|
+
assert_equal 5, result
|
303
|
+
end
|
304
|
+
|
305
|
+
should "handle boolean user_data" do
|
306
|
+
a = false
|
307
|
+
result = Everything.test_callback_user_data Proc.new {|u|
|
308
|
+
a = u
|
309
|
+
5
|
310
|
+
}, true
|
311
|
+
assert_equal true, a
|
312
|
+
end
|
313
|
+
end
|
314
|
+
|
315
|
+
should "have correct test_gtype" do
|
316
|
+
result = Everything.test_gtype 23
|
317
|
+
assert_equal 23, result
|
318
|
+
end
|
319
|
+
|
320
|
+
should "have correct test_value_return" do
|
321
|
+
result = Everything.test_value_return 3423
|
322
|
+
assert_equal 3423, result.get_int
|
323
|
+
end
|
324
|
+
|
76
325
|
end
|
77
326
|
|
78
327
|
end
|
@@ -12,7 +12,7 @@ class FunctionDefinitionBuilderTest < Test::Unit::TestCase
|
|
12
12
|
def init argc, argv
|
13
13
|
_v1 = GirFFI::ArgHelper.int_to_inoutptr argc
|
14
14
|
_v3 = GirFFI::ArgHelper.string_array_to_inoutptr argv
|
15
|
-
Lib.gtk_init _v1, _v3
|
15
|
+
::Lib.gtk_init _v1, _v3
|
16
16
|
_v2 = GirFFI::ArgHelper.outptr_to_int _v1
|
17
17
|
_v4 = GirFFI::ArgHelper.outptr_to_string_array _v3, argv.nil? ? 0 : argv.size
|
18
18
|
return _v2, _v4
|
@@ -29,7 +29,7 @@ class FunctionDefinitionBuilderTest < Test::Unit::TestCase
|
|
29
29
|
|
30
30
|
expected = "
|
31
31
|
def show
|
32
|
-
Lib.gtk_widget_show self
|
32
|
+
::Lib.gtk_widget_show self
|
33
33
|
end
|
34
34
|
"
|
35
35
|
|
@@ -45,11 +45,11 @@ class FunctionDefinitionBuilderTest < Test::Unit::TestCase
|
|
45
45
|
"def signal_connect_data instance, detailed_signal, c_handler, data, destroy_data, connect_flags
|
46
46
|
_v2 = GirFFI::ArgHelper.object_to_inptr instance
|
47
47
|
_v3 = GirFFI::ArgHelper.mapped_callback_args c_handler
|
48
|
-
Lib::CALLBACKS << _v3
|
48
|
+
::Lib::CALLBACKS << _v3
|
49
49
|
_v4 = GirFFI::ArgHelper.object_to_inptr data
|
50
50
|
_v5 = GirFFI::ArgHelper.mapped_callback_args destroy_data
|
51
|
-
Lib::CALLBACKS << _v5
|
52
|
-
_v1 = Lib.g_signal_connect_data _v2, detailed_signal, _v3, _v4, _v5, connect_flags
|
51
|
+
::Lib::CALLBACKS << _v5
|
52
|
+
_v1 = ::Lib.g_signal_connect_data _v2, detailed_signal, _v3, _v4, _v5, connect_flags
|
53
53
|
return _v1
|
54
54
|
end"
|
55
55
|
|
@@ -63,10 +63,12 @@ class FunctionDefinitionBuilderTest < Test::Unit::TestCase
|
|
63
63
|
|
64
64
|
expected =
|
65
65
|
"def new_from_file x
|
66
|
-
|
67
|
-
_v1 = Lib.test_obj_new_from_file x,
|
68
|
-
GirFFI::ArgHelper.check_error(
|
69
|
-
|
66
|
+
_v3 = FFI::MemoryPointer.new(:pointer).write_pointer nil
|
67
|
+
_v1 = ::Lib.test_obj_new_from_file x, _v3
|
68
|
+
GirFFI::ArgHelper.check_error(_v3)
|
69
|
+
_v2 = ::Everything::TestObj._real_new(_v1)
|
70
|
+
GirFFI::ArgHelper.sink_if_floating(_v2)
|
71
|
+
return _v2
|
70
72
|
end"
|
71
73
|
|
72
74
|
assert_equal cws(expected), cws(code)
|