gir_ffi 0.7.10 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Changelog.md +6 -0
- data/Gemfile +3 -1
- data/README.md +5 -2
- data/lib/ffi-glib.rb +1 -0
- data/lib/ffi-glib/array.rb +6 -6
- data/lib/ffi-glib/array_methods.rb +1 -1
- data/lib/ffi-glib/byte_array.rb +1 -1
- data/lib/ffi-glib/bytes.rb +3 -3
- data/lib/ffi-glib/container_class_methods.rb +2 -2
- data/lib/ffi-glib/error.rb +2 -2
- data/lib/ffi-glib/hash_table.rb +9 -9
- data/lib/ffi-glib/iconv.rb +1 -1
- data/lib/ffi-glib/list.rb +2 -2
- data/lib/ffi-glib/list_methods.rb +8 -7
- data/lib/ffi-glib/main_loop.rb +1 -1
- data/lib/ffi-glib/ptr_array.rb +7 -7
- data/lib/ffi-glib/s_list.rb +2 -2
- data/lib/ffi-glib/strv.rb +3 -3
- data/lib/ffi-glib/variant.rb +9 -2
- data/lib/ffi-gobject.rb +10 -10
- data/lib/ffi-gobject/closure.rb +1 -1
- data/lib/ffi-gobject/initially_unowned.rb +4 -3
- data/lib/ffi-gobject/object.rb +19 -19
- data/lib/ffi-gobject/object_class.rb +2 -2
- data/lib/ffi-gobject/ruby_closure.rb +5 -4
- data/lib/ffi-gobject/value.rb +15 -20
- data/lib/ffi-gobject_introspection/g_error.rb +1 -1
- data/lib/ffi-gobject_introspection/i_base_info.rb +6 -6
- data/lib/ffi-gobject_introspection/i_callable_info.rb +1 -1
- data/lib/ffi-gobject_introspection/i_enum_info.rb +2 -2
- data/lib/ffi-gobject_introspection/i_interface_info.rb +8 -8
- data/lib/ffi-gobject_introspection/i_object_info.rb +9 -9
- data/lib/ffi-gobject_introspection/i_repository.rb +13 -13
- data/lib/ffi-gobject_introspection/i_struct_info.rb +2 -2
- data/lib/ffi-gobject_introspection/i_type_info.rb +1 -1
- data/lib/ffi-gobject_introspection/i_union_info.rb +3 -3
- data/lib/ffi-gobject_introspection/lib.rb +4 -4
- data/lib/gir_ffi-base/glib/boolean.rb +4 -4
- data/lib/gir_ffi-base/glib/strv.rb +2 -2
- data/lib/gir_ffi/allocation_helper.rb +1 -1
- data/lib/gir_ffi/arg_helper.rb +8 -8
- data/lib/gir_ffi/boxed_base.rb +5 -9
- data/lib/gir_ffi/builder.rb +4 -4
- data/lib/gir_ffi/builder_helper.rb +3 -3
- data/lib/gir_ffi/builders/argument_builder_collection.rb +1 -1
- data/lib/gir_ffi/builders/base_argument_builder.rb +3 -3
- data/lib/gir_ffi/builders/base_method_builder.rb +71 -0
- data/lib/gir_ffi/builders/base_type_builder.rb +1 -1
- data/lib/gir_ffi/builders/boxed_builder.rb +3 -2
- data/lib/gir_ffi/builders/c_to_ruby_convertor.rb +1 -1
- data/lib/gir_ffi/builders/closure_convertor.rb +1 -1
- data/lib/gir_ffi/builders/closure_to_pointer_convertor.rb +1 -1
- data/lib/gir_ffi/builders/constructor_builder.rb +52 -0
- data/lib/gir_ffi/builders/enum_builder.rb +3 -3
- data/lib/gir_ffi/builders/field_builder.rb +3 -2
- data/lib/gir_ffi/builders/function_builder.rb +9 -50
- data/lib/gir_ffi/builders/initializer_builder.rb +32 -0
- data/lib/gir_ffi/builders/initializer_return_value_builder.rb +16 -0
- data/lib/gir_ffi/builders/mapping_method_builder.rb +7 -5
- data/lib/gir_ffi/builders/marshalling_method_builder.rb +5 -3
- data/lib/gir_ffi/builders/method_template.rb +1 -1
- data/lib/gir_ffi/builders/module_builder.rb +8 -7
- data/lib/gir_ffi/builders/null_convertor.rb +1 -1
- data/lib/gir_ffi/builders/null_return_value_builder.rb +21 -0
- data/lib/gir_ffi/builders/object_builder.rb +3 -3
- data/lib/gir_ffi/builders/property_builder.rb +1 -1
- data/lib/gir_ffi/builders/registered_type_builder.rb +31 -15
- data/lib/gir_ffi/builders/return_value_builder.rb +1 -14
- data/lib/gir_ffi/builders/ruby_to_c_convertor.rb +2 -2
- data/lib/gir_ffi/builders/signal_closure_builder.rb +1 -1
- data/lib/gir_ffi/builders/type_builder.rb +2 -2
- data/lib/gir_ffi/builders/unintrospectable_builder.rb +1 -1
- data/lib/gir_ffi/builders/user_defined_builder.rb +11 -11
- data/lib/gir_ffi/builders/vfunc_builder.rb +1 -1
- data/lib/gir_ffi/callback_base.rb +8 -13
- data/lib/gir_ffi/class_base.rb +41 -45
- data/lib/gir_ffi/core.rb +2 -2
- data/lib/gir_ffi/enum_base.rb +9 -14
- data/lib/gir_ffi/field_argument_info.rb +1 -1
- data/lib/gir_ffi/g_type.rb +1 -1
- data/lib/gir_ffi/glib_error.rb +1 -1
- data/lib/gir_ffi/in_out_pointer.rb +4 -4
- data/lib/gir_ffi/in_pointer.rb +12 -12
- data/lib/gir_ffi/info_ext/i_arg_info.rb +0 -10
- data/lib/gir_ffi/info_ext/i_callback_info.rb +0 -5
- data/lib/gir_ffi/info_ext/i_property_info.rb +1 -1
- data/lib/gir_ffi/info_ext/i_registered_type_info.rb +1 -6
- data/lib/gir_ffi/info_ext/i_signal_info.rb +2 -2
- data/lib/gir_ffi/info_ext/i_type_info.rb +2 -17
- data/lib/gir_ffi/info_ext/i_unresolved_info.rb +0 -5
- data/lib/gir_ffi/info_ext/i_vfunc_info.rb +2 -2
- data/lib/gir_ffi/interface_base.rb +2 -7
- data/lib/gir_ffi/method_stubber.rb +1 -1
- data/lib/gir_ffi/module_base.rb +4 -7
- data/lib/gir_ffi/object_base.rb +4 -9
- data/lib/gir_ffi/receiver_argument_info.rb +1 -1
- data/lib/gir_ffi/receiver_type_info.rb +1 -1
- data/lib/gir_ffi/registered_type_base.rb +0 -5
- data/lib/gir_ffi/return_value_info.rb +1 -1
- data/lib/gir_ffi/sized_array.rb +10 -10
- data/lib/gir_ffi/type_map.rb +3 -3
- data/lib/gir_ffi/unintrospectable_type_info.rb +3 -1
- data/lib/gir_ffi/user_data_argument_info.rb +1 -1
- data/lib/gir_ffi/user_defined_property_info.rb +1 -1
- data/lib/gir_ffi/user_defined_type_info.rb +4 -4
- data/lib/gir_ffi/version.rb +1 -1
- data/lib/gir_ffi/vfunc_implementation.rb +1 -1
- data/lib/gir_ffi/zero_terminated.rb +6 -6
- data/test/base_test_helper.rb +13 -13
- data/test/ffi-gobject/object_test.rb +22 -1
- data/test/ffi-gobject/value_test.rb +24 -24
- data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +4 -4
- data/test/ffi-gobject_introspection/i_type_info_test.rb +2 -2
- data/test/ffi-gobject_test.rb +2 -2
- data/test/gir_ffi/builders/argument_builder_test.rb +60 -60
- data/test/gir_ffi/builders/callback_argument_builder_test.rb +8 -8
- data/test/gir_ffi/builders/callback_builder_test.rb +4 -4
- data/test/gir_ffi/builders/callback_return_value_builder_test.rb +8 -8
- data/test/gir_ffi/builders/constructor_builder_test.rb +34 -0
- data/test/gir_ffi/builders/function_builder_test.rb +8 -24
- data/test/gir_ffi/builders/initializer_builder_test.rb +36 -0
- data/test/gir_ffi/builders/interface_builder_test.rb +2 -2
- data/test/gir_ffi/builders/object_builder_test.rb +6 -18
- data/test/gir_ffi/builders/property_builder_test.rb +2 -2
- data/test/gir_ffi/builders/return_value_builder_test.rb +54 -79
- data/test/gir_ffi/builders/signal_closure_builder_test.rb +14 -14
- data/test/gir_ffi/builders/user_defined_builder_test.rb +8 -8
- data/test/gir_ffi/builders/vfunc_builder_test.rb +22 -22
- data/test/gir_ffi/class_base_test.rb +9 -7
- data/test/gir_ffi/in_pointer_test.rb +1 -1
- data/test/gir_ffi/info_ext/i_callable_info_test.rb +2 -2
- data/test/gir_ffi/info_ext/i_callback_info_test.rb +2 -2
- data/test/gir_ffi/info_ext/i_field_info_test.rb +2 -2
- data/test/gir_ffi/info_ext/i_function_info_test.rb +2 -2
- data/test/gir_ffi/info_ext/i_signal_info_test.rb +2 -2
- data/test/gir_ffi/info_ext/i_type_info_test.rb +18 -18
- data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +2 -2
- data/test/gir_ffi/info_ext/safe_constant_name_test.rb +2 -2
- data/test/gir_ffi/info_ext/safe_function_name_test.rb +2 -2
- data/test/gir_ffi/method_stubber_test.rb +6 -6
- data/test/gir_ffi/user_defined_type_info_test.rb +3 -3
- data/test/gir_ffi_test_helper.rb +12 -12
- data/test/integration/derived_classes_test.rb +7 -3
- data/test/integration/generated_gimarshallingtests_test.rb +10 -10
- data/test/integration/generated_regress_test.rb +11 -20
- data/test/introspection_test_helper.rb +1 -1
- data/test/minitest/stats_plugin.rb +3 -3
- metadata +9 -3
- data/lib/gir_ffi/builders/constructor_result_convertor.rb +0 -14
@@ -3,9 +3,9 @@ require 'introspection_test_helper'
|
|
3
3
|
describe GObjectIntrospection::IRegisteredTypeInfo do
|
4
4
|
describe '#get_type_name' do
|
5
5
|
describe 'for an interface' do
|
6
|
-
let(:registered_type_info)
|
6
|
+
let(:registered_type_info) do
|
7
7
|
get_introspection_data('GIMarshallingTests', 'Interface')
|
8
|
-
|
8
|
+
end
|
9
9
|
|
10
10
|
it 'returns interface name' do
|
11
11
|
registered_type_info.type_name.must_equal 'GIMarshallingTestsInterface'
|
@@ -13,9 +13,9 @@ describe GObjectIntrospection::IRegisteredTypeInfo do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
describe 'for a type that is not an interface' do
|
16
|
-
let(:registered_type_info)
|
16
|
+
let(:registered_type_info) do
|
17
17
|
get_introspection_data('GIMarshallingTests', 'Enum')
|
18
|
-
|
18
|
+
end
|
19
19
|
|
20
20
|
it 'returns nil' do
|
21
21
|
registered_type_info.type_name.must_be_nil
|
data/test/ffi-gobject_test.rb
CHANGED
@@ -122,10 +122,10 @@ describe GObject do
|
|
122
122
|
sb = Regress::TestSimpleBoxedA.new
|
123
123
|
sb.some_int = 23
|
124
124
|
|
125
|
-
GObject.signal_connect(o, 'test-with-static-scope-arg', 2)
|
125
|
+
GObject.signal_connect(o, 'test-with-static-scope-arg', 2) do |_instance, object, user_data|
|
126
126
|
@a = user_data
|
127
127
|
@b = object
|
128
|
-
|
128
|
+
end
|
129
129
|
GObject.signal_emit o, 'test-with-static-scope-arg', sb
|
130
130
|
end
|
131
131
|
|
@@ -6,9 +6,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
6
6
|
|
7
7
|
describe 'for an argument with direction :in' do
|
8
8
|
describe 'for :callback' do
|
9
|
-
let(:arg_info)
|
9
|
+
let(:arg_info) do
|
10
10
|
get_introspection_data('Regress', 'test_callback_destroy_notify').args[0]
|
11
|
-
|
11
|
+
end
|
12
12
|
|
13
13
|
it 'has the correct value for #pre_conversion' do
|
14
14
|
builder.pre_conversion.must_equal ['_v1 = Regress::TestCallbackUserData.from(callback)']
|
@@ -20,10 +20,10 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
describe 'for :zero_terminated' do
|
23
|
-
let(:arg_info)
|
23
|
+
let(:arg_info) do
|
24
24
|
get_introspection_data('GIMarshallingTests',
|
25
25
|
'array_in_len_zero_terminated').args[0]
|
26
|
-
|
26
|
+
end
|
27
27
|
|
28
28
|
it 'has the correct value for #pre_conversion' do
|
29
29
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::ZeroTerminated.from(:gint32, ints)']
|
@@ -81,9 +81,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
81
81
|
end
|
82
82
|
|
83
83
|
describe 'for :flags' do
|
84
|
-
let(:arg_info)
|
84
|
+
let(:arg_info) do
|
85
85
|
get_introspection_data('GIMarshallingTests', 'flags_out').args[0]
|
86
|
-
|
86
|
+
end
|
87
87
|
|
88
88
|
it 'has the correct value for #pre_conversion' do
|
89
89
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for GIMarshallingTests::Flags']
|
@@ -95,9 +95,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
95
95
|
end
|
96
96
|
|
97
97
|
describe 'for :object' do
|
98
|
-
let(:arg_info)
|
98
|
+
let(:arg_info) do
|
99
99
|
get_method_introspection_data('Regress', 'TestObj', 'null_out').args[0]
|
100
|
-
|
100
|
+
end
|
101
101
|
|
102
102
|
it 'has the correct value for #pre_conversion' do
|
103
103
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, Regress::TestObj]']
|
@@ -110,9 +110,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
110
110
|
|
111
111
|
describe 'for :struct' do
|
112
112
|
describe 'when not allocated by the caller' do
|
113
|
-
let(:arg_info)
|
113
|
+
let(:arg_info) do
|
114
114
|
get_introspection_data('GIMarshallingTests', 'boxed_struct_out').args[0]
|
115
|
-
|
115
|
+
end
|
116
116
|
|
117
117
|
it 'has the correct value for #pre_conversion' do
|
118
118
|
builder.pre_conversion.must_equal [
|
@@ -126,9 +126,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
126
126
|
end
|
127
127
|
|
128
128
|
describe 'when allocated by the caller' do
|
129
|
-
let(:arg_info)
|
129
|
+
let(:arg_info) do
|
130
130
|
get_method_introspection_data('Regress', 'TestStructA', 'clone').args[0]
|
131
|
-
|
131
|
+
end
|
132
132
|
|
133
133
|
it 'has the correct value for #pre_conversion' do
|
134
134
|
builder.pre_conversion.must_equal ['_v1 = Regress::TestStructA.new']
|
@@ -141,9 +141,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
141
141
|
end
|
142
142
|
|
143
143
|
describe 'for :strv' do
|
144
|
-
let(:arg_info)
|
144
|
+
let(:arg_info) do
|
145
145
|
get_introspection_data('GIMarshallingTests', 'gstrv_out').args[0]
|
146
|
-
|
146
|
+
end
|
147
147
|
|
148
148
|
it 'has the correct value for #pre_conversion' do
|
149
149
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :strv]']
|
@@ -156,9 +156,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
156
156
|
|
157
157
|
describe 'for :array' do
|
158
158
|
describe 'when allocated by the callee' do
|
159
|
-
let(:arg_info)
|
159
|
+
let(:arg_info) do
|
160
160
|
get_introspection_data('GIMarshallingTests', 'garray_utf8_none_out').args[0]
|
161
|
-
|
161
|
+
end
|
162
162
|
|
163
163
|
it 'has the correct value for #pre_conversion' do
|
164
164
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :array]']
|
@@ -170,9 +170,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
170
170
|
end
|
171
171
|
|
172
172
|
describe 'when allocated by the caller' do
|
173
|
-
let(:function_info)
|
173
|
+
let(:function_info) do
|
174
174
|
get_introspection_data('GIMarshallingTests', 'garray_utf8_full_out_caller_allocated')
|
175
|
-
|
175
|
+
end
|
176
176
|
|
177
177
|
let(:arg_info) { function_info.args[0] }
|
178
178
|
|
@@ -191,9 +191,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
191
191
|
end
|
192
192
|
|
193
193
|
describe 'for :ptr_array' do
|
194
|
-
let(:arg_info)
|
194
|
+
let(:arg_info) do
|
195
195
|
get_introspection_data('GIMarshallingTests', 'gptrarray_utf8_none_out').args[0]
|
196
|
-
|
196
|
+
end
|
197
197
|
|
198
198
|
it 'has the correct value for #pre_conversion' do
|
199
199
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :ptr_array]']
|
@@ -205,9 +205,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
205
205
|
end
|
206
206
|
|
207
207
|
describe 'for :error' do
|
208
|
-
let(:arg_info)
|
208
|
+
let(:arg_info) do
|
209
209
|
get_introspection_data('GIMarshallingTests', 'gerror_out').args[0]
|
210
|
-
|
210
|
+
end
|
211
211
|
|
212
212
|
it 'has the correct value for #pre_conversion' do
|
213
213
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :error]']
|
@@ -220,9 +220,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
220
220
|
|
221
221
|
describe 'for :c' do
|
222
222
|
describe 'with fixed size' do
|
223
|
-
let(:arg_info)
|
223
|
+
let(:arg_info) do
|
224
224
|
get_introspection_data('GIMarshallingTests', 'array_fixed_out').args[0]
|
225
|
-
|
225
|
+
end
|
226
226
|
|
227
227
|
it 'has the correct value for #pre_conversion' do
|
228
228
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :c]']
|
@@ -234,9 +234,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
234
234
|
end
|
235
235
|
|
236
236
|
describe 'with separate size parameter' do
|
237
|
-
let(:arg_info)
|
237
|
+
let(:arg_info) do
|
238
238
|
get_introspection_data('GIMarshallingTests', 'array_out').args[0]
|
239
|
-
|
239
|
+
end
|
240
240
|
|
241
241
|
let(:length_argument) { Object.new }
|
242
242
|
before do
|
@@ -255,9 +255,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
255
255
|
end
|
256
256
|
|
257
257
|
describe 'for :glist' do
|
258
|
-
let(:arg_info)
|
258
|
+
let(:arg_info) do
|
259
259
|
get_introspection_data('GIMarshallingTests', 'glist_utf8_none_out').args[0]
|
260
|
-
|
260
|
+
end
|
261
261
|
|
262
262
|
it 'has the correct value for #pre_conversion' do
|
263
263
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :glist]']
|
@@ -269,9 +269,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
269
269
|
end
|
270
270
|
|
271
271
|
describe 'for :gslist' do
|
272
|
-
let(:arg_info)
|
272
|
+
let(:arg_info) do
|
273
273
|
get_introspection_data('GIMarshallingTests', 'gslist_utf8_none_out').args[0]
|
274
|
-
|
274
|
+
end
|
275
275
|
|
276
276
|
it 'has the correct value for #pre_conversion' do
|
277
277
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :gslist]']
|
@@ -283,9 +283,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
283
283
|
end
|
284
284
|
|
285
285
|
describe 'for :ghash' do
|
286
|
-
let(:arg_info)
|
286
|
+
let(:arg_info) do
|
287
287
|
get_introspection_data('GIMarshallingTests', 'ghashtable_utf8_none_out').args[0]
|
288
|
-
|
288
|
+
end
|
289
289
|
|
290
290
|
it 'has the correct value for #pre_conversion' do
|
291
291
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, [:ghash, :utf8, :utf8]]']
|
@@ -299,9 +299,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
299
299
|
|
300
300
|
describe 'for an argument with direction :inout' do
|
301
301
|
describe 'for :enum' do
|
302
|
-
let(:arg_info)
|
302
|
+
let(:arg_info) do
|
303
303
|
get_introspection_data('GIMarshallingTests', 'enum_inout').args[0]
|
304
|
-
|
304
|
+
end
|
305
305
|
|
306
306
|
it 'has the correct value for #pre_conversion' do
|
307
307
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for GIMarshallingTests::Enum',
|
@@ -314,9 +314,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
314
314
|
end
|
315
315
|
|
316
316
|
describe 'for :flags' do
|
317
|
-
let(:arg_info)
|
317
|
+
let(:arg_info) do
|
318
318
|
get_introspection_data('GIMarshallingTests', 'no_type_flags_inout').args[0]
|
319
|
-
|
319
|
+
end
|
320
320
|
|
321
321
|
it 'has the correct value for #pre_conversion' do
|
322
322
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for GIMarshallingTests::NoTypeFlags',
|
@@ -329,9 +329,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
329
329
|
end
|
330
330
|
|
331
331
|
describe 'for :gint32' do
|
332
|
-
let(:arg_info)
|
332
|
+
let(:arg_info) do
|
333
333
|
get_introspection_data('GIMarshallingTests', 'int32_inout_min_max').args[0]
|
334
|
-
|
334
|
+
end
|
335
335
|
|
336
336
|
it 'has the correct value for method_argument_name' do
|
337
337
|
builder.method_argument_name.must_equal "#{arg_info.name}"
|
@@ -348,14 +348,14 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
348
348
|
end
|
349
349
|
|
350
350
|
describe 'for an array length' do
|
351
|
-
let(:function_info)
|
351
|
+
let(:function_info) do
|
352
352
|
get_introspection_data('Regress', 'test_array_int_inout')
|
353
|
-
|
353
|
+
end
|
354
354
|
let(:arg_info) { function_info.args[0] }
|
355
355
|
let(:array_arg_info) { function_info.args[1] }
|
356
|
-
let(:array_arg_builder)
|
356
|
+
let(:array_arg_builder) do
|
357
357
|
GirFFI::Builders::ArgumentBuilder.new(var_gen, array_arg_info)
|
358
|
-
|
358
|
+
end
|
359
359
|
|
360
360
|
before do
|
361
361
|
builder.array_arg = array_arg_builder
|
@@ -373,9 +373,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
373
373
|
end
|
374
374
|
|
375
375
|
describe 'for :strv' do
|
376
|
-
let(:arg_info)
|
376
|
+
let(:arg_info) do
|
377
377
|
get_introspection_data('GIMarshallingTests', 'gstrv_inout').args[0]
|
378
|
-
|
378
|
+
end
|
379
379
|
|
380
380
|
it 'has the correct value for #pre_conversion' do
|
381
381
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :strv]',
|
@@ -388,9 +388,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
388
388
|
end
|
389
389
|
|
390
390
|
describe 'for :ptr_array' do
|
391
|
-
let(:arg_info)
|
391
|
+
let(:arg_info) do
|
392
392
|
get_introspection_data('GIMarshallingTests', 'gptrarray_utf8_none_inout').args[0]
|
393
|
-
|
393
|
+
end
|
394
394
|
|
395
395
|
it 'has the correct value for #pre_conversion' do
|
396
396
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for [:pointer, :ptr_array]',
|
@@ -403,9 +403,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
403
403
|
end
|
404
404
|
|
405
405
|
describe 'for :utf8' do
|
406
|
-
let(:arg_info)
|
406
|
+
let(:arg_info) do
|
407
407
|
get_introspection_data('GIMarshallingTests', 'utf8_none_inout').args[0]
|
408
|
-
|
408
|
+
end
|
409
409
|
|
410
410
|
it 'has the correct value for #pre_conversion' do
|
411
411
|
builder.pre_conversion.must_equal ['_v1 = GirFFI::InOutPointer.for :utf8',
|
@@ -419,9 +419,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
419
419
|
|
420
420
|
describe 'for :c' do
|
421
421
|
describe 'with fixed size' do
|
422
|
-
let(:arg_info)
|
422
|
+
let(:arg_info) do
|
423
423
|
get_introspection_data('GIMarshallingTests', 'array_fixed_inout').args[0]
|
424
|
-
|
424
|
+
end
|
425
425
|
|
426
426
|
it 'has the correct value for #pre_conversion' do
|
427
427
|
builder.pre_conversion.must_equal [
|
@@ -437,14 +437,14 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
437
437
|
end
|
438
438
|
|
439
439
|
describe 'with separate size parameter' do
|
440
|
-
let(:function_info)
|
440
|
+
let(:function_info) do
|
441
441
|
get_introspection_data('Regress', 'test_array_int_inout')
|
442
|
-
|
442
|
+
end
|
443
443
|
let(:length_arg_info) { function_info.args[0] }
|
444
444
|
let(:arg_info) { function_info.args[1] }
|
445
|
-
let(:length_arg_builder)
|
445
|
+
let(:length_arg_builder) do
|
446
446
|
GirFFI::Builders::ArgumentBuilder.new(var_gen, length_arg_info)
|
447
|
-
|
447
|
+
end
|
448
448
|
|
449
449
|
before do
|
450
450
|
builder.length_arg = length_arg_builder
|
@@ -465,9 +465,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
465
465
|
end
|
466
466
|
|
467
467
|
describe 'for a skipped argument with direction :in' do
|
468
|
-
let(:arg_info)
|
468
|
+
let(:arg_info) do
|
469
469
|
get_method_introspection_data('Regress', 'TestObj', 'skip_param').args[2]
|
470
|
-
|
470
|
+
end
|
471
471
|
|
472
472
|
it 'has the correct value for method_argument_name' do
|
473
473
|
builder.method_argument_name.must_be_nil
|
@@ -483,9 +483,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
483
483
|
end
|
484
484
|
|
485
485
|
describe 'for a skipped argument with direction :inout' do
|
486
|
-
let(:arg_info)
|
486
|
+
let(:arg_info) do
|
487
487
|
get_method_introspection_data('Regress', 'TestObj', 'skip_inout_param').args[3]
|
488
|
-
|
488
|
+
end
|
489
489
|
|
490
490
|
it 'has the correct value for method_argument_name' do
|
491
491
|
builder.method_argument_name.must_be_nil
|
@@ -502,9 +502,9 @@ describe GirFFI::Builders::ArgumentBuilder do
|
|
502
502
|
end
|
503
503
|
|
504
504
|
describe 'for a skipped argument with direction :out' do
|
505
|
-
let(:arg_info)
|
505
|
+
let(:arg_info) do
|
506
506
|
get_method_introspection_data('Regress', 'TestObj', 'skip_out_param').args[1]
|
507
|
-
|
507
|
+
end
|
508
508
|
|
509
509
|
it 'has the correct value for method_argument_name' do
|
510
510
|
builder.method_argument_name.must_be_nil
|
@@ -6,10 +6,10 @@ describe GirFFI::Builders::CallbackArgumentBuilder do
|
|
6
6
|
|
7
7
|
describe 'for an argument with direction :out' do
|
8
8
|
describe 'for :zero_terminated' do
|
9
|
-
let(:vfunc_info)
|
9
|
+
let(:vfunc_info) do
|
10
10
|
get_vfunc_introspection_data('GIMarshallingTests', 'Object',
|
11
11
|
'vfunc_array_out_parameter')
|
12
|
-
|
12
|
+
end
|
13
13
|
let(:arg_info) { vfunc_info.args[0] }
|
14
14
|
|
15
15
|
before { skip unless vfunc_info }
|
@@ -44,18 +44,18 @@ describe GirFFI::Builders::CallbackArgumentBuilder do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
describe 'for an argument with direction :inout' do
|
47
|
-
let(:callback_info)
|
47
|
+
let(:callback_info) do
|
48
48
|
get_introspection_data('Regress',
|
49
49
|
'TestCallbackArrayInOut')
|
50
|
-
|
50
|
+
end
|
51
51
|
let(:array_arg_info) { callback_info.args[0] }
|
52
|
-
let(:array_arg_builder)
|
52
|
+
let(:array_arg_builder) do
|
53
53
|
GirFFI::Builders::CallbackArgumentBuilder.new(var_gen, array_arg_info)
|
54
|
-
|
54
|
+
end
|
55
55
|
let(:length_arg_info) { callback_info.args[1] }
|
56
|
-
let(:length_arg_builder)
|
56
|
+
let(:length_arg_builder) do
|
57
57
|
GirFFI::Builders::CallbackArgumentBuilder.new(var_gen, length_arg_info)
|
58
|
-
|
58
|
+
end
|
59
59
|
|
60
60
|
before do
|
61
61
|
skip unless callback_info
|
@@ -50,10 +50,10 @@ describe GirFFI::Builders::CallbackBuilder do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
describe 'for a callback with one out argument' do
|
53
|
-
let(:callback_info)
|
53
|
+
let(:callback_info) do
|
54
54
|
get_introspection_data('GIMarshallingTests',
|
55
55
|
'CallbackOneOutParameter')
|
56
|
-
|
56
|
+
end
|
57
57
|
it 'returns a valid mapping method' do
|
58
58
|
expected = <<-CODE.reset_indentation
|
59
59
|
def self.call_with_argument_mapping(_proc, a)
|
@@ -68,10 +68,10 @@ describe GirFFI::Builders::CallbackBuilder do
|
|
68
68
|
end
|
69
69
|
|
70
70
|
describe 'for a callback with an inout array argument' do
|
71
|
-
let(:callback_info)
|
71
|
+
let(:callback_info) do
|
72
72
|
get_introspection_data('Regress',
|
73
73
|
'TestCallbackArrayInOut')
|
74
|
-
|
74
|
+
end
|
75
75
|
it 'returns a valid mapping method' do
|
76
76
|
skip unless callback_info
|
77
77
|
expected = <<-CODE.reset_indentation
|