gir_ffi 0.7.10 → 0.8.0
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.
- 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
|