gir_ffi 0.7.7 → 0.7.8
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 +9 -0
- data/lib/ffi-glib/array.rb +1 -1
- data/lib/ffi-glib/error.rb +1 -2
- data/lib/ffi-glib/hash_table.rb +2 -2
- data/lib/ffi-glib/variant.rb +1 -1
- data/lib/ffi-gobject/base.rb +23 -23
- data/lib/ffi-gobject/object.rb +7 -3
- data/lib/ffi-gobject/value.rb +6 -1
- data/lib/ffi-gobject.rb +9 -6
- data/lib/ffi-gobject_introspection/i_base_info.rb +3 -3
- data/lib/ffi-gobject_introspection/i_constant_info.rb +1 -1
- data/lib/ffi-gobject_introspection/i_repository.rb +4 -1
- data/lib/ffi-gobject_introspection/i_type_info.rb +1 -1
- data/lib/ffi-gobject_introspection/i_unresolved_info.rb +7 -0
- data/lib/ffi-gobject_introspection/lib.rb +1 -1
- data/lib/gir_ffi/builders/argument_builder.rb +1 -1
- data/lib/gir_ffi/builders/c_to_ruby_convertor.rb +37 -29
- data/lib/gir_ffi/builders/callback_argument_builder.rb +57 -27
- data/lib/gir_ffi/builders/closure_convertor.rb +12 -8
- data/lib/gir_ffi/builders/closure_to_pointer_convertor.rb +12 -8
- data/lib/gir_ffi/builders/constructor_result_convertor.rb +11 -7
- data/lib/gir_ffi/builders/field_builder.rb +1 -1
- data/lib/gir_ffi/builders/function_builder.rb +1 -1
- data/lib/gir_ffi/builders/mapping_method_builder.rb +1 -1
- data/lib/gir_ffi/builders/marshalling_method_builder.rb +2 -2
- data/lib/gir_ffi/builders/method_template.rb +1 -1
- data/lib/gir_ffi/builders/null_convertor.rb +11 -7
- data/lib/gir_ffi/builders/property_builder.rb +1 -1
- data/lib/gir_ffi/builders/ruby_to_c_convertor.rb +17 -13
- data/lib/gir_ffi/error_argument_info.rb +1 -1
- data/lib/gir_ffi/ffi_ext/pointer.rb +1 -1
- data/lib/gir_ffi/info_ext/i_unresolved_info.rb +12 -0
- data/lib/gir_ffi/info_ext/safe_constant_name.rb +2 -2
- data/lib/gir_ffi/info_ext/safe_function_name.rb +1 -1
- data/lib/gir_ffi/info_ext.rb +1 -0
- data/lib/gir_ffi/module_base.rb +1 -1
- data/lib/gir_ffi/receiver_argument_info.rb +15 -12
- data/lib/gir_ffi/user_data_argument_info.rb +17 -15
- data/lib/gir_ffi/user_data_type_info.rb +14 -12
- data/lib/gir_ffi/version.rb +1 -1
- data/lib/gir_ffi-base/gobject/lib.rb +1 -1
- data/test/base_test_helper.rb +15 -15
- data/test/ffi-glib/array_test.rb +38 -38
- data/test/ffi-glib/byte_array_test.rb +6 -7
- data/test/ffi-glib/bytes_test.rb +9 -9
- data/test/ffi-glib/hash_table_test.rb +26 -23
- data/test/ffi-glib/iconv_test.rb +5 -5
- data/test/ffi-glib/list_test.rb +16 -16
- data/test/ffi-glib/main_loop_test.rb +6 -6
- data/test/ffi-glib/ptr_array_test.rb +45 -45
- data/test/ffi-glib/ruby_closure_test.rb +6 -6
- data/test/ffi-glib/s_list_test.rb +15 -15
- data/test/ffi-glib/strv_test.rb +21 -21
- data/test/ffi-glib/variant_test.rb +4 -4
- data/test/ffi-gobject/gobject_test.rb +35 -35
- data/test/ffi-gobject/object_class_test.rb +1 -1
- data/test/ffi-gobject/object_test.rb +29 -6
- data/test/ffi-gobject/value_test.rb +66 -52
- data/test/ffi-gobject_introspection/i_base_info_test.rb +10 -11
- data/test/ffi-gobject_introspection/i_constant_info_test.rb +6 -6
- data/test/ffi-gobject_introspection/i_enum_info_test.rb +4 -5
- data/test/ffi-gobject_introspection/i_function_info_test.rb +0 -2
- data/test/ffi-gobject_introspection/i_object_info_test.rb +5 -5
- data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +9 -8
- data/test/ffi-gobject_introspection/i_repository_test.rb +16 -16
- data/test/ffi-gobject_introspection/i_type_info_test.rb +16 -2
- data/test/ffi-gobject_introspection/lib_test.rb +2 -2
- data/test/ffi-gobject_test.rb +50 -40
- data/test/gir_ffi/arg_helper_test.rb +5 -5
- data/test/gir_ffi/builder_test.rb +41 -41
- data/test/gir_ffi/builders/argument_builder_test.rb +240 -207
- data/test/gir_ffi/builders/base_argument_builder_test.rb +0 -1
- data/test/gir_ffi/builders/callback_argument_builder_test.rb +81 -15
- data/test/gir_ffi/builders/callback_builder_test.rb +39 -14
- data/test/gir_ffi/builders/callback_return_value_builder_test.rb +41 -33
- data/test/gir_ffi/builders/enum_builder_test.rb +3 -3
- data/test/gir_ffi/builders/field_builder_test.rb +17 -17
- data/test/gir_ffi/builders/function_builder_test.rb +16 -16
- data/test/gir_ffi/builders/interface_builder_test.rb +9 -7
- data/test/gir_ffi/builders/module_builder_test.rb +5 -6
- data/test/gir_ffi/builders/object_builder_test.rb +24 -19
- data/test/gir_ffi/builders/property_builder_test.rb +25 -23
- data/test/gir_ffi/builders/registered_type_builder_test.rb +11 -11
- data/test/gir_ffi/builders/return_value_builder_test.rb +237 -197
- data/test/gir_ffi/builders/signal_closure_builder_test.rb +29 -22
- data/test/gir_ffi/builders/struct_builder_test.rb +10 -10
- data/test/gir_ffi/builders/unintrospectable_builder_test.rb +8 -8
- data/test/gir_ffi/builders/union_builder_test.rb +5 -6
- data/test/gir_ffi/builders/user_defined_builder_test.rb +42 -33
- data/test/gir_ffi/builders/vfunc_builder_test.rb +37 -30
- data/test/gir_ffi/callback_base_test.rb +4 -5
- data/test/gir_ffi/class_base_test.rb +35 -28
- data/test/gir_ffi/error_type_info_test.rb +14 -14
- data/test/gir_ffi/ffi_ext/pointer_test.rb +4 -4
- data/test/gir_ffi/g_type_test.rb +6 -6
- data/test/gir_ffi/in_out_pointer_test.rb +27 -27
- data/test/gir_ffi/in_pointer_test.rb +54 -50
- data/test/gir_ffi/info_ext/i_callable_info_test.rb +8 -7
- data/test/gir_ffi/info_ext/i_callback_info_test.rb +7 -7
- data/test/gir_ffi/info_ext/i_field_info_test.rb +10 -8
- data/test/gir_ffi/info_ext/i_function_info_test.rb +17 -15
- data/test/gir_ffi/info_ext/i_signal_info_test.rb +10 -8
- data/test/gir_ffi/info_ext/i_type_info_test.rb +158 -155
- data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +17 -0
- data/test/gir_ffi/info_ext/safe_constant_name_test.rb +12 -10
- data/test/gir_ffi/info_ext/safe_function_name_test.rb +12 -10
- data/test/gir_ffi/interface_base_test.rb +6 -6
- data/test/gir_ffi/method_stubber_test.rb +16 -13
- data/test/gir_ffi/object_base_test.rb +6 -6
- data/test/gir_ffi/sized_array_test.rb +23 -23
- data/test/gir_ffi/type_map_test.rb +3 -3
- data/test/gir_ffi/unintrospectable_type_info_test.rb +18 -18
- data/test/gir_ffi/user_defined_property_info_test.rb +4 -4
- data/test/gir_ffi/user_defined_type_info_test.rb +16 -16
- data/test/gir_ffi/variable_name_generator_test.rb +6 -6
- data/test/gir_ffi/version_test.rb +1 -1
- data/test/gir_ffi/zero_terminated_test.rb +16 -17
- data/test/gir_ffi-base/glib/boolean_test.rb +13 -13
- data/test/gir_ffi-base/glib/strv_test.rb +11 -11
- data/test/gir_ffi_test.rb +18 -18
- data/test/gir_ffi_test_helper.rb +13 -18
- data/test/integration/derived_classes_test.rb +8 -8
- data/test/integration/generated_gimarshallingtests_test.rb +794 -792
- data/test/integration/generated_gio_test.rb +25 -26
- data/test/integration/generated_glib_test.rb +8 -2
- data/test/integration/generated_gobject_test.rb +16 -9
- data/test/integration/generated_pango_ft2_test.rb +1 -2
- data/test/integration/generated_pango_test.rb +2 -2
- data/test/integration/generated_regress_test.rb +785 -705
- data/test/integration/generated_secret_test.rb +5 -5
- data/test/integration/method_lookup_test.rb +5 -5
- data/test/introspection_test_helper.rb +3 -1
- data/test/minitest/stats_plugin.rb +3 -3
- metadata +6 -3
@@ -6,54 +6,69 @@ GirFFI.setup :Regress
|
|
6
6
|
# Tests generated methods and functions in the Regress namespace.
|
7
7
|
describe Regress do
|
8
8
|
describe Regress::Lib do
|
9
|
-
it
|
9
|
+
it 'extends FFI::Library' do
|
10
10
|
class << Regress::Lib
|
11
|
-
|
11
|
+
must_be :include?, FFI::Library
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
15
|
-
describe
|
15
|
+
describe 'Regress::ATestError' do
|
16
16
|
before do
|
17
17
|
skip unless get_introspection_data 'Regress', 'ATestError'
|
18
18
|
end
|
19
19
|
|
20
|
-
it
|
20
|
+
it 'has the member :code0' do
|
21
21
|
Regress::ATestError[:code0].must_equal 0
|
22
22
|
end
|
23
23
|
|
24
|
-
it
|
24
|
+
it 'has the member :code1' do
|
25
25
|
Regress::ATestError[:code1].must_equal 1
|
26
26
|
end
|
27
27
|
|
28
|
-
it
|
28
|
+
it 'has the member :code2' do
|
29
29
|
Regress::ATestError[:code2].must_equal 2
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
it
|
33
|
+
it 'has the constant BOOL_CONSTANT' do
|
34
|
+
skip unless get_introspection_data 'Regress', 'BOOL_CONSTANT'
|
35
|
+
Regress::BOOL_CONSTANT.must_equal true
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'has the constant DOUBLE_CONSTANT' do
|
34
39
|
assert_equal 44.22, Regress::DOUBLE_CONSTANT
|
35
40
|
end
|
36
41
|
|
37
|
-
it
|
42
|
+
it 'has the constant GI_SCANNER_ELSE' do
|
43
|
+
skip unless get_introspection_data 'Regress', 'GI_SCANNER_ELSE'
|
44
|
+
Regress::GI_SCANNER_ELSE.must_equal 3
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'has the constant GI_SCANNER_IFDEF' do
|
48
|
+
skip unless get_introspection_data 'Regress', 'GI_SCANNER_IFDEF'
|
49
|
+
Regress::GI_SCANNER_IFDEF.must_equal 3
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'has the constant GUINT64_CONSTANT' do
|
38
53
|
skip unless get_introspection_data 'Regress', 'GUINT64_CONSTANT'
|
39
|
-
Regress::GUINT64_CONSTANT.must_equal
|
54
|
+
Regress::GUINT64_CONSTANT.must_equal 18_446_744_073_709_551_615
|
40
55
|
end
|
41
56
|
|
42
|
-
it
|
57
|
+
it 'has the constant GUINT64_CONSTANTA' do
|
43
58
|
skip unless get_introspection_data 'Regress', 'GUINT64_CONSTANTA'
|
44
|
-
Regress::GUINT64_CONSTANTA.must_equal
|
59
|
+
Regress::GUINT64_CONSTANTA.must_equal 18_446_744_073_709_551_615
|
45
60
|
end
|
46
61
|
|
47
|
-
it
|
62
|
+
it 'has the constant G_GINT64_CONSTANT' do
|
48
63
|
skip unless get_introspection_data 'Regress', 'G_GINT64_CONSTANT'
|
49
64
|
Regress::G_GINT64_CONSTANT.must_equal 1000
|
50
65
|
end
|
51
66
|
|
52
|
-
it
|
67
|
+
it 'has the constant INT_CONSTANT' do
|
53
68
|
assert_equal 4422, Regress::INT_CONSTANT
|
54
69
|
end
|
55
70
|
|
56
|
-
it
|
71
|
+
it 'has the constant LONG_STRING_CONSTANT' do
|
57
72
|
Regress::LONG_STRING_CONSTANT.must_equal %w(TYPE VALUE ENCODING CHARSET
|
58
73
|
LANGUAGE DOM INTL POSTAL PARCEL
|
59
74
|
HOME WORK PREF VOICE FAX MSG
|
@@ -64,122 +79,122 @@ describe Regress do
|
|
64
79
|
CGM WMF BMP MET PMB DIB PICT
|
65
80
|
TIFF PDF PS JPEG QTIME MPEG
|
66
81
|
MPEG2 AVI WAVE AIFF PCM X509
|
67
|
-
PGP).join(
|
82
|
+
PGP).join(',')
|
68
83
|
end
|
69
84
|
|
70
|
-
describe
|
85
|
+
describe 'Regress::LikeGnomeKeyringPasswordSchema' do
|
71
86
|
before do
|
72
87
|
skip unless get_introspection_data 'Regress', 'LikeGnomeKeyringPasswordSchema'
|
73
88
|
end
|
74
|
-
it
|
89
|
+
it 'creates an instance using #new' do
|
75
90
|
obj = Regress::LikeGnomeKeyringPasswordSchema.new
|
76
91
|
obj.must_be_instance_of Regress::LikeGnomeKeyringPasswordSchema
|
77
92
|
end
|
78
93
|
|
79
94
|
let(:instance) { Regress::LikeGnomeKeyringPasswordSchema.new }
|
80
95
|
|
81
|
-
it
|
96
|
+
it 'has a writable field dummy' do
|
82
97
|
instance.dummy.must_equal 0
|
83
98
|
instance.dummy = 42
|
84
99
|
instance.dummy.must_equal 42
|
85
100
|
end
|
86
101
|
|
87
|
-
it
|
88
|
-
skip
|
102
|
+
it 'has a writable field attributes' do
|
103
|
+
skip 'Introspection data cannot deal with type of this field yet'
|
89
104
|
end
|
90
105
|
|
91
|
-
it
|
106
|
+
it 'has a writable field dummy2' do
|
92
107
|
instance.dummy2.must_equal 0.0
|
93
108
|
instance.dummy2 = 42.42
|
94
109
|
instance.dummy2.must_equal 42.42
|
95
110
|
end
|
96
111
|
end
|
97
112
|
|
98
|
-
describe
|
113
|
+
describe 'Regress::LikeXklConfigItem' do
|
99
114
|
before do
|
100
115
|
skip unless get_introspection_data 'Regress', 'LikeXklConfigItem'
|
101
116
|
end
|
102
117
|
|
103
118
|
let(:instance) { Regress::LikeXklConfigItem.new }
|
104
|
-
let(:name_array) {
|
119
|
+
let(:name_array) { 'foo'.bytes.to_a + [0] * 29 }
|
105
120
|
|
106
|
-
it
|
121
|
+
it 'has a writable field name' do
|
107
122
|
# TODO: Should an array of gint8 be more string-like?
|
108
123
|
instance.name.to_a.must_equal [0] * 32
|
109
124
|
instance.name = name_array
|
110
125
|
instance.name.to_a.must_equal name_array
|
111
126
|
end
|
112
127
|
|
113
|
-
it
|
114
|
-
instance.set_name
|
128
|
+
it 'has a working method #set_name' do
|
129
|
+
instance.set_name 'foo'
|
115
130
|
instance.name.to_a.must_equal name_array
|
116
131
|
end
|
117
132
|
end
|
118
133
|
|
119
|
-
it
|
134
|
+
it 'has the constant MAXUINT64' do
|
120
135
|
skip unless get_introspection_data 'Regress', 'MAXUINT64'
|
121
136
|
Regress::MAXUINT64.must_equal 0xffff_ffff_ffff_ffff
|
122
137
|
end
|
123
138
|
|
124
|
-
it
|
139
|
+
it 'has the constant MININT64' do
|
125
140
|
skip unless get_introspection_data 'Regress', 'MININT64'
|
126
141
|
Regress::MININT64.must_equal(-0x8000_0000_0000_0000)
|
127
142
|
end
|
128
143
|
|
129
|
-
it
|
144
|
+
it 'has the constant Mixed_Case_Constant' do
|
130
145
|
assert_equal 4423, Regress::Mixed_Case_Constant
|
131
146
|
end
|
132
147
|
|
133
|
-
it
|
148
|
+
it 'has the constant NEGATIVE_INT_CONSTANT' do
|
134
149
|
skip unless get_introspection_data 'Regress', 'NEGATIVE_INT_CONSTANT'
|
135
150
|
Regress::NEGATIVE_INT_CONSTANT.must_equal(-42)
|
136
151
|
end
|
137
152
|
|
138
|
-
it
|
139
|
-
assert_equal
|
153
|
+
it 'has the constant STRING_CONSTANT' do
|
154
|
+
assert_equal 'Some String', Regress::STRING_CONSTANT
|
140
155
|
end
|
141
156
|
|
142
|
-
describe
|
157
|
+
describe 'Regress::TestABCError' do
|
143
158
|
before do
|
144
159
|
skip unless get_introspection_data 'Regress', 'TestABCError'
|
145
160
|
end
|
146
161
|
|
147
|
-
it
|
162
|
+
it 'has the member :code1' do
|
148
163
|
Regress::TestABCError[:code1].must_equal 1
|
149
164
|
end
|
150
165
|
|
151
|
-
it
|
166
|
+
it 'has the member :code2' do
|
152
167
|
Regress::TestABCError[:code2].must_equal 2
|
153
168
|
end
|
154
169
|
|
155
|
-
it
|
170
|
+
it 'has the member :code3' do
|
156
171
|
Regress::TestABCError[:code3].must_equal 3
|
157
172
|
end
|
158
173
|
|
159
|
-
it
|
174
|
+
it 'has a working function #quark' do
|
160
175
|
quark = Regress::TestABCError.quark
|
161
|
-
GLib.quark_to_string(quark).must_equal
|
176
|
+
GLib.quark_to_string(quark).must_equal 'regress-test-abc-error'
|
162
177
|
end
|
163
178
|
end
|
164
179
|
|
165
|
-
describe
|
180
|
+
describe 'Regress::TestBoxed' do
|
166
181
|
let(:instance) { Regress::TestBoxed.new_alternative_constructor1 123 }
|
167
182
|
|
168
|
-
it
|
183
|
+
it 'has a writable field some_int8' do
|
169
184
|
instance.some_int8.must_equal 123
|
170
185
|
instance.some_int8 = -43
|
171
186
|
instance.some_int8.must_equal(-43)
|
172
187
|
end
|
173
188
|
|
174
|
-
it
|
189
|
+
it 'has a writable field nested_a' do
|
175
190
|
instance.nested_a.some_int.must_equal 0
|
176
191
|
nested = Regress::TestSimpleBoxedA.new
|
177
|
-
nested.some_int =
|
192
|
+
nested.some_int = 12_345
|
178
193
|
instance.nested_a = nested
|
179
|
-
instance.nested_a.some_int.must_equal
|
194
|
+
instance.nested_a.some_int.must_equal 12_345
|
180
195
|
end
|
181
196
|
|
182
|
-
it
|
197
|
+
it 'has a writable field priv' do
|
183
198
|
instance.priv.wont_be_nil
|
184
199
|
other = Regress::TestBoxed.new
|
185
200
|
instance.priv.wont_equal other.priv
|
@@ -187,34 +202,42 @@ describe Regress do
|
|
187
202
|
instance.priv.must_equal other.priv
|
188
203
|
end
|
189
204
|
|
190
|
-
it
|
205
|
+
it 'creates an instance using #new' do
|
191
206
|
tb = Regress::TestBoxed.new
|
192
207
|
assert_instance_of Regress::TestBoxed, tb
|
193
208
|
end
|
194
209
|
|
195
|
-
it
|
210
|
+
it 'creates an instance using #new_alternative_constructor1' do
|
196
211
|
tb = Regress::TestBoxed.new_alternative_constructor1 1
|
197
212
|
assert_instance_of Regress::TestBoxed, tb
|
198
213
|
assert_equal 1, tb.some_int8
|
199
214
|
end
|
200
215
|
|
201
|
-
it
|
216
|
+
it 'creates an instance using #new_alternative_constructor2' do
|
202
217
|
tb = Regress::TestBoxed.new_alternative_constructor2 1, 2
|
203
218
|
assert_instance_of Regress::TestBoxed, tb
|
204
219
|
assert_equal 1 + 2, tb.some_int8
|
205
220
|
end
|
206
221
|
|
207
|
-
it
|
208
|
-
tb = Regress::TestBoxed.new_alternative_constructor3
|
222
|
+
it 'creates an instance using #new_alternative_constructor3' do
|
223
|
+
tb = Regress::TestBoxed.new_alternative_constructor3 '54'
|
209
224
|
assert_instance_of Regress::TestBoxed, tb
|
210
225
|
assert_equal 54, tb.some_int8
|
211
226
|
end
|
212
227
|
|
213
|
-
it
|
228
|
+
it 'has non-zero positive result for #get_gtype' do
|
214
229
|
assert Regress::TestBoxed.get_gtype > 0
|
215
230
|
end
|
216
231
|
|
217
|
-
it
|
232
|
+
it 'has a working method #_not_a_method' do
|
233
|
+
skip unless get_method_introspection_data('Regress', 'TestBoxed', '_not_a_method')
|
234
|
+
# FIXME: This method has been moved to a function. Should we still expose
|
235
|
+
# it as a method?
|
236
|
+
instance._not_a_method
|
237
|
+
pass
|
238
|
+
end
|
239
|
+
|
240
|
+
it 'has a working method #copy' do
|
218
241
|
tb2 = instance.copy
|
219
242
|
assert_instance_of Regress::TestBoxed, tb2
|
220
243
|
assert_equal 123, tb2.some_int8
|
@@ -222,33 +245,33 @@ describe Regress do
|
|
222
245
|
assert_equal 123, tb2.some_int8
|
223
246
|
end
|
224
247
|
|
225
|
-
it
|
248
|
+
it 'has a working method #equals' do
|
226
249
|
tb2 = Regress::TestBoxed.new_alternative_constructor2 120, 3
|
227
250
|
assert_equal true, instance.equals(tb2)
|
228
251
|
end
|
229
252
|
end
|
230
253
|
|
231
|
-
describe
|
254
|
+
describe 'Regress::TestBoxedB' do
|
232
255
|
let(:instance) { Regress::TestBoxedB.new 8, 42 }
|
233
256
|
|
234
|
-
it
|
257
|
+
it 'has a writable field some_int8' do
|
235
258
|
instance.some_int8.must_equal 8
|
236
259
|
instance.some_int8 = -43
|
237
260
|
instance.some_int8.must_equal(-43)
|
238
261
|
end
|
239
262
|
|
240
|
-
it
|
263
|
+
it 'has a writable field some_long' do
|
241
264
|
instance.some_long.must_equal 42
|
242
265
|
instance.some_long = -4342
|
243
266
|
instance.some_long.must_equal(-4342)
|
244
267
|
end
|
245
268
|
|
246
|
-
it
|
269
|
+
it 'creates an instance using #new' do
|
247
270
|
tb = Regress::TestBoxedB.new 8, 42
|
248
271
|
assert_instance_of Regress::TestBoxedB, tb
|
249
272
|
end
|
250
273
|
|
251
|
-
it
|
274
|
+
it 'has a working method #copy' do
|
252
275
|
cp = instance.copy
|
253
276
|
cp.must_be_instance_of Regress::TestBoxedB
|
254
277
|
cp.some_int8.must_equal 8
|
@@ -258,229 +281,229 @@ describe Regress do
|
|
258
281
|
end
|
259
282
|
end
|
260
283
|
|
261
|
-
describe
|
284
|
+
describe 'Regress::TestBoxedC' do
|
262
285
|
before do
|
263
286
|
skip unless get_introspection_data 'Regress', 'TestBoxedC'
|
264
287
|
end
|
265
288
|
|
266
289
|
let(:instance) { Regress::TestBoxedC.new }
|
267
290
|
|
268
|
-
it
|
291
|
+
it 'has a writable field refcount' do
|
269
292
|
instance.refcount.must_equal 1
|
270
293
|
instance.refcount = 2
|
271
294
|
instance.refcount.must_equal 2
|
272
295
|
end
|
273
296
|
|
274
|
-
it
|
297
|
+
it 'has a writable field another_thing' do
|
275
298
|
instance.another_thing.must_equal 42
|
276
299
|
instance.another_thing = 4342
|
277
300
|
instance.another_thing.must_equal 4342
|
278
301
|
end
|
279
302
|
|
280
|
-
it
|
303
|
+
it 'creates an instance using #new' do
|
281
304
|
tb = Regress::TestBoxedC.new
|
282
305
|
assert_instance_of Regress::TestBoxedC, tb
|
283
306
|
end
|
284
307
|
end
|
285
308
|
|
286
|
-
describe
|
309
|
+
describe 'Regress::TestBoxedD' do
|
287
310
|
before do
|
288
311
|
skip unless get_introspection_data 'Regress', 'TestBoxedD'
|
289
312
|
end
|
290
313
|
|
291
|
-
it
|
292
|
-
instance = Regress::TestBoxedD.new
|
314
|
+
it 'creates an instance using #new' do
|
315
|
+
instance = Regress::TestBoxedD.new 'foo', 42
|
293
316
|
instance.must_be_instance_of Regress::TestBoxedD
|
294
317
|
end
|
295
318
|
|
296
|
-
it
|
297
|
-
instance = Regress::TestBoxedD.new
|
319
|
+
it 'has a working method #copy' do
|
320
|
+
instance = Regress::TestBoxedD.new 'foo', 42
|
298
321
|
copy = instance.copy
|
299
322
|
copy.must_be_instance_of Regress::TestBoxedD
|
300
323
|
instance.get_magic.must_equal copy.get_magic
|
301
324
|
instance.wont_equal copy
|
302
325
|
end
|
303
326
|
|
304
|
-
it
|
305
|
-
instance = Regress::TestBoxedD.new
|
327
|
+
it 'has a working method #free' do
|
328
|
+
instance = Regress::TestBoxedD.new 'foo', 42
|
306
329
|
instance.free
|
307
330
|
pass
|
308
331
|
end
|
309
332
|
|
310
|
-
it
|
311
|
-
instance = Regress::TestBoxedD.new
|
312
|
-
instance.get_magic.must_equal
|
333
|
+
it 'has a working method #get_magic' do
|
334
|
+
instance = Regress::TestBoxedD.new 'foo', 42
|
335
|
+
instance.get_magic.must_equal 'foo'.length + 42
|
313
336
|
end
|
314
337
|
end
|
315
338
|
|
316
|
-
describe
|
339
|
+
describe 'Regress::TestDEFError' do
|
317
340
|
before do
|
318
341
|
skip unless get_introspection_data 'Regress', 'TestDEFError'
|
319
342
|
end
|
320
|
-
it
|
343
|
+
it 'has the member :code0' do
|
321
344
|
Regress::TestDEFError[:code0].must_equal 0
|
322
345
|
end
|
323
346
|
|
324
|
-
it
|
347
|
+
it 'has the member :code1' do
|
325
348
|
Regress::TestDEFError[:code1].must_equal 1
|
326
349
|
end
|
327
350
|
|
328
|
-
it
|
351
|
+
it 'has the member :code2' do
|
329
352
|
Regress::TestDEFError[:code2].must_equal 2
|
330
353
|
end
|
331
354
|
end
|
332
355
|
|
333
|
-
describe
|
334
|
-
it
|
356
|
+
describe 'Regress::TestEnum' do
|
357
|
+
it 'has the member :value1' do
|
335
358
|
Regress::TestEnum[:value1].must_equal 0
|
336
359
|
end
|
337
360
|
|
338
|
-
it
|
361
|
+
it 'has the member :value2' do
|
339
362
|
Regress::TestEnum[:value2].must_equal 1
|
340
363
|
end
|
341
364
|
|
342
|
-
it
|
365
|
+
it 'has the member :value3' do
|
343
366
|
Regress::TestEnum[:value3].must_equal(-1)
|
344
367
|
end
|
345
368
|
|
346
|
-
it
|
369
|
+
it 'has the member :value4' do
|
347
370
|
Regress::TestEnum[:value4].must_equal 48
|
348
371
|
end
|
349
372
|
|
350
|
-
it
|
351
|
-
Regress::TestEnum.param(:value1).must_equal(
|
352
|
-
Regress::TestEnum.param(:value2).must_equal(
|
353
|
-
Regress::TestEnum.param(:value3).must_equal(
|
354
|
-
Regress::TestEnum.param(:value4).must_equal(
|
355
|
-
Regress::TestEnum.param(0).must_equal(
|
356
|
-
Regress::TestEnum.param(1).must_equal(
|
357
|
-
Regress::TestEnum.param(-1).must_equal(
|
358
|
-
Regress::TestEnum.param(48).must_equal(
|
373
|
+
it 'has a working function #param' do
|
374
|
+
Regress::TestEnum.param(:value1).must_equal('value1')
|
375
|
+
Regress::TestEnum.param(:value2).must_equal('value2')
|
376
|
+
Regress::TestEnum.param(:value3).must_equal('value3')
|
377
|
+
Regress::TestEnum.param(:value4).must_equal('value4')
|
378
|
+
Regress::TestEnum.param(0).must_equal('value1')
|
379
|
+
Regress::TestEnum.param(1).must_equal('value2')
|
380
|
+
Regress::TestEnum.param(-1).must_equal('value3')
|
381
|
+
Regress::TestEnum.param(48).must_equal('value4')
|
359
382
|
end
|
360
383
|
end
|
361
384
|
|
362
|
-
describe
|
363
|
-
it
|
385
|
+
describe 'Regress::TestEnumNoGEnum' do
|
386
|
+
it 'has the member :evalue1' do
|
364
387
|
Regress::TestEnumNoGEnum[:evalue1].must_equal 0
|
365
388
|
end
|
366
389
|
|
367
|
-
it
|
390
|
+
it 'has the member :evalue2' do
|
368
391
|
Regress::TestEnumNoGEnum[:evalue2].must_equal 42
|
369
392
|
end
|
370
393
|
|
371
|
-
it
|
394
|
+
it 'has the member :evalue3' do
|
372
395
|
Regress::TestEnumNoGEnum[:evalue3].must_equal 48
|
373
396
|
end
|
374
397
|
end
|
375
398
|
|
376
|
-
describe
|
377
|
-
it
|
399
|
+
describe 'Regress::TestEnumUnsigned' do
|
400
|
+
it 'has the member :value1' do
|
378
401
|
Regress::TestEnumUnsigned[:value1].must_equal 1
|
379
402
|
end
|
380
403
|
|
381
404
|
# NOTE In c, the positive and negative values are not distinguished
|
382
|
-
it
|
383
|
-
Regress::TestEnumUnsigned[:value2].must_equal(-
|
405
|
+
it 'has the member :value2' do
|
406
|
+
Regress::TestEnumUnsigned[:value2].must_equal(-2_147_483_648)
|
384
407
|
end
|
385
408
|
end
|
386
409
|
|
387
|
-
describe
|
410
|
+
describe 'Regress::TestError' do
|
388
411
|
before do
|
389
412
|
skip unless get_introspection_data 'Regress', 'TestError'
|
390
413
|
end
|
391
414
|
|
392
|
-
it
|
415
|
+
it 'has the member :code1' do
|
393
416
|
Regress::TestError[:code1].must_equal 1
|
394
417
|
end
|
395
418
|
|
396
|
-
it
|
419
|
+
it 'has the member :code2' do
|
397
420
|
Regress::TestError[:code2].must_equal 2
|
398
421
|
end
|
399
422
|
|
400
|
-
it
|
423
|
+
it 'has the member :code3' do
|
401
424
|
Regress::TestError[:code3].must_equal 3
|
402
425
|
end
|
403
426
|
|
404
|
-
it
|
427
|
+
it 'has a working function #quark' do
|
405
428
|
quark = Regress::TestError.quark
|
406
|
-
GLib.quark_to_string(quark).must_equal
|
429
|
+
GLib.quark_to_string(quark).must_equal 'regress-test-error'
|
407
430
|
end
|
408
431
|
end
|
409
432
|
|
410
|
-
describe
|
411
|
-
it
|
433
|
+
describe 'Regress::TestFlags' do
|
434
|
+
it 'has the member :flag1' do
|
412
435
|
assert_equal 1, Regress::TestFlags[:flag1]
|
413
436
|
end
|
414
|
-
it
|
437
|
+
it 'has the member :flag2' do
|
415
438
|
assert_equal 2, Regress::TestFlags[:flag2]
|
416
439
|
end
|
417
|
-
it
|
440
|
+
it 'has the member :flag3' do
|
418
441
|
assert_equal 4, Regress::TestFlags[:flag3]
|
419
442
|
end
|
420
443
|
end
|
421
444
|
|
422
|
-
describe
|
423
|
-
it
|
445
|
+
describe 'Regress::TestFloating' do
|
446
|
+
it 'creates an instance using #new' do
|
424
447
|
o = Regress::TestFloating.new
|
425
448
|
o.must_be_instance_of Regress::TestFloating
|
426
449
|
end
|
427
450
|
|
428
|
-
describe
|
451
|
+
describe 'an instance' do
|
429
452
|
before do
|
430
453
|
@o = Regress::TestFloating.new
|
431
454
|
end
|
432
455
|
|
433
|
-
it
|
456
|
+
it 'has a reference count of 1' do
|
434
457
|
assert_equal 1, ref_count(@o)
|
435
458
|
end
|
436
459
|
|
437
|
-
it
|
460
|
+
it 'has been sunk' do
|
438
461
|
@o.wont_be :floating?
|
439
462
|
end
|
440
463
|
end
|
441
464
|
end
|
442
465
|
|
443
|
-
describe
|
444
|
-
it
|
466
|
+
describe 'Regress::TestFundamentalObject' do
|
467
|
+
it 'does not have GObject::Object as an ancestor' do
|
445
468
|
refute_includes Regress::TestFundamentalObject.ancestors,
|
446
469
|
GObject::Object
|
447
470
|
end
|
448
471
|
|
449
|
-
it
|
472
|
+
it 'cannot be instantiated' do
|
450
473
|
proc { Regress::TestFundamentalObject.new }.must_raise NoMethodError
|
451
474
|
end
|
452
475
|
|
453
476
|
# NOTE: Instance methods can only be tested on the subclass, since
|
454
477
|
# TestFundamentalObject is an abstract class.
|
455
|
-
let(:instance) { Regress::TestFundamentalSubObject.new
|
478
|
+
let(:instance) { Regress::TestFundamentalSubObject.new 'foo' }
|
456
479
|
|
457
|
-
it
|
480
|
+
it 'has a working method #ref' do
|
458
481
|
instance.refcount.must_equal 1
|
459
482
|
instance.ref
|
460
483
|
instance.refcount.must_equal 2
|
461
484
|
end
|
462
485
|
|
463
|
-
it
|
486
|
+
it 'has a working method #unref' do
|
464
487
|
instance.refcount.must_equal 1
|
465
488
|
instance.unref
|
466
489
|
instance.refcount.must_equal 0
|
467
490
|
end
|
468
491
|
end
|
469
492
|
|
470
|
-
describe
|
471
|
-
it
|
472
|
-
obj = Regress::TestFundamentalSubObject.new
|
493
|
+
describe 'Regress::TestFundamentalSubObject' do
|
494
|
+
it 'creates an instance using #new' do
|
495
|
+
obj = Regress::TestFundamentalSubObject.new 'foo'
|
473
496
|
obj.must_be_instance_of Regress::TestFundamentalSubObject
|
474
497
|
end
|
475
498
|
|
476
|
-
let(:instance) { Regress::TestFundamentalSubObject.new
|
499
|
+
let(:instance) { Regress::TestFundamentalSubObject.new 'foo' }
|
477
500
|
|
478
|
-
it
|
501
|
+
it 'is a subclass of TestFundamentalObject' do
|
479
502
|
assert_kind_of Regress::TestFundamentalObject, instance
|
480
503
|
end
|
481
504
|
|
482
|
-
it
|
483
|
-
assert_equal
|
505
|
+
it 'has a field :data storing the constructor parameter' do
|
506
|
+
assert_equal 'foo', instance.data
|
484
507
|
end
|
485
508
|
|
486
509
|
it "can access its parent class' fields directly" do
|
@@ -488,36 +511,36 @@ describe Regress do
|
|
488
511
|
end
|
489
512
|
end
|
490
513
|
|
491
|
-
describe
|
492
|
-
it
|
514
|
+
describe 'Regress::TestInterface' do
|
515
|
+
it 'is a module' do
|
493
516
|
assert_instance_of Module, Regress::TestInterface
|
494
517
|
end
|
495
518
|
|
496
|
-
it
|
519
|
+
it 'extends InterfaceBase' do
|
497
520
|
metaclass = class << Regress::TestInterface; self; end
|
498
521
|
assert_includes metaclass.ancestors, GirFFI::InterfaceBase
|
499
522
|
end
|
500
523
|
|
501
|
-
it
|
524
|
+
it 'has non-zero positive result for #get_gtype' do
|
502
525
|
Regress::TestInterface.get_gtype.must_be :>, 0
|
503
526
|
end
|
504
527
|
end
|
505
528
|
|
506
|
-
describe
|
507
|
-
it
|
529
|
+
describe 'Regress::TestObj' do
|
530
|
+
it 'creates an instance using #constructor' do
|
508
531
|
obj = Regress::TestObj.constructor
|
509
532
|
obj.must_be_instance_of Regress::TestObj
|
510
533
|
end
|
511
534
|
|
512
|
-
it
|
535
|
+
it 'creates an instance using #new' do
|
513
536
|
o1 = Regress::TestObj.constructor
|
514
537
|
o2 = Regress::TestObj.new o1
|
515
538
|
o2.must_be_instance_of Regress::TestObj
|
516
539
|
end
|
517
540
|
|
518
|
-
it
|
541
|
+
it 'creates an instance using #new_callback' do
|
519
542
|
a = 1
|
520
|
-
o = Regress::TestObj.new_callback
|
543
|
+
o = Regress::TestObj.new_callback proc { a = 2 }, nil, nil
|
521
544
|
assert_instance_of Regress::TestObj, o
|
522
545
|
a.must_equal 2
|
523
546
|
|
@@ -528,58 +551,58 @@ describe Regress do
|
|
528
551
|
result.must_equal 2
|
529
552
|
end
|
530
553
|
|
531
|
-
it
|
532
|
-
o = Regress::TestObj.new_from_file(
|
554
|
+
it 'creates an instance using #new_from_file' do
|
555
|
+
o = Regress::TestObj.new_from_file('foo')
|
533
556
|
assert_instance_of Regress::TestObj, o
|
534
557
|
end
|
535
558
|
|
536
|
-
it
|
559
|
+
it 'has a working function #null_out' do
|
537
560
|
obj = Regress::TestObj.null_out
|
538
561
|
obj.must_be_nil
|
539
562
|
end
|
540
563
|
|
541
|
-
it
|
564
|
+
it 'has a working function #static_method' do
|
542
565
|
rv = Regress::TestObj.static_method 623
|
543
566
|
assert_equal 623.0, rv
|
544
567
|
end
|
545
568
|
|
546
|
-
it
|
569
|
+
it 'has a working function #static_method_callback' do
|
547
570
|
a = 1
|
548
|
-
Regress::TestObj.static_method_callback
|
571
|
+
Regress::TestObj.static_method_callback proc { a = 2 }
|
549
572
|
assert_equal 2, a
|
550
573
|
end
|
551
574
|
|
552
|
-
let(:instance) { Regress::TestObj.new_from_file(
|
575
|
+
let(:instance) { Regress::TestObj.new_from_file('foo') }
|
553
576
|
|
554
|
-
describe
|
555
|
-
it
|
577
|
+
describe 'its gtype' do
|
578
|
+
it 'can be found through get_gtype and GObject.type_from_instance' do
|
556
579
|
gtype = Regress::TestObj.get_gtype
|
557
580
|
r = GObject.type_from_instance instance
|
558
581
|
assert_equal gtype, r
|
559
582
|
end
|
560
583
|
end
|
561
584
|
|
562
|
-
it
|
585
|
+
it 'has a reference count of 1' do
|
563
586
|
assert_equal 1, ref_count(instance)
|
564
587
|
end
|
565
588
|
|
566
|
-
it
|
589
|
+
it 'does not float' do
|
567
590
|
instance.wont_be :floating?
|
568
591
|
end
|
569
592
|
|
570
|
-
it
|
571
|
-
instance.matrix(
|
593
|
+
it 'has a working method #matrix' do
|
594
|
+
instance.matrix('bar').must_equal 42
|
572
595
|
end
|
573
596
|
|
574
|
-
it
|
575
|
-
instance.do_matrix(
|
597
|
+
it 'has a working method #do_matrix' do
|
598
|
+
instance.do_matrix('bar').must_equal 42
|
576
599
|
end
|
577
600
|
|
578
|
-
it
|
601
|
+
it 'has a working method #emit_sig_with_foreign_struct' do
|
579
602
|
skip unless get_method_introspection_data('Regress', 'TestObj',
|
580
603
|
'emit_sig_with_foreign_struct')
|
581
604
|
has_fired = false
|
582
|
-
instance.signal_connect
|
605
|
+
instance.signal_connect 'sig-with-foreign-struct' do |_obj, cr|
|
583
606
|
has_fired = true
|
584
607
|
cr.must_be_instance_of Cairo::Context
|
585
608
|
end
|
@@ -587,17 +610,17 @@ describe Regress do
|
|
587
610
|
assert has_fired
|
588
611
|
end
|
589
612
|
|
590
|
-
it
|
591
|
-
skip unless get_signal_introspection_data
|
592
|
-
instance.signal_connect
|
613
|
+
it 'has a working method #emit_sig_with_int64' do
|
614
|
+
skip unless get_signal_introspection_data 'Regress', 'TestObj', 'sig-with-int64-prop'
|
615
|
+
instance.signal_connect 'sig-with-int64-prop' do |_obj, i, _ud|
|
593
616
|
i
|
594
617
|
end
|
595
618
|
instance.emit_sig_with_int64
|
596
619
|
end
|
597
620
|
|
598
|
-
it
|
621
|
+
it 'has a working method #emit_sig_with_obj' do
|
599
622
|
has_fired = false
|
600
|
-
instance.signal_connect
|
623
|
+
instance.signal_connect 'sig-with-obj' do |_it, obj|
|
601
624
|
has_fired = true
|
602
625
|
obj.int.must_equal 3
|
603
626
|
end
|
@@ -605,37 +628,45 @@ describe Regress do
|
|
605
628
|
assert has_fired
|
606
629
|
end
|
607
630
|
|
608
|
-
it
|
609
|
-
skip unless get_signal_introspection_data
|
610
|
-
instance.signal_connect
|
631
|
+
it 'has a working method #emit_sig_with_uint64' do
|
632
|
+
skip unless get_signal_introspection_data 'Regress', 'TestObj', 'sig-with-uint64-prop'
|
633
|
+
instance.signal_connect 'sig-with-uint64-prop' do |_obj, i, _ud|
|
611
634
|
i
|
612
635
|
end
|
613
636
|
instance.emit_sig_with_uint64
|
614
637
|
end
|
615
638
|
|
616
|
-
it
|
639
|
+
it 'has a working method #forced_method' do
|
617
640
|
instance.forced_method
|
618
641
|
pass
|
619
642
|
end
|
620
643
|
|
621
|
-
it
|
644
|
+
it 'has a working method #instance_method' do
|
622
645
|
rv = instance.instance_method
|
623
646
|
assert_equal(-1, rv)
|
624
647
|
end
|
625
648
|
|
626
|
-
it
|
649
|
+
it 'has a working method #instance_method_callback' do
|
627
650
|
a = 1
|
628
|
-
instance.instance_method_callback
|
651
|
+
instance.instance_method_callback proc { a = 2 }
|
629
652
|
assert_equal 2, a
|
630
653
|
end
|
631
654
|
|
632
|
-
it
|
633
|
-
|
655
|
+
it 'has a working method #instance_method_full' do
|
656
|
+
skip unless get_method_introspection_data('Regress', 'TestObj', 'instance_method_full')
|
657
|
+
instance.instance_method_full
|
658
|
+
# FIXME: Is this the behavior we want, or do we want to increase the
|
659
|
+
# refcount beforehand?
|
660
|
+
ref_count(instance).must_equal 0
|
661
|
+
end
|
662
|
+
|
663
|
+
it 'has a working method #set_bare' do
|
664
|
+
obj = Regress::TestObj.new_from_file('bar')
|
634
665
|
instance.set_bare obj
|
635
666
|
instance.bare.must_equal obj
|
636
667
|
end
|
637
668
|
|
638
|
-
it
|
669
|
+
it 'has a working method #skip_inout_param' do
|
639
670
|
a = 1
|
640
671
|
c = 2.0
|
641
672
|
num1 = 3
|
@@ -646,7 +677,7 @@ describe Regress do
|
|
646
677
|
sum.must_equal num1 + 10 * num2
|
647
678
|
end
|
648
679
|
|
649
|
-
it
|
680
|
+
it 'has a working method #skip_out_param' do
|
650
681
|
a = 1
|
651
682
|
c = 2.0
|
652
683
|
d = 3
|
@@ -658,7 +689,7 @@ describe Regress do
|
|
658
689
|
sum.must_equal num1 + 10 * num2
|
659
690
|
end
|
660
691
|
|
661
|
-
it
|
692
|
+
it 'has a working method #skip_param' do
|
662
693
|
a = 1
|
663
694
|
d = 3
|
664
695
|
num1 = 4
|
@@ -670,7 +701,7 @@ describe Regress do
|
|
670
701
|
sum.must_equal num1 + 10 * num2
|
671
702
|
end
|
672
703
|
|
673
|
-
it
|
704
|
+
it 'has a working method #skip_return_val' do
|
674
705
|
a = 1
|
675
706
|
c = 2.0
|
676
707
|
d = 3
|
@@ -682,324 +713,350 @@ describe Regress do
|
|
682
713
|
out_sum.must_equal num1 + 10 * num2
|
683
714
|
end
|
684
715
|
|
685
|
-
it
|
716
|
+
it 'has a working method #skip_return_val_no_out' do
|
686
717
|
result = instance.skip_return_val_no_out 1
|
687
718
|
result.must_be_nil
|
688
719
|
|
689
720
|
proc { instance.skip_return_val_no_out 0 }.must_raise GirFFI::GLibError
|
690
721
|
end
|
691
722
|
|
692
|
-
it
|
693
|
-
y, z, q = instance.torture_signature_0(-21,
|
694
|
-
assert_equal [-21, 2 * -21,
|
723
|
+
it 'has a working method #torture_signature_0' do
|
724
|
+
y, z, q = instance.torture_signature_0(-21, 'hello', 13)
|
725
|
+
assert_equal [-21, 2 * -21, 'hello'.length + 13],
|
695
726
|
[y, z, q]
|
696
727
|
end
|
697
728
|
|
698
|
-
it
|
699
|
-
ret, y, z, q = instance.torture_signature_1(-21,
|
700
|
-
[ret, y, z, q].must_equal [true, -21, 2 * -21,
|
729
|
+
it 'has a working method #torture_signature_1' do
|
730
|
+
ret, y, z, q = instance.torture_signature_1(-21, 'hello', 12)
|
731
|
+
[ret, y, z, q].must_equal [true, -21, 2 * -21, 'hello'.length + 12]
|
701
732
|
|
702
|
-
proc { instance.torture_signature_1(-21,
|
733
|
+
proc { instance.torture_signature_1(-21, 'hello', 11) }.
|
703
734
|
must_raise GirFFI::GLibError
|
704
735
|
end
|
705
736
|
|
706
737
|
describe "its 'bare' property" do
|
707
|
-
it
|
708
|
-
instance.get_property(
|
738
|
+
it 'can be retrieved with #get_property' do
|
739
|
+
instance.get_property('bare').get_value.must_be_nil
|
709
740
|
end
|
710
741
|
|
711
|
-
it
|
742
|
+
it 'can be retrieved with #bare' do
|
712
743
|
instance.bare.must_be_nil
|
713
744
|
end
|
714
745
|
|
715
|
-
it
|
716
|
-
obj = Regress::TestObj.new_from_file(
|
717
|
-
instance.set_property
|
718
|
-
instance.get_property(
|
746
|
+
it 'can be set with #set_property' do
|
747
|
+
obj = Regress::TestObj.new_from_file('bar')
|
748
|
+
instance.set_property 'bare', obj
|
749
|
+
instance.get_property('bare').get_value.must_equal obj
|
719
750
|
end
|
720
751
|
|
721
|
-
it
|
722
|
-
obj = Regress::TestObj.new_from_file(
|
752
|
+
it 'can be set with #bare=' do
|
753
|
+
obj = Regress::TestObj.new_from_file('bar')
|
723
754
|
instance.bare = obj
|
724
755
|
|
725
756
|
instance.bare.must_equal obj
|
726
|
-
instance.get_property(
|
757
|
+
instance.get_property('bare').get_value.must_equal obj
|
727
758
|
end
|
728
759
|
end
|
729
760
|
|
730
761
|
describe "its 'boxed' property" do
|
731
|
-
it
|
732
|
-
instance.get_property(
|
762
|
+
it 'can be retrieved with #get_property' do
|
763
|
+
instance.get_property('boxed').get_value.must_be_nil
|
733
764
|
end
|
734
765
|
|
735
|
-
it
|
766
|
+
it 'can be retrieved with #boxed' do
|
736
767
|
instance.boxed.must_be_nil
|
737
768
|
end
|
738
769
|
|
739
|
-
it
|
770
|
+
it 'can be set with #set_property' do
|
740
771
|
tb = Regress::TestBoxed.new_alternative_constructor1 75
|
741
|
-
instance.set_property
|
742
|
-
instance.get_property(
|
772
|
+
instance.set_property 'boxed', tb
|
773
|
+
instance.get_property('boxed').get_value.some_int8.must_equal 75
|
743
774
|
end
|
744
775
|
|
745
|
-
it
|
776
|
+
it 'can be set with #boxed=' do
|
746
777
|
tb = Regress::TestBoxed.new_alternative_constructor1 75
|
747
778
|
instance.boxed = tb
|
748
779
|
instance.boxed.some_int8.must_equal tb.some_int8
|
749
|
-
instance.get_property(
|
780
|
+
instance.get_property('boxed').get_value.some_int8.must_equal tb.some_int8
|
750
781
|
end
|
751
782
|
end
|
752
783
|
|
753
784
|
describe "its 'double' property" do
|
754
|
-
it
|
755
|
-
instance.get_property(
|
785
|
+
it 'can be retrieved with #get_property' do
|
786
|
+
instance.get_property('double').get_value.must_equal 0.0
|
756
787
|
end
|
757
788
|
|
758
|
-
it
|
789
|
+
it 'can be retrieved with #double' do
|
759
790
|
instance.double.must_equal 0.0
|
760
791
|
end
|
761
792
|
|
762
|
-
it
|
763
|
-
instance.set_property
|
764
|
-
instance.get_property(
|
793
|
+
it 'can be set with #set_property' do
|
794
|
+
instance.set_property 'double', 3.14
|
795
|
+
instance.get_property('double').get_value.must_equal 3.14
|
765
796
|
end
|
766
797
|
|
767
|
-
it
|
798
|
+
it 'can be set with #double=' do
|
768
799
|
instance.double = 3.14
|
769
800
|
instance.double.must_equal 3.14
|
770
|
-
instance.get_property(
|
801
|
+
instance.get_property('double').get_value.must_equal 3.14
|
771
802
|
end
|
772
803
|
end
|
773
804
|
|
774
805
|
describe "its 'float' property" do
|
775
|
-
it
|
776
|
-
instance.get_property(
|
806
|
+
it 'can be retrieved with #get_property' do
|
807
|
+
instance.get_property('float').get_value.must_equal 0.0
|
777
808
|
end
|
778
809
|
|
779
|
-
it
|
810
|
+
it 'can be retrieved with #float' do
|
780
811
|
instance.float.must_equal 0.0
|
781
812
|
end
|
782
813
|
|
783
|
-
it
|
784
|
-
instance.set_property
|
785
|
-
instance.get_property(
|
814
|
+
it 'can be set with #set_property' do
|
815
|
+
instance.set_property 'float', 3.14
|
816
|
+
instance.get_property('float').get_value.must_be_close_to 3.14
|
786
817
|
end
|
787
818
|
|
788
|
-
it
|
819
|
+
it 'can be set with #float=' do
|
789
820
|
instance.float = 3.14
|
790
821
|
instance.float.must_be_close_to 3.14
|
791
|
-
instance.get_property(
|
822
|
+
instance.get_property('float').get_value.must_be_close_to 3.14
|
792
823
|
end
|
793
824
|
end
|
794
825
|
|
795
826
|
describe "its 'gtype' property" do
|
796
827
|
before do
|
797
|
-
skip unless get_property_introspection_data(
|
828
|
+
skip unless get_property_introspection_data('Regress', 'TestObj', 'gtype')
|
798
829
|
end
|
799
830
|
|
800
|
-
it
|
801
|
-
instance.get_property(
|
831
|
+
it 'can be retrieved with #get_property' do
|
832
|
+
instance.get_property('gtype').get_value.must_equal 0
|
802
833
|
end
|
803
834
|
|
804
|
-
it
|
835
|
+
it 'can be retrieved with #gtype' do
|
805
836
|
instance.gtype.must_equal 0
|
806
837
|
end
|
807
838
|
|
808
|
-
it
|
809
|
-
instance.set_property
|
810
|
-
instance.get_property(
|
839
|
+
it 'can be set with #set_property' do
|
840
|
+
instance.set_property 'gtype', GObject::TYPE_INT64
|
841
|
+
instance.get_property('gtype').get_value.must_equal GObject::TYPE_INT64
|
811
842
|
end
|
812
843
|
|
813
|
-
it
|
844
|
+
it 'can be set with #gtype=' do
|
814
845
|
instance.gtype = GObject::TYPE_STRING
|
815
846
|
instance.gtype.must_equal GObject::TYPE_STRING
|
816
|
-
instance.get_property(
|
847
|
+
instance.get_property('gtype').get_value.must_equal GObject::TYPE_STRING
|
817
848
|
end
|
818
849
|
end
|
819
850
|
|
820
851
|
describe "its 'hash-table' property" do
|
821
|
-
it
|
822
|
-
instance.get_property(
|
852
|
+
it 'can be retrieved with #get_property' do
|
853
|
+
instance.get_property('hash-table').get_value.must_be_nil
|
823
854
|
end
|
824
855
|
|
825
|
-
it
|
856
|
+
it 'can be retrieved with #hash_table' do
|
826
857
|
instance.hash_table.must_be_nil
|
827
858
|
end
|
828
859
|
|
829
|
-
it
|
830
|
-
instance.set_property_extended
|
831
|
-
instance.hash_table.to_hash.must_equal(
|
860
|
+
it 'can be set with #set_property_extended' do
|
861
|
+
instance.set_property_extended 'hash-table', 'foo' => -4, 'bar' => 83
|
862
|
+
instance.hash_table.to_hash.must_equal('foo' => -4, 'bar' => 83)
|
832
863
|
end
|
833
864
|
|
834
|
-
it
|
835
|
-
instance.hash_table = {
|
836
|
-
instance.hash_table.to_hash.must_equal(
|
837
|
-
instance.get_property_extended(
|
838
|
-
|
865
|
+
it 'can be set with #hash_table=' do
|
866
|
+
instance.hash_table = { 'foo' => -4, 'bar' => 83 }
|
867
|
+
instance.hash_table.to_hash.must_equal('foo' => -4, 'bar' => 83)
|
868
|
+
instance.get_property_extended('hash-table').to_hash.must_equal('foo' => -4,
|
869
|
+
'bar' => 83)
|
839
870
|
end
|
840
871
|
end
|
841
872
|
|
842
873
|
describe "its 'hash-table-old' property" do
|
843
|
-
it
|
844
|
-
instance.get_property(
|
874
|
+
it 'can be retrieved with #get_property' do
|
875
|
+
instance.get_property('hash-table-old').get_value.must_be_nil
|
845
876
|
end
|
846
877
|
|
847
|
-
it
|
878
|
+
it 'can be retrieved with #hash_table_old' do
|
848
879
|
instance.hash_table_old.must_be_nil
|
849
880
|
end
|
850
881
|
|
851
|
-
it
|
852
|
-
instance.set_property_extended
|
853
|
-
instance.hash_table_old.to_hash.must_equal(
|
882
|
+
it 'can be set with #set_property_extended' do
|
883
|
+
instance.set_property_extended 'hash-table-old', 'foo' => 34, 'bar' => -3
|
884
|
+
instance.hash_table_old.to_hash.must_equal('foo' => 34, 'bar' => -3)
|
854
885
|
end
|
855
886
|
|
856
|
-
it
|
857
|
-
instance.hash_table_old = {
|
858
|
-
instance.hash_table_old.to_hash.must_equal(
|
859
|
-
instance.get_property_extended(
|
860
|
-
|
887
|
+
it 'can be set with #hash_table_old=' do
|
888
|
+
instance.hash_table_old = { 'foo' => 34, 'bar' => -3 }
|
889
|
+
instance.hash_table_old.to_hash.must_equal('foo' => 34, 'bar' => -3)
|
890
|
+
instance.get_property_extended('hash-table-old').to_hash.must_equal('foo' => 34,
|
891
|
+
'bar' => -3)
|
861
892
|
end
|
862
893
|
end
|
863
894
|
|
864
895
|
describe "its 'int' property" do
|
865
|
-
it
|
866
|
-
assert_equal 0, instance.get_property(
|
896
|
+
it 'can be retrieved with #get_property' do
|
897
|
+
assert_equal 0, instance.get_property('int').get_value
|
867
898
|
end
|
868
899
|
|
869
|
-
it
|
900
|
+
it 'can be retrieved with #int' do
|
870
901
|
assert_equal 0, instance.int
|
871
902
|
end
|
872
903
|
|
873
|
-
it
|
874
|
-
instance.set_property
|
875
|
-
assert_equal 42, instance.get_property(
|
904
|
+
it 'can be set with #set_property' do
|
905
|
+
instance.set_property 'int', 42
|
906
|
+
assert_equal 42, instance.get_property('int').get_value
|
876
907
|
end
|
877
908
|
|
878
|
-
it
|
909
|
+
it 'can be set with #int=' do
|
879
910
|
instance.int = 41
|
880
|
-
assert_equal 41, instance.get_property(
|
911
|
+
assert_equal 41, instance.get_property('int').get_value
|
881
912
|
assert_equal 41, instance.int
|
882
913
|
end
|
883
914
|
end
|
884
915
|
|
885
916
|
describe "its 'list' property" do
|
886
|
-
it
|
887
|
-
instance.get_property_extended(
|
917
|
+
it 'can be retrieved with #get_property_extended' do
|
918
|
+
instance.get_property_extended('list').must_be_nil
|
888
919
|
end
|
889
920
|
|
890
|
-
it
|
921
|
+
it 'can be retrieved with #list' do
|
891
922
|
instance.list.must_be_nil
|
892
923
|
end
|
893
924
|
|
894
|
-
it
|
895
|
-
instance.set_property_extended
|
896
|
-
instance.list.to_a.must_equal
|
925
|
+
it 'can be set with #set_property_extended' do
|
926
|
+
instance.set_property_extended 'list', %w(foo bar)
|
927
|
+
instance.list.to_a.must_equal %w(foo bar)
|
897
928
|
end
|
898
929
|
|
899
|
-
it
|
900
|
-
instance.list =
|
901
|
-
instance.list.to_a.must_equal
|
902
|
-
instance.get_property_extended(
|
930
|
+
it 'can be set with #list=' do
|
931
|
+
instance.list = %w(foo bar)
|
932
|
+
instance.list.to_a.must_equal %w(foo bar)
|
933
|
+
instance.get_property_extended('list').must_be :==, %w(foo bar)
|
903
934
|
end
|
904
935
|
end
|
905
936
|
|
906
937
|
describe "its 'list-old' property" do
|
907
|
-
it
|
908
|
-
instance.get_property_extended(
|
938
|
+
it 'can be retrieved with #get_property' do
|
939
|
+
instance.get_property_extended('list-old').must_be_nil
|
909
940
|
end
|
910
941
|
|
911
|
-
it
|
942
|
+
it 'can be retrieved with #list_old' do
|
912
943
|
instance.list_old.must_be_nil
|
913
944
|
end
|
914
945
|
|
915
|
-
it
|
916
|
-
instance.set_property_extended
|
917
|
-
instance.list_old.must_be :==,
|
946
|
+
it 'can be set with #set_property_extended' do
|
947
|
+
instance.set_property_extended 'list-old', %w(foo bar)
|
948
|
+
instance.list_old.must_be :==, %w(foo bar)
|
918
949
|
end
|
919
950
|
|
920
|
-
it
|
921
|
-
instance.list_old =
|
922
|
-
instance.list_old.must_be :==,
|
923
|
-
instance.get_property_extended(
|
951
|
+
it 'can be set with #list_old=' do
|
952
|
+
instance.list_old = %w(foo bar)
|
953
|
+
instance.list_old.must_be :==, %w(foo bar)
|
954
|
+
instance.get_property_extended('list-old').must_be :==, %w(foo bar)
|
924
955
|
end
|
925
956
|
end
|
926
957
|
|
958
|
+
describe "its 'pptrarray' property" do
|
959
|
+
it 'can be retrieved with #get_property' do
|
960
|
+
skip 'pptrarray is not implemented properly'
|
961
|
+
instance.get_property('pptrarray').must_be_nil
|
962
|
+
end
|
963
|
+
|
964
|
+
it 'can be retrieved with #pptrarray' do
|
965
|
+
skip 'pptrarray is not implemented properly'
|
966
|
+
instance.pptrarray.must_be_nil
|
967
|
+
end
|
968
|
+
|
969
|
+
it 'can be set with #set_property' do
|
970
|
+
skip 'pptrarray is not implemented properly'
|
971
|
+
arr = Regress.test_garray_container_return
|
972
|
+
instance.set_property 'pptrarray', arr
|
973
|
+
instance.pptrarray.must_be :==, arr
|
974
|
+
end
|
975
|
+
|
976
|
+
it 'can be set with #pptrarray=' do
|
977
|
+
skip 'pptrarray is not implemented properly'
|
978
|
+
arr = Regress.test_garray_container_return
|
979
|
+
instance.pptrarray = arr
|
980
|
+
instance.pptrarray.must_be :==, arr
|
981
|
+
instance.get_property('pptrarray').must_be :==, arr
|
982
|
+
end
|
983
|
+
end
|
927
984
|
describe "its 'string' property" do
|
928
|
-
it
|
929
|
-
assert_nil instance.get_property(
|
985
|
+
it 'can be retrieved with #get_property' do
|
986
|
+
assert_nil instance.get_property('string').get_value
|
930
987
|
end
|
931
988
|
|
932
|
-
it
|
989
|
+
it 'can be retrieved with #string' do
|
933
990
|
assert_nil instance.string
|
934
991
|
end
|
935
992
|
|
936
|
-
it
|
937
|
-
instance.set_property
|
938
|
-
assert_equal
|
993
|
+
it 'can be set with #set_property' do
|
994
|
+
instance.set_property 'string', 'foobar'
|
995
|
+
assert_equal 'foobar', instance.get_property('string').get_value
|
939
996
|
end
|
940
997
|
|
941
|
-
it
|
942
|
-
instance.string =
|
943
|
-
assert_equal
|
944
|
-
assert_equal
|
998
|
+
it 'can be set with #string=' do
|
999
|
+
instance.string = 'foobar'
|
1000
|
+
assert_equal 'foobar', instance.string
|
1001
|
+
assert_equal 'foobar', instance.get_property('string').get_value
|
945
1002
|
end
|
946
1003
|
end
|
947
1004
|
|
948
1005
|
it "handles the 'all' signal" do
|
949
1006
|
a = nil
|
950
|
-
GObject.signal_connect(instance,
|
951
|
-
GObject.signal_emit instance,
|
1007
|
+
GObject.signal_connect(instance, 'all') { a = 4 }
|
1008
|
+
GObject.signal_emit instance, 'all'
|
952
1009
|
a.must_equal 4
|
953
1010
|
end
|
954
1011
|
|
955
1012
|
it "handles the 'cleanup' signal" do
|
956
1013
|
a = nil
|
957
|
-
GObject.signal_connect(instance,
|
958
|
-
GObject.signal_emit instance,
|
1014
|
+
GObject.signal_connect(instance, 'cleanup') { a = 4 }
|
1015
|
+
GObject.signal_emit instance, 'cleanup'
|
959
1016
|
a.must_equal 4
|
960
1017
|
end
|
961
1018
|
|
962
1019
|
it "handles the 'first' signal" do
|
963
1020
|
a = nil
|
964
|
-
GObject.signal_connect(instance,
|
965
|
-
GObject.signal_emit instance,
|
1021
|
+
GObject.signal_connect(instance, 'first') { a = 4 }
|
1022
|
+
GObject.signal_emit instance, 'first'
|
966
1023
|
a.must_equal 4
|
967
1024
|
end
|
968
1025
|
|
969
1026
|
it "handles the 'sig-with-array-len-prop' signal" do
|
970
|
-
skip unless get_signal_introspection_data
|
1027
|
+
skip unless get_signal_introspection_data 'Regress', 'TestObj', 'sig-with-array-len-prop'
|
971
1028
|
|
972
1029
|
a = nil
|
973
1030
|
|
974
|
-
GObject.signal_connect(instance,
|
1031
|
+
GObject.signal_connect(instance, 'sig-with-array-len-prop') do |_obj, arr, _user_data|
|
975
1032
|
a = arr
|
976
1033
|
end
|
977
1034
|
|
978
1035
|
arr = GirFFI::InPointer.from_array(:uint, [1, 2, 3])
|
979
|
-
GObject.signal_emit instance,
|
1036
|
+
GObject.signal_emit instance, 'sig-with-array-len-prop', arr, 3
|
980
1037
|
|
981
1038
|
a.to_a.must_equal [1, 2, 3]
|
982
1039
|
end
|
983
1040
|
|
984
1041
|
it "handles the 'sig-with-array-prop' signal" do
|
985
1042
|
a = nil
|
986
|
-
GObject.signal_connect(instance,
|
987
|
-
GObject.signal_emit instance,
|
1043
|
+
GObject.signal_connect(instance, 'sig-with-array-prop') { |_, arr, _| a = arr }
|
1044
|
+
GObject.signal_emit instance, 'sig-with-array-prop',
|
988
1045
|
GLib::Array.from(:uint, [1, 2, 3])
|
989
1046
|
a.to_a.must_equal [1, 2, 3]
|
990
1047
|
end
|
991
1048
|
|
992
1049
|
it "handles the 'sig-with-foreign-struct' signal" do
|
993
|
-
skip unless get_signal_introspection_data
|
1050
|
+
skip unless get_signal_introspection_data 'Regress', 'TestObj', 'sig-with-foreign-struct'
|
994
1051
|
|
995
1052
|
a = nil
|
996
|
-
instance.signal_connect
|
1053
|
+
instance.signal_connect 'sig-with-foreign-struct' do |_obj, ct|
|
997
1054
|
a = ct
|
998
1055
|
end
|
999
1056
|
|
1000
1057
|
cairo_context = Regress.test_cairo_context_full_return
|
1001
1058
|
|
1002
|
-
GObject.signal_emit instance,
|
1059
|
+
GObject.signal_emit instance, 'sig-with-foreign-struct', cairo_context
|
1003
1060
|
|
1004
1061
|
a.must_be_instance_of Cairo::Context
|
1005
1062
|
a.must_equal cairo_context
|
@@ -1008,45 +1065,45 @@ describe Regress do
|
|
1008
1065
|
it "handles the 'sig-with-hash-prop' signal" do
|
1009
1066
|
a = nil
|
1010
1067
|
|
1011
|
-
GObject.signal_connect(instance,
|
1068
|
+
GObject.signal_connect(instance, 'sig-with-hash-prop') do |_, ghash, _|
|
1012
1069
|
a = ghash.to_hash
|
1013
1070
|
end
|
1014
1071
|
|
1015
1072
|
g_hash_table = GLib::HashTable.from([:utf8, GObject::Value],
|
1016
|
-
|
1073
|
+
'foo' => GObject::Value.from('bar'))
|
1017
1074
|
|
1018
|
-
GObject.signal_emit instance,
|
1075
|
+
GObject.signal_emit instance, 'sig-with-hash-prop', g_hash_table
|
1019
1076
|
|
1020
|
-
a[
|
1021
|
-
a[
|
1077
|
+
a['foo'].must_be_instance_of GObject::Value
|
1078
|
+
a['foo'].get_value.must_equal 'bar'
|
1022
1079
|
end
|
1023
1080
|
|
1024
1081
|
it "handles the 'sig-with-int64-prop' signal" do
|
1025
|
-
skip unless get_signal_introspection_data
|
1082
|
+
skip unless get_signal_introspection_data 'Regress', 'TestObj', 'sig-with-int64-prop'
|
1026
1083
|
|
1027
1084
|
a = nil
|
1028
1085
|
|
1029
|
-
GObject.signal_connect(instance,
|
1086
|
+
GObject.signal_connect(instance, 'sig-with-int64-prop') do |_obj, int64, _user_data|
|
1030
1087
|
a = int64
|
1031
1088
|
end
|
1032
1089
|
|
1033
|
-
result = GObject.signal_emit instance,
|
1090
|
+
result = GObject.signal_emit instance, 'sig-with-int64-prop', 0x7fff_ffff_ffff_ffff
|
1034
1091
|
|
1035
1092
|
a.must_equal 0x7fff_ffff_ffff_ffff
|
1036
1093
|
result.get_value.must_equal 0x7fff_ffff_ffff_ffff
|
1037
1094
|
end
|
1038
1095
|
|
1039
1096
|
it "handles the 'sig-with-intarray-ret' signal" do
|
1040
|
-
skip unless get_signal_introspection_data
|
1097
|
+
skip unless get_signal_introspection_data 'Regress', 'TestObj', 'sig-with-intarray-ret'
|
1041
1098
|
|
1042
1099
|
a = nil
|
1043
1100
|
|
1044
|
-
GObject.signal_connect(instance,
|
1101
|
+
GObject.signal_connect(instance, 'sig-with-intarray-ret') do |_, i, _|
|
1045
1102
|
a = i
|
1046
1103
|
[3, 2, 1]
|
1047
1104
|
end
|
1048
1105
|
|
1049
|
-
result = GObject.signal_emit instance,
|
1106
|
+
result = GObject.signal_emit instance, 'sig-with-intarray-ret', 3
|
1050
1107
|
|
1051
1108
|
a.must_equal 3
|
1052
1109
|
|
@@ -1057,12 +1114,12 @@ describe Regress do
|
|
1057
1114
|
it "handles the 'sig-with-obj' signal" do
|
1058
1115
|
a = nil
|
1059
1116
|
|
1060
|
-
GObject.signal_connect(instance,
|
1117
|
+
GObject.signal_connect(instance, 'sig-with-obj') do |_, obj, _|
|
1061
1118
|
a = obj
|
1062
1119
|
end
|
1063
1120
|
|
1064
1121
|
object = Regress::TestObj.constructor
|
1065
|
-
GObject.signal_emit instance,
|
1122
|
+
GObject.signal_emit instance, 'sig-with-obj', object
|
1066
1123
|
|
1067
1124
|
a.must_equal object
|
1068
1125
|
end
|
@@ -1070,25 +1127,25 @@ describe Regress do
|
|
1070
1127
|
it "handles the 'sig-with-strv' signal" do
|
1071
1128
|
a = nil
|
1072
1129
|
|
1073
|
-
GObject.signal_connect(instance,
|
1130
|
+
GObject.signal_connect(instance, 'sig-with-strv') do |_, strs, _|
|
1074
1131
|
a = strs
|
1075
1132
|
end
|
1076
1133
|
|
1077
|
-
GObject.signal_emit instance,
|
1134
|
+
GObject.signal_emit instance, 'sig-with-strv', GLib::Strv.from(%w(foo bar))
|
1078
1135
|
|
1079
|
-
a.to_a.must_equal
|
1136
|
+
a.to_a.must_equal %w(foo bar)
|
1080
1137
|
end
|
1081
1138
|
|
1082
1139
|
it "handles the 'sig-with-uint64-prop' signal" do
|
1083
|
-
skip unless get_signal_introspection_data
|
1140
|
+
skip unless get_signal_introspection_data 'Regress', 'TestObj', 'sig-with-uint64-prop'
|
1084
1141
|
|
1085
1142
|
a = nil
|
1086
1143
|
|
1087
|
-
GObject.signal_connect(instance,
|
1144
|
+
GObject.signal_connect(instance, 'sig-with-uint64-prop') do |_, uint64, _|
|
1088
1145
|
a = uint64
|
1089
1146
|
end
|
1090
1147
|
|
1091
|
-
result = GObject.signal_emit instance,
|
1148
|
+
result = GObject.signal_emit instance, 'sig-with-uint64-prop', 0xffff_ffff_ffff_ffff
|
1092
1149
|
|
1093
1150
|
a.must_equal 0xffff_ffff_ffff_ffff
|
1094
1151
|
result.get_value.must_equal 0xffff_ffff_ffff_ffff
|
@@ -1097,140 +1154,140 @@ describe Regress do
|
|
1097
1154
|
it "handles the 'test' signal" do
|
1098
1155
|
a = b = nil
|
1099
1156
|
o = Regress::TestSubObj.new
|
1100
|
-
GObject.signal_connect(o,
|
1101
|
-
GObject.signal_emit o,
|
1157
|
+
GObject.signal_connect(o, 'test', 2) { |i, d| a = d; b = i }
|
1158
|
+
GObject.signal_emit o, 'test'
|
1102
1159
|
assert_equal [2, o], [a, b]
|
1103
1160
|
end
|
1104
1161
|
|
1105
1162
|
it "handles the 'test-with-static-scope-arg' signal" do
|
1106
1163
|
a = nil
|
1107
1164
|
|
1108
|
-
GObject.signal_connect(instance,
|
1165
|
+
GObject.signal_connect(instance, 'test-with-static-scope-arg') do |_, obj, _|
|
1109
1166
|
a = obj
|
1110
1167
|
end
|
1111
1168
|
|
1112
1169
|
arg = Regress::TestSimpleBoxedA.new
|
1113
|
-
arg.some_int =
|
1114
|
-
GObject.signal_emit instance,
|
1170
|
+
arg.some_int = 12_345
|
1171
|
+
GObject.signal_emit instance, 'test-with-static-scope-arg', arg
|
1115
1172
|
|
1116
|
-
a.some_int.must_equal
|
1173
|
+
a.some_int.must_equal 12_345
|
1117
1174
|
end
|
1118
1175
|
end
|
1119
1176
|
|
1120
|
-
describe
|
1177
|
+
describe 'Regress::TestOtherError' do
|
1121
1178
|
before do
|
1122
1179
|
skip unless get_introspection_data 'Regress', 'TestOtherError'
|
1123
1180
|
end
|
1124
1181
|
|
1125
|
-
it
|
1182
|
+
it 'has the member :code1' do
|
1126
1183
|
Regress::TestOtherError[:code1].must_equal 1
|
1127
1184
|
end
|
1128
1185
|
|
1129
|
-
it
|
1186
|
+
it 'has the member :code2' do
|
1130
1187
|
Regress::TestOtherError[:code2].must_equal 2
|
1131
1188
|
end
|
1132
1189
|
|
1133
|
-
it
|
1190
|
+
it 'has the member :code3' do
|
1134
1191
|
Regress::TestOtherError[:code3].must_equal 3
|
1135
1192
|
end
|
1136
1193
|
|
1137
|
-
it
|
1194
|
+
it 'has a working function #quark' do
|
1138
1195
|
quark = Regress::TestOtherError.quark
|
1139
|
-
GLib.quark_to_string(quark).must_equal
|
1196
|
+
GLib.quark_to_string(quark).must_equal 'regress-test-other-error'
|
1140
1197
|
end
|
1141
1198
|
end
|
1142
1199
|
|
1143
|
-
describe
|
1144
|
-
it
|
1200
|
+
describe 'Regress::TestPrivateEnum' do
|
1201
|
+
it 'has the member :public_enum_before' do
|
1145
1202
|
Regress::TestPrivateEnum[:public_enum_before].must_equal 1
|
1146
1203
|
end
|
1147
|
-
it
|
1204
|
+
it 'does not have the member :private' do
|
1148
1205
|
Regress::TestPrivateEnum[:private].must_equal nil
|
1149
1206
|
end
|
1150
|
-
it
|
1207
|
+
it 'has the member :public_enum_after' do
|
1151
1208
|
Regress::TestPrivateEnum[:public_enum_after].must_equal 4
|
1152
1209
|
end
|
1153
1210
|
end
|
1154
1211
|
|
1155
|
-
describe
|
1212
|
+
describe 'Regress::TestPrivateStruct' do
|
1156
1213
|
let(:instance) { Regress::TestPrivateStruct.new }
|
1157
1214
|
|
1158
|
-
it
|
1215
|
+
it 'has a writable field this_is_public_before' do
|
1159
1216
|
instance.this_is_public_before.must_equal 0
|
1160
1217
|
instance.this_is_public_before = 42
|
1161
1218
|
instance.this_is_public_before.must_equal 42
|
1162
1219
|
end
|
1163
1220
|
|
1164
|
-
it
|
1165
|
-
skip
|
1221
|
+
it 'has a private field this_is_private' do
|
1222
|
+
skip 'This field is identified as readable in the typelib'
|
1166
1223
|
proc { instance.this_is_private }.must_raise NoMethodError
|
1167
1224
|
proc { instance.this_is_private = 42 }.must_raise NoMethodError
|
1168
1225
|
end
|
1169
1226
|
|
1170
|
-
it
|
1227
|
+
it 'has a writable field this_is_public_after' do
|
1171
1228
|
instance.this_is_public_after.must_equal 0
|
1172
1229
|
instance.this_is_public_after = 42
|
1173
1230
|
instance.this_is_public_after.must_equal 42
|
1174
1231
|
end
|
1175
1232
|
end
|
1176
1233
|
|
1177
|
-
describe
|
1234
|
+
describe 'Regress::TestReferenceEnum' do
|
1178
1235
|
before do
|
1179
1236
|
skip unless get_introspection_data 'Regress', 'TestReferenceEnum'
|
1180
1237
|
end
|
1181
|
-
it
|
1238
|
+
it 'has the member :0' do
|
1182
1239
|
Regress::TestReferenceEnum[:"0"].must_equal 4
|
1183
1240
|
end
|
1184
|
-
it
|
1241
|
+
it 'has the member :1' do
|
1185
1242
|
Regress::TestReferenceEnum[:"1"].must_equal 2
|
1186
1243
|
end
|
1187
|
-
it
|
1244
|
+
it 'has the member :2' do
|
1188
1245
|
Regress::TestReferenceEnum[:"2"].must_equal 54
|
1189
1246
|
end
|
1190
|
-
it
|
1247
|
+
it 'has the member :3' do
|
1191
1248
|
Regress::TestReferenceEnum[:"3"].must_equal 4
|
1192
1249
|
end
|
1193
|
-
it
|
1250
|
+
it 'has the member :4' do
|
1194
1251
|
Regress::TestReferenceEnum[:"4"].must_equal 216
|
1195
1252
|
end
|
1196
|
-
it
|
1253
|
+
it 'has the member :5' do
|
1197
1254
|
Regress::TestReferenceEnum[:"5"].must_equal(-217)
|
1198
1255
|
end
|
1199
1256
|
end
|
1200
1257
|
|
1201
|
-
describe
|
1202
|
-
it
|
1258
|
+
describe 'Regress::TestSimpleBoxedA' do
|
1259
|
+
it 'creates an instance using #new' do
|
1203
1260
|
obj = Regress::TestSimpleBoxedA.new
|
1204
1261
|
assert_instance_of Regress::TestSimpleBoxedA, obj
|
1205
1262
|
end
|
1206
1263
|
|
1207
1264
|
let(:instance) { Regress::TestSimpleBoxedA.new }
|
1208
1265
|
|
1209
|
-
it
|
1266
|
+
it 'has a writable field some_int' do
|
1210
1267
|
instance.some_int.must_equal 0
|
1211
1268
|
instance.some_int = 42
|
1212
1269
|
instance.some_int.must_equal 42
|
1213
1270
|
end
|
1214
1271
|
|
1215
|
-
it
|
1272
|
+
it 'has a writable field some_int8' do
|
1216
1273
|
instance.some_int8.must_equal 0
|
1217
1274
|
instance.some_int8 = 42
|
1218
1275
|
instance.some_int8.must_equal 42
|
1219
1276
|
end
|
1220
1277
|
|
1221
|
-
it
|
1278
|
+
it 'has a writable field some_double' do
|
1222
1279
|
instance.some_double.must_equal 0.0
|
1223
1280
|
instance.some_double = 42.0
|
1224
1281
|
instance.some_double.must_equal 42.0
|
1225
1282
|
end
|
1226
1283
|
|
1227
|
-
it
|
1284
|
+
it 'has a writable field some_enum' do
|
1228
1285
|
instance.some_enum.must_equal :value1
|
1229
1286
|
instance.some_enum = :value4
|
1230
1287
|
instance.some_enum.must_equal :value4
|
1231
1288
|
end
|
1232
1289
|
|
1233
|
-
it
|
1290
|
+
it 'has a working method #copy' do
|
1234
1291
|
instance.some_int = 4236
|
1235
1292
|
|
1236
1293
|
obj2 = instance.copy
|
@@ -1241,7 +1298,7 @@ describe Regress do
|
|
1241
1298
|
obj2.some_int.wont_equal instance.some_int
|
1242
1299
|
end
|
1243
1300
|
|
1244
|
-
it
|
1301
|
+
it 'has a working method #equals' do
|
1245
1302
|
instance.some_int = 4236
|
1246
1303
|
|
1247
1304
|
ob2 = Regress::TestSimpleBoxedA.new
|
@@ -1253,27 +1310,27 @@ describe Regress do
|
|
1253
1310
|
ob2.equals(instance).wont_equal true
|
1254
1311
|
end
|
1255
1312
|
|
1256
|
-
it
|
1313
|
+
it 'has a working function #const_return' do
|
1257
1314
|
result = Regress::TestSimpleBoxedA.const_return
|
1258
1315
|
[result.some_int, result.some_int8, result.some_double].must_equal [5, 6, 7.0]
|
1259
1316
|
end
|
1260
1317
|
end
|
1261
1318
|
|
1262
|
-
describe
|
1319
|
+
describe 'Regress::TestSimpleBoxedB' do
|
1263
1320
|
let(:instance) { Regress::TestSimpleBoxedB.new }
|
1264
|
-
it
|
1321
|
+
it 'has a writable field some_int8' do
|
1265
1322
|
instance.some_int8.must_equal 0
|
1266
1323
|
instance.some_int8 = 42
|
1267
1324
|
instance.some_int8.must_equal 42
|
1268
1325
|
end
|
1269
1326
|
|
1270
|
-
it
|
1327
|
+
it 'has a writable field nested_a' do
|
1271
1328
|
instance.nested_a.some_int.must_equal 0
|
1272
1329
|
instance.nested_a = Regress::TestSimpleBoxedA.const_return
|
1273
1330
|
instance.nested_a.some_int.must_equal 5
|
1274
1331
|
end
|
1275
1332
|
|
1276
|
-
it
|
1333
|
+
it 'has a working method #copy' do
|
1277
1334
|
instance.some_int8 = -42
|
1278
1335
|
instance.nested_a.some_int = 4242
|
1279
1336
|
|
@@ -1285,33 +1342,33 @@ describe Regress do
|
|
1285
1342
|
end
|
1286
1343
|
end
|
1287
1344
|
|
1288
|
-
describe
|
1345
|
+
describe 'Regress::TestStructA' do
|
1289
1346
|
let(:instance) { Regress::TestStructA.new }
|
1290
|
-
it
|
1347
|
+
it 'has a writable field some_int' do
|
1291
1348
|
instance.some_int.must_equal 0
|
1292
1349
|
instance.some_int = 2556
|
1293
1350
|
instance.some_int.must_equal 2556
|
1294
1351
|
end
|
1295
1352
|
|
1296
|
-
it
|
1353
|
+
it 'has a writable field some_int8' do
|
1297
1354
|
instance.some_int8.must_equal 0
|
1298
1355
|
instance.some_int8 = -10
|
1299
1356
|
instance.some_int8.must_equal(-10)
|
1300
1357
|
end
|
1301
1358
|
|
1302
|
-
it
|
1359
|
+
it 'has a writable field some_double' do
|
1303
1360
|
instance.some_double.must_equal 0.0
|
1304
1361
|
instance.some_double = 1.03455e20
|
1305
1362
|
instance.some_double.must_equal 1.03455e20
|
1306
1363
|
end
|
1307
1364
|
|
1308
|
-
it
|
1365
|
+
it 'has a writable field some_enum' do
|
1309
1366
|
instance.some_enum.must_equal :value1
|
1310
1367
|
instance.some_enum = :value2
|
1311
1368
|
instance.some_enum.must_equal :value2
|
1312
1369
|
end
|
1313
1370
|
|
1314
|
-
it
|
1371
|
+
it 'has a working method #clone' do
|
1315
1372
|
a = Regress::TestStructA.new
|
1316
1373
|
a.some_int = 2556
|
1317
1374
|
a.some_int8 = -10
|
@@ -1326,22 +1383,22 @@ describe Regress do
|
|
1326
1383
|
assert_equal :value2, b.some_enum
|
1327
1384
|
end
|
1328
1385
|
|
1329
|
-
it
|
1386
|
+
it 'has a working function #parse' do
|
1330
1387
|
skip unless get_method_introspection_data 'Regress', 'TestStructA', 'parse'
|
1331
|
-
a = Regress::TestStructA.parse(
|
1388
|
+
a = Regress::TestStructA.parse('this string is actually ignored')
|
1332
1389
|
a.some_int.must_equal 23
|
1333
1390
|
end
|
1334
1391
|
end
|
1335
1392
|
|
1336
|
-
describe
|
1393
|
+
describe 'Regress::TestStructB' do
|
1337
1394
|
let(:instance) { Regress::TestStructB.new }
|
1338
|
-
it
|
1395
|
+
it 'has a writable field some_int8' do
|
1339
1396
|
instance.some_int8.must_equal 0
|
1340
1397
|
instance.some_int8 = 42
|
1341
1398
|
instance.some_int8.must_equal 42
|
1342
1399
|
end
|
1343
1400
|
|
1344
|
-
it
|
1401
|
+
it 'has a writable field nested_a' do
|
1345
1402
|
instance.nested_a.some_int.must_equal 0
|
1346
1403
|
|
1347
1404
|
nested = Regress::TestStructA.new
|
@@ -1351,7 +1408,7 @@ describe Regress do
|
|
1351
1408
|
instance.nested_a.some_int.must_equal(-4321)
|
1352
1409
|
end
|
1353
1410
|
|
1354
|
-
it
|
1411
|
+
it 'has a working method #clone' do
|
1355
1412
|
a = Regress::TestStructB.new
|
1356
1413
|
a.some_int8 = 42
|
1357
1414
|
a.nested_a.some_int = 2556
|
@@ -1369,15 +1426,15 @@ describe Regress do
|
|
1369
1426
|
end
|
1370
1427
|
end
|
1371
1428
|
|
1372
|
-
describe
|
1429
|
+
describe 'Regress::TestStructC' do
|
1373
1430
|
let(:instance) { Regress::TestStructC.new }
|
1374
|
-
it
|
1431
|
+
it 'has a writable field another_int' do
|
1375
1432
|
instance.another_int.must_equal 0
|
1376
1433
|
instance.another_int = 42
|
1377
1434
|
instance.another_int.must_equal 42
|
1378
1435
|
end
|
1379
1436
|
|
1380
|
-
it
|
1437
|
+
it 'has a writable field obj' do
|
1381
1438
|
o = Regress::TestSubObj.new
|
1382
1439
|
instance.obj.must_equal nil
|
1383
1440
|
instance.obj = o
|
@@ -1385,37 +1442,37 @@ describe Regress do
|
|
1385
1442
|
end
|
1386
1443
|
end
|
1387
1444
|
|
1388
|
-
describe
|
1445
|
+
describe 'Regress::TestStructD' do
|
1389
1446
|
let(:instance) { Regress::TestStructD.new }
|
1390
|
-
it
|
1447
|
+
it 'has a writable field array1' do
|
1391
1448
|
instance.array1.must_be :==, []
|
1392
1449
|
struct = Regress::TestStructA.new
|
1393
1450
|
instance.array1 = [struct]
|
1394
1451
|
instance.array1.must_be :==, [struct]
|
1395
1452
|
end
|
1396
1453
|
|
1397
|
-
it
|
1454
|
+
it 'has a writable field array2' do
|
1398
1455
|
instance.array2.must_be :==, []
|
1399
1456
|
o = Regress::TestSubObj.new
|
1400
1457
|
instance.array2 = [o]
|
1401
1458
|
instance.array2.must_be :==, [o]
|
1402
1459
|
end
|
1403
1460
|
|
1404
|
-
it
|
1461
|
+
it 'has a writable field field' do
|
1405
1462
|
instance.field.must_equal nil
|
1406
1463
|
o = Regress::TestSubObj.new
|
1407
1464
|
instance.field = o
|
1408
1465
|
instance.field.must_equal o
|
1409
1466
|
end
|
1410
1467
|
|
1411
|
-
it
|
1468
|
+
it 'has a writable field list' do
|
1412
1469
|
instance.list.must_be_nil
|
1413
1470
|
o = Regress::TestSubObj.new
|
1414
1471
|
instance.list = [o]
|
1415
1472
|
instance.list.must_be :==, [o]
|
1416
1473
|
end
|
1417
1474
|
|
1418
|
-
it
|
1475
|
+
it 'has a writable field garray' do
|
1419
1476
|
instance.garray.must_be_nil
|
1420
1477
|
o = Regress::TestSubObj.new
|
1421
1478
|
instance.garray = [o]
|
@@ -1423,15 +1480,15 @@ describe Regress do
|
|
1423
1480
|
end
|
1424
1481
|
end
|
1425
1482
|
|
1426
|
-
describe
|
1483
|
+
describe 'Regress::TestStructE' do
|
1427
1484
|
let(:instance) { Regress::TestStructE.new }
|
1428
|
-
it
|
1485
|
+
it 'has a writable field some_type' do
|
1429
1486
|
instance.some_type.must_equal 0
|
1430
1487
|
instance.some_type = GObject::TYPE_STRING
|
1431
1488
|
instance.some_type.must_equal GObject::TYPE_STRING
|
1432
1489
|
end
|
1433
1490
|
|
1434
|
-
it
|
1491
|
+
it 'has a writable field some_union' do
|
1435
1492
|
instance.some_union.map(&:v_int).must_equal [0, 0]
|
1436
1493
|
|
1437
1494
|
union1 = Regress::TestStructE__some_union__union.new
|
@@ -1444,161 +1501,161 @@ describe Regress do
|
|
1444
1501
|
instance.some_union.map(&:v_int).must_equal [42, 84]
|
1445
1502
|
end
|
1446
1503
|
end
|
1447
|
-
describe
|
1504
|
+
describe 'Regress::TestStructE__some_union__union' do
|
1448
1505
|
let(:instance) { Regress::TestStructE__some_union__union.new }
|
1449
|
-
it
|
1506
|
+
it 'has a writable field v_int' do
|
1450
1507
|
instance.v_int.must_equal 0
|
1451
|
-
instance.v_int = -
|
1452
|
-
instance.v_int.must_equal(-
|
1508
|
+
instance.v_int = -54_321
|
1509
|
+
instance.v_int.must_equal(-54_321)
|
1453
1510
|
end
|
1454
1511
|
|
1455
|
-
it
|
1512
|
+
it 'has a writable field v_uint' do
|
1456
1513
|
instance.v_uint.must_equal 0
|
1457
|
-
instance.v_uint =
|
1458
|
-
instance.v_uint.must_equal
|
1514
|
+
instance.v_uint = 54_321
|
1515
|
+
instance.v_uint.must_equal 54_321
|
1459
1516
|
end
|
1460
1517
|
|
1461
|
-
it
|
1518
|
+
it 'has a writable field v_long' do
|
1462
1519
|
instance.v_long.must_equal 0
|
1463
|
-
instance.v_long = -
|
1464
|
-
instance.v_long.must_equal(-
|
1520
|
+
instance.v_long = -54_321
|
1521
|
+
instance.v_long.must_equal(-54_321)
|
1465
1522
|
end
|
1466
1523
|
|
1467
|
-
it
|
1524
|
+
it 'has a writable field v_ulong' do
|
1468
1525
|
instance.v_long.must_equal 0
|
1469
|
-
instance.v_long =
|
1470
|
-
instance.v_long.must_equal
|
1526
|
+
instance.v_long = 54_321
|
1527
|
+
instance.v_long.must_equal 54_321
|
1471
1528
|
end
|
1472
1529
|
|
1473
|
-
it
|
1530
|
+
it 'has a writable field v_int64' do
|
1474
1531
|
instance.v_int64.must_equal 0
|
1475
1532
|
instance.v_int64 = -54_321_000_000_000
|
1476
1533
|
instance.v_int64.must_equal(-54_321_000_000_000)
|
1477
1534
|
end
|
1478
|
-
it
|
1535
|
+
it 'has a writable field v_uint64' do
|
1479
1536
|
instance.v_uint64.must_equal 0
|
1480
1537
|
instance.v_uint64 = 54_321_000_000_000
|
1481
1538
|
instance.v_uint64.must_equal 54_321_000_000_000
|
1482
1539
|
end
|
1483
|
-
it
|
1540
|
+
it 'has a writable field v_float' do
|
1484
1541
|
instance.v_float.must_equal 0
|
1485
1542
|
instance.v_float = 3.1415
|
1486
1543
|
instance.v_float.must_be_close_to 3.1415
|
1487
1544
|
end
|
1488
|
-
it
|
1545
|
+
it 'has a writable field v_double' do
|
1489
1546
|
instance.v_double.must_equal 0
|
1490
1547
|
instance.v_double = 3.1415
|
1491
1548
|
instance.v_double.must_equal 3.1415
|
1492
1549
|
end
|
1493
|
-
it
|
1550
|
+
it 'has a writable field v_pointer' do
|
1494
1551
|
instance.v_pointer.must_be :null?
|
1495
|
-
instance.v_pointer = FFI::Pointer.new
|
1496
|
-
instance.v_pointer.address.must_equal
|
1552
|
+
instance.v_pointer = FFI::Pointer.new 54_321
|
1553
|
+
instance.v_pointer.address.must_equal 54_321
|
1497
1554
|
end
|
1498
1555
|
end
|
1499
|
-
describe
|
1556
|
+
describe 'Regress::TestStructF' do
|
1500
1557
|
before do
|
1501
1558
|
skip unless get_introspection_data 'Regress', 'TestStructF'
|
1502
1559
|
end
|
1503
1560
|
|
1504
1561
|
let(:instance) { Regress::TestStructF.new }
|
1505
1562
|
|
1506
|
-
it
|
1563
|
+
it 'has a writable field ref_count' do
|
1507
1564
|
instance.ref_count.must_equal 0
|
1508
1565
|
instance.ref_count = 1
|
1509
1566
|
instance.ref_count.must_equal 1
|
1510
1567
|
end
|
1511
1568
|
|
1512
|
-
it
|
1569
|
+
it 'has a writable field data1' do
|
1513
1570
|
instance.data1.must_be :null?
|
1514
1571
|
instance.data1 = GirFFI::InOutPointer.from(:gint32, 42)
|
1515
1572
|
instance.data1.read_int.must_equal 42
|
1516
1573
|
end
|
1517
1574
|
|
1518
1575
|
# TODO: Check what gobject-introspection should/will do with these fields.
|
1519
|
-
it
|
1520
|
-
skip
|
1576
|
+
it 'has a writable field data2' do
|
1577
|
+
skip 'Introspection data cannot deal with type of this field yet'
|
1521
1578
|
end
|
1522
1579
|
|
1523
|
-
it
|
1524
|
-
skip
|
1580
|
+
it 'has a writable field data3' do
|
1581
|
+
skip 'Introspection data cannot deal with type of this field yet'
|
1525
1582
|
end
|
1526
1583
|
|
1527
|
-
it
|
1528
|
-
skip
|
1584
|
+
it 'has a writable field data4' do
|
1585
|
+
skip 'Introspection data cannot deal with type of this field yet'
|
1529
1586
|
end
|
1530
1587
|
|
1531
|
-
it
|
1532
|
-
skip
|
1588
|
+
it 'has a writable field data5' do
|
1589
|
+
skip 'Introspection data cannot deal with type of this field yet'
|
1533
1590
|
end
|
1534
1591
|
|
1535
|
-
it
|
1536
|
-
skip
|
1592
|
+
it 'has a writable field data6' do
|
1593
|
+
skip 'Introspection data cannot deal with type of this field yet'
|
1537
1594
|
end
|
1538
1595
|
end
|
1539
1596
|
|
1540
|
-
describe
|
1597
|
+
describe 'Regress::TestStructFixedArray' do
|
1541
1598
|
let(:instance) { Regress::TestStructFixedArray.new }
|
1542
|
-
it
|
1599
|
+
it 'has a writable field just_int' do
|
1543
1600
|
instance.just_int.must_equal 0
|
1544
1601
|
instance.just_int = 42
|
1545
1602
|
instance.just_int.must_equal 42
|
1546
1603
|
end
|
1547
1604
|
|
1548
|
-
it
|
1605
|
+
it 'has a writable field array' do
|
1549
1606
|
instance.array.must_be :==, [0] * 10
|
1550
1607
|
instance.array = (1..10).to_a
|
1551
1608
|
instance.array.must_be :==, (1..10).to_a
|
1552
1609
|
end
|
1553
1610
|
|
1554
|
-
it
|
1611
|
+
it 'has a working method #frob' do
|
1555
1612
|
instance.array = (0..9).to_a
|
1556
1613
|
instance.frob
|
1557
|
-
instance.array.must_be :==, (42..42+9).to_a
|
1614
|
+
instance.array.must_be :==, (42..42 + 9).to_a
|
1558
1615
|
instance.just_int.must_equal 7
|
1559
1616
|
end
|
1560
1617
|
end
|
1561
1618
|
|
1562
|
-
describe
|
1563
|
-
it
|
1619
|
+
describe 'Regress::TestSubObj' do
|
1620
|
+
it 'creates an instance using #new' do
|
1564
1621
|
tso = Regress::TestSubObj.new
|
1565
1622
|
assert_instance_of Regress::TestSubObj, tso
|
1566
1623
|
end
|
1567
1624
|
|
1568
1625
|
let(:instance) { Regress::TestSubObj.new }
|
1569
1626
|
|
1570
|
-
it
|
1627
|
+
it 'has a working method #instance_method' do
|
1571
1628
|
res = instance.instance_method
|
1572
1629
|
assert_equal 0, res
|
1573
1630
|
end
|
1574
1631
|
|
1575
|
-
it
|
1632
|
+
it 'has a working method #unset_bare' do
|
1576
1633
|
instance.unset_bare
|
1577
1634
|
pass
|
1578
1635
|
end
|
1579
1636
|
|
1580
|
-
it
|
1637
|
+
it 'does not have a field parent_instance' do
|
1581
1638
|
assert_raises(NoMethodError) { instance.parent_instance }
|
1582
1639
|
end
|
1583
1640
|
end
|
1584
1641
|
|
1585
|
-
describe
|
1586
|
-
it
|
1642
|
+
describe 'Regress::TestWi8021x' do
|
1643
|
+
it 'creates an instance using #new' do
|
1587
1644
|
o = Regress::TestWi8021x.new
|
1588
1645
|
assert_instance_of Regress::TestWi8021x, o
|
1589
1646
|
end
|
1590
1647
|
|
1591
|
-
it
|
1648
|
+
it 'has a working function #static_method' do
|
1592
1649
|
assert_equal(-84, Regress::TestWi8021x.static_method(-42))
|
1593
1650
|
end
|
1594
1651
|
|
1595
1652
|
let(:instance) { Regress::TestWi8021x.new }
|
1596
1653
|
|
1597
|
-
it
|
1654
|
+
it 'has a working method #get_testbool' do
|
1598
1655
|
instance.get_testbool.must_equal true
|
1599
1656
|
end
|
1600
1657
|
|
1601
|
-
it
|
1658
|
+
it 'has a working method #set_testbool' do
|
1602
1659
|
instance.set_testbool true
|
1603
1660
|
instance.get_testbool.must_equal true
|
1604
1661
|
instance.set_testbool false
|
@@ -1606,89 +1663,89 @@ describe Regress do
|
|
1606
1663
|
end
|
1607
1664
|
|
1608
1665
|
describe "its 'testbool' property" do
|
1609
|
-
it
|
1610
|
-
instance.get_property(
|
1666
|
+
it 'can be retrieved with #get_property' do
|
1667
|
+
instance.get_property('testbool').get_value.must_equal true
|
1611
1668
|
end
|
1612
1669
|
|
1613
|
-
it
|
1670
|
+
it 'can be retrieved with #testbool' do
|
1614
1671
|
instance.testbool.must_equal true
|
1615
1672
|
end
|
1616
1673
|
|
1617
|
-
it
|
1618
|
-
instance.set_property
|
1674
|
+
it 'can be set with #set_property' do
|
1675
|
+
instance.set_property 'testbool', true
|
1619
1676
|
instance.get_testbool.must_equal true
|
1620
|
-
instance.get_property(
|
1677
|
+
instance.get_property('testbool').get_value.must_equal true
|
1621
1678
|
|
1622
|
-
instance.set_property
|
1679
|
+
instance.set_property 'testbool', false
|
1623
1680
|
instance.get_testbool.must_equal false
|
1624
|
-
instance.get_property(
|
1681
|
+
instance.get_property('testbool').get_value.must_equal false
|
1625
1682
|
end
|
1626
1683
|
|
1627
|
-
it
|
1684
|
+
it 'can be set with #testbool=' do
|
1628
1685
|
instance.testbool = true
|
1629
1686
|
instance.testbool.must_equal true
|
1630
1687
|
instance.get_testbool.must_equal true
|
1631
|
-
instance.get_property(
|
1688
|
+
instance.get_property('testbool').get_value.must_equal true
|
1632
1689
|
|
1633
1690
|
instance.testbool = false
|
1634
1691
|
instance.testbool.must_equal false
|
1635
1692
|
instance.get_testbool.must_equal false
|
1636
|
-
instance.get_property(
|
1693
|
+
instance.get_property('testbool').get_value.must_equal false
|
1637
1694
|
end
|
1638
1695
|
end
|
1639
1696
|
end
|
1640
1697
|
|
1641
|
-
it
|
1642
|
-
assert_equal
|
1698
|
+
it 'has the constant UTF8_CONSTANT' do
|
1699
|
+
assert_equal 'const ♥ utf8', Regress::UTF8_CONSTANT
|
1643
1700
|
end
|
1644
1701
|
|
1645
|
-
it
|
1702
|
+
it 'has a working function #aliased_caller_alloc' do
|
1646
1703
|
result = Regress.aliased_caller_alloc
|
1647
1704
|
result.must_be_instance_of Regress::TestBoxed
|
1648
1705
|
end
|
1649
1706
|
|
1650
|
-
it
|
1707
|
+
it 'has a working function #atest_error_quark' do
|
1651
1708
|
skip unless get_introspection_data 'Regress', 'atest_error_quark'
|
1652
1709
|
result = Regress.atest_error_quark
|
1653
|
-
GLib.quark_to_string(result).must_equal
|
1710
|
+
GLib.quark_to_string(result).must_equal 'regress-atest-error'
|
1654
1711
|
end
|
1655
1712
|
|
1656
|
-
it
|
1713
|
+
it 'has a working function #func_obj_null_in' do
|
1657
1714
|
Regress.func_obj_null_in nil
|
1658
1715
|
Regress.func_obj_null_in Regress::TestObj.constructor
|
1659
1716
|
pass
|
1660
1717
|
end
|
1661
1718
|
|
1662
|
-
it
|
1719
|
+
it 'has a working function #global_get_flags_out' do
|
1663
1720
|
result = Regress.global_get_flags_out
|
1664
1721
|
result.must_equal Regress::TestFlags[:flag1] | Regress::TestFlags[:flag3]
|
1665
1722
|
end
|
1666
1723
|
|
1667
|
-
it
|
1724
|
+
it 'has a working function #has_parameter_named_attrs' do
|
1668
1725
|
skip unless get_introspection_data 'Regress', 'has_parameter_named_attrs'
|
1669
1726
|
Regress.has_parameter_named_attrs 42, [23] * 32
|
1670
1727
|
pass
|
1671
1728
|
end
|
1672
1729
|
|
1673
|
-
it
|
1730
|
+
it 'has a working function #introspectable_via_alias' do
|
1674
1731
|
Regress.introspectable_via_alias []
|
1675
1732
|
pass
|
1676
1733
|
end
|
1677
1734
|
|
1678
|
-
it
|
1735
|
+
it 'has a working function #set_abort_on_error' do
|
1679
1736
|
Regress.set_abort_on_error false
|
1680
1737
|
Regress.set_abort_on_error true
|
1681
1738
|
pass
|
1682
1739
|
end
|
1683
1740
|
|
1684
|
-
it
|
1741
|
+
it 'has a working function #test_abc_error_quark' do
|
1685
1742
|
skip unless get_introspection_data 'Regress', 'test_abc_error_quark'
|
1686
1743
|
|
1687
1744
|
quark = Regress.test_abc_error_quark
|
1688
|
-
GLib.quark_to_string(quark).must_equal
|
1745
|
+
GLib.quark_to_string(quark).must_equal 'regress-test-abc-error'
|
1689
1746
|
end
|
1690
1747
|
|
1691
|
-
it
|
1748
|
+
it 'has a working function #test_array_callback' do
|
1692
1749
|
a = nil
|
1693
1750
|
b = nil
|
1694
1751
|
c = 95
|
@@ -1703,10 +1760,10 @@ describe Regress do
|
|
1703
1760
|
|
1704
1761
|
result.must_equal 2 * c
|
1705
1762
|
a.to_a.must_equal [-1, 0, 1, 2]
|
1706
|
-
b.to_a.must_equal
|
1763
|
+
b.to_a.must_equal %w(one two three)
|
1707
1764
|
end
|
1708
1765
|
|
1709
|
-
it
|
1766
|
+
it 'has a working function #test_array_fixed_out_objects' do
|
1710
1767
|
result = Regress.test_array_fixed_out_objects
|
1711
1768
|
gtype = Regress::TestObj.get_gtype
|
1712
1769
|
|
@@ -1718,82 +1775,92 @@ describe Regress do
|
|
1718
1775
|
}
|
1719
1776
|
end
|
1720
1777
|
|
1721
|
-
it
|
1778
|
+
it 'has a working function #test_array_fixed_size_int_in' do
|
1722
1779
|
assert_equal 5 + 4 + 3 + 2 + 1, Regress.test_array_fixed_size_int_in([5, 4, 3, 2, 1])
|
1723
1780
|
end
|
1724
1781
|
|
1725
|
-
describe
|
1726
|
-
it
|
1782
|
+
describe '#test_array_fixed_size_int_in' do
|
1783
|
+
it 'raises an error when called with the wrong number of arguments' do
|
1727
1784
|
assert_raises ArgumentError do
|
1728
1785
|
Regress.test_array_fixed_size_int_in [2]
|
1729
1786
|
end
|
1730
1787
|
end
|
1731
1788
|
end
|
1732
1789
|
|
1733
|
-
it
|
1790
|
+
it 'has a working function #test_array_fixed_size_int_out' do
|
1734
1791
|
Regress.test_array_fixed_size_int_out.must_be :==, [0, 1, 2, 3, 4]
|
1735
1792
|
end
|
1736
1793
|
|
1737
|
-
it
|
1794
|
+
it 'has a working function #test_array_fixed_size_int_return' do
|
1738
1795
|
Regress.test_array_fixed_size_int_return.must_be :==, [0, 1, 2, 3, 4]
|
1739
1796
|
end
|
1740
1797
|
|
1741
|
-
it
|
1798
|
+
it 'has a working function #test_array_gint16_in' do
|
1742
1799
|
assert_equal 5 + 4 + 3, Regress.test_array_gint16_in([5, 4, 3])
|
1743
1800
|
end
|
1744
1801
|
|
1745
|
-
it
|
1802
|
+
it 'has a working function #test_array_gint32_in' do
|
1746
1803
|
assert_equal 5 + 4 + 3, Regress.test_array_gint32_in([5, 4, 3])
|
1747
1804
|
end
|
1748
1805
|
|
1749
|
-
it
|
1806
|
+
it 'has a working function #test_array_gint64_in' do
|
1750
1807
|
assert_equal 5 + 4 + 3, Regress.test_array_gint64_in([5, 4, 3])
|
1751
1808
|
end
|
1752
1809
|
|
1753
|
-
it
|
1810
|
+
it 'has a working function #test_array_gint8_in' do
|
1754
1811
|
assert_equal 5 + 4 + 3, Regress.test_array_gint8_in([5, 4, 3])
|
1755
1812
|
end
|
1756
1813
|
|
1757
|
-
it
|
1758
|
-
t1 = GObject.type_from_name
|
1759
|
-
t2 = GObject.type_from_name
|
1760
|
-
assert_equal
|
1814
|
+
it 'has a working function #test_array_gtype_in' do
|
1815
|
+
t1 = GObject.type_from_name 'gboolean'
|
1816
|
+
t2 = GObject.type_from_name 'gint64'
|
1817
|
+
assert_equal '[gboolean,gint64,]', Regress.test_array_gtype_in([t1, t2])
|
1818
|
+
end
|
1819
|
+
|
1820
|
+
it 'has a working function #test_array_inout_callback' do
|
1821
|
+
skip unless get_introspection_data 'Regress', 'test_array_inout_callback'
|
1822
|
+
Regress.test_array_inout_callback proc { |ints|
|
1823
|
+
arr = ints.to_a
|
1824
|
+
arr.shift
|
1825
|
+
arr
|
1826
|
+
}
|
1827
|
+
pass
|
1761
1828
|
end
|
1762
1829
|
|
1763
|
-
it
|
1830
|
+
it 'has a working function #test_array_int_full_out' do
|
1764
1831
|
Regress.test_array_int_full_out.must_be :==, [0, 1, 2, 3, 4]
|
1765
1832
|
end
|
1766
1833
|
|
1767
|
-
it
|
1834
|
+
it 'has a working function #test_array_int_in' do
|
1768
1835
|
assert_equal 5 + 4 + 3, Regress.test_array_int_in([5, 4, 3])
|
1769
1836
|
end
|
1770
1837
|
|
1771
|
-
it
|
1838
|
+
it 'has a working function #test_array_int_inout' do
|
1772
1839
|
Regress.test_array_int_inout([5, 2, 3]).must_be :==, [3, 4]
|
1773
1840
|
end
|
1774
1841
|
|
1775
|
-
it
|
1842
|
+
it 'has a working function #test_array_int_none_out' do
|
1776
1843
|
Regress.test_array_int_none_out.must_be :==, [1, 2, 3, 4, 5]
|
1777
1844
|
end
|
1778
1845
|
|
1779
|
-
it
|
1846
|
+
it 'has a working function #test_array_int_null_in' do
|
1780
1847
|
Regress.test_array_int_null_in nil
|
1781
1848
|
pass
|
1782
1849
|
end
|
1783
1850
|
|
1784
|
-
it
|
1851
|
+
it 'has a working function #test_array_int_null_out' do
|
1785
1852
|
assert_equal nil, Regress.test_array_int_null_out
|
1786
1853
|
end
|
1787
1854
|
|
1788
|
-
it
|
1855
|
+
it 'has a working function #test_array_int_out' do
|
1789
1856
|
Regress.test_array_int_out.must_be :==, [0, 1, 2, 3, 4]
|
1790
1857
|
end
|
1791
1858
|
|
1792
|
-
it
|
1859
|
+
it 'has a working function #test_async_ready_callback' do
|
1793
1860
|
main_loop = GLib::MainLoop.new nil, false
|
1794
1861
|
|
1795
1862
|
a = 1
|
1796
|
-
Regress.test_async_ready_callback
|
1863
|
+
Regress.test_async_ready_callback proc {
|
1797
1864
|
main_loop.quit
|
1798
1865
|
a = 2
|
1799
1866
|
}
|
@@ -1803,57 +1870,70 @@ describe Regress do
|
|
1803
1870
|
assert_equal 2, a
|
1804
1871
|
end
|
1805
1872
|
|
1806
|
-
it
|
1873
|
+
it 'has a working function #test_boolean' do
|
1807
1874
|
assert_equal false, Regress.test_boolean(false)
|
1808
1875
|
assert_equal true, Regress.test_boolean(true)
|
1809
1876
|
end
|
1810
1877
|
|
1811
|
-
it
|
1878
|
+
it 'has a working function #test_boolean_false' do
|
1812
1879
|
assert_equal false, Regress.test_boolean_false(false)
|
1813
1880
|
end
|
1814
1881
|
|
1815
|
-
it
|
1882
|
+
it 'has a working function #test_boolean_true' do
|
1816
1883
|
assert_equal true, Regress.test_boolean_true(true)
|
1817
1884
|
end
|
1818
1885
|
|
1819
|
-
it
|
1886
|
+
it 'has a working function #test_boxeds_not_a_method' do
|
1887
|
+
skip unless get_introspection_data 'Regress', 'test_boxeds_not_a_method'
|
1888
|
+
boxed = Regress::TestBoxed.new_alternative_constructor1 123
|
1889
|
+
Regress.test_boxeds_not_a_method boxed
|
1890
|
+
pass
|
1891
|
+
end
|
1892
|
+
|
1893
|
+
it 'has a working function #test_boxeds_not_a_static' do
|
1894
|
+
skip unless get_introspection_data 'Regress', 'test_boxeds_not_a_static'
|
1895
|
+
Regress.test_boxeds_not_a_static
|
1896
|
+
pass
|
1897
|
+
end
|
1898
|
+
|
1899
|
+
it 'has a working function #test_cairo_context_full_return' do
|
1820
1900
|
ct = Regress.test_cairo_context_full_return
|
1821
1901
|
assert_instance_of Cairo::Context, ct
|
1822
1902
|
end
|
1823
1903
|
|
1824
|
-
it
|
1904
|
+
it 'has a working function #test_cairo_context_none_in' do
|
1825
1905
|
ct = Regress.test_cairo_context_full_return
|
1826
1906
|
Regress.test_cairo_context_none_in ct
|
1827
1907
|
end
|
1828
1908
|
|
1829
|
-
it
|
1909
|
+
it 'has a working function #test_cairo_surface_full_out' do
|
1830
1910
|
cs = Regress.test_cairo_surface_full_out
|
1831
1911
|
assert_instance_of Cairo::Surface, cs
|
1832
1912
|
end
|
1833
1913
|
|
1834
|
-
it
|
1914
|
+
it 'has a working function #test_cairo_surface_full_return' do
|
1835
1915
|
cs = Regress.test_cairo_surface_full_return
|
1836
1916
|
assert_instance_of Cairo::Surface, cs
|
1837
1917
|
end
|
1838
1918
|
|
1839
|
-
it
|
1919
|
+
it 'has a working function #test_cairo_surface_none_in' do
|
1840
1920
|
cs = Regress.test_cairo_surface_full_return
|
1841
1921
|
Regress.test_cairo_surface_none_in cs
|
1842
1922
|
end
|
1843
1923
|
|
1844
|
-
it
|
1924
|
+
it 'has a working function #test_cairo_surface_none_return' do
|
1845
1925
|
cs = Regress.test_cairo_surface_none_return
|
1846
1926
|
assert_instance_of Cairo::Surface, cs
|
1847
1927
|
end
|
1848
1928
|
|
1849
|
-
it
|
1850
|
-
result = Regress.test_callback
|
1929
|
+
it 'has a working function #test_callback' do
|
1930
|
+
result = Regress.test_callback proc { 5 }
|
1851
1931
|
assert_equal 5, result
|
1852
1932
|
end
|
1853
1933
|
|
1854
|
-
it
|
1934
|
+
it 'has a working function #test_callback_async' do
|
1855
1935
|
a = 1
|
1856
|
-
Regress.test_callback_async
|
1936
|
+
Regress.test_callback_async proc {|b|
|
1857
1937
|
a = 2
|
1858
1938
|
b
|
1859
1939
|
}, 44
|
@@ -1862,12 +1942,12 @@ describe Regress do
|
|
1862
1942
|
assert_equal 2, a
|
1863
1943
|
end
|
1864
1944
|
|
1865
|
-
it
|
1945
|
+
it 'has a working function #test_callback_destroy_notify' do
|
1866
1946
|
a = 1
|
1867
|
-
r1 = Regress.test_callback_destroy_notify
|
1947
|
+
r1 = Regress.test_callback_destroy_notify proc {|b|
|
1868
1948
|
a = 2
|
1869
1949
|
b
|
1870
|
-
}, 42,
|
1950
|
+
}, 42, proc { a = 3 }
|
1871
1951
|
assert_equal 2, a
|
1872
1952
|
assert_equal 42, r1
|
1873
1953
|
r2 = Regress.test_callback_thaw_notifications
|
@@ -1875,20 +1955,20 @@ describe Regress do
|
|
1875
1955
|
assert_equal 42, r2
|
1876
1956
|
end
|
1877
1957
|
|
1878
|
-
it
|
1958
|
+
it 'has a working function #test_callback_destroy_notify_no_user_data' do
|
1879
1959
|
skip unless get_introspection_data 'Regress', 'test_callback_destroy_notify_no_user_data'
|
1880
1960
|
|
1881
1961
|
callback_times_called = 0
|
1882
1962
|
notify_times_called = 0
|
1883
1963
|
b = :not_nil
|
1884
1964
|
|
1885
|
-
callback =
|
1965
|
+
callback = proc {|user_data|
|
1886
1966
|
callback_times_called += 1
|
1887
1967
|
b = user_data
|
1888
1968
|
callback_times_called * 5
|
1889
1969
|
}
|
1890
1970
|
|
1891
|
-
notify =
|
1971
|
+
notify = proc { notify_times_called += 1 }
|
1892
1972
|
|
1893
1973
|
result = Regress.test_callback_destroy_notify_no_user_data callback, notify
|
1894
1974
|
|
@@ -1905,39 +1985,39 @@ describe Regress do
|
|
1905
1985
|
b.must_be_nil
|
1906
1986
|
end
|
1907
1987
|
|
1908
|
-
it
|
1988
|
+
it 'has a working function #test_callback_thaw_async' do
|
1909
1989
|
invoked = []
|
1910
|
-
Regress.test_callback_async
|
1911
|
-
Regress.test_callback_async
|
1912
|
-
Regress.test_callback_async
|
1990
|
+
Regress.test_callback_async proc { invoked << 1; 1 }, nil
|
1991
|
+
Regress.test_callback_async proc { invoked << 2; 2 }, nil
|
1992
|
+
Regress.test_callback_async proc { invoked << 3; 3 }, nil
|
1913
1993
|
result = Regress.test_callback_thaw_async
|
1914
1994
|
invoked.must_equal [3, 2, 1]
|
1915
1995
|
result.must_equal 1
|
1916
1996
|
end
|
1917
1997
|
|
1918
|
-
it
|
1998
|
+
it 'has a working function #test_callback_thaw_notifications' do
|
1919
1999
|
invoked = false
|
1920
|
-
Regress.test_callback_destroy_notify
|
1921
|
-
Regress.test_callback_destroy_notify
|
2000
|
+
Regress.test_callback_destroy_notify proc { 42 }, nil, nil
|
2001
|
+
Regress.test_callback_destroy_notify proc { 24 }, nil, proc { invoked = true }
|
1922
2002
|
result = Regress.test_callback_thaw_notifications
|
1923
2003
|
result.must_equal 66
|
1924
2004
|
invoked.must_equal true
|
1925
2005
|
end
|
1926
2006
|
|
1927
|
-
it
|
1928
|
-
a =
|
1929
|
-
result = Regress.test_callback_user_data
|
2007
|
+
it 'has a working function #test_callback_user_data' do
|
2008
|
+
a = 'old-value'
|
2009
|
+
result = Regress.test_callback_user_data proc {|u|
|
1930
2010
|
a = u
|
1931
2011
|
5
|
1932
|
-
},
|
1933
|
-
a.must_equal
|
2012
|
+
}, 'new-value'
|
2013
|
+
a.must_equal 'new-value'
|
1934
2014
|
result.must_equal 5
|
1935
2015
|
end
|
1936
2016
|
|
1937
|
-
describe
|
1938
|
-
it
|
2017
|
+
describe 'the #test_callback_user_data function' do
|
2018
|
+
it 'handles boolean user_data' do
|
1939
2019
|
a = false
|
1940
|
-
Regress.test_callback_user_data
|
2020
|
+
Regress.test_callback_user_data proc {|u|
|
1941
2021
|
a = u
|
1942
2022
|
5
|
1943
2023
|
}, true
|
@@ -1945,28 +2025,28 @@ describe Regress do
|
|
1945
2025
|
end
|
1946
2026
|
end
|
1947
2027
|
|
1948
|
-
it
|
2028
|
+
it 'has a working function #test_closure' do
|
1949
2029
|
c = GObject::RubyClosure.new { 5235 }
|
1950
2030
|
r = Regress.test_closure c
|
1951
2031
|
assert_equal 5235, r
|
1952
2032
|
end
|
1953
2033
|
|
1954
|
-
it
|
2034
|
+
it 'has a working function #test_closure_one_arg' do
|
1955
2035
|
c = GObject::RubyClosure.new { |a| a * 2 }
|
1956
2036
|
r = Regress.test_closure_one_arg c, 2
|
1957
2037
|
assert_equal 4, r
|
1958
2038
|
end
|
1959
2039
|
|
1960
|
-
it
|
1961
|
-
arg = GLib::Variant.new_string
|
2040
|
+
it 'has a working function #test_closure_variant' do
|
2041
|
+
arg = GLib::Variant.new_string 'foo'
|
1962
2042
|
|
1963
2043
|
# TODO: Convert proc to RubyClosure automatically
|
1964
2044
|
closure = GObject::RubyClosure.new do |variant|
|
1965
2045
|
str = variant.get_string
|
1966
|
-
if str ==
|
2046
|
+
if str == 'foo'
|
1967
2047
|
GLib::Variant.new_int32 40
|
1968
2048
|
else
|
1969
|
-
GLib::Variant.new_string
|
2049
|
+
GLib::Variant.new_string 'bar'
|
1970
2050
|
end
|
1971
2051
|
end
|
1972
2052
|
|
@@ -1975,7 +2055,7 @@ describe Regress do
|
|
1975
2055
|
result.get_int32.must_equal 40
|
1976
2056
|
end
|
1977
2057
|
|
1978
|
-
it
|
2058
|
+
it 'has a working function #test_date_in_gvalue' do
|
1979
2059
|
r = Regress.test_date_in_gvalue
|
1980
2060
|
date = r.get_value
|
1981
2061
|
skip unless date.respond_to? :get_year
|
@@ -1983,329 +2063,329 @@ describe Regress do
|
|
1983
2063
|
[date.get_year, date.get_month, date.get_day]
|
1984
2064
|
end
|
1985
2065
|
|
1986
|
-
it
|
2066
|
+
it 'has a working function #test_def_error_quark' do
|
1987
2067
|
skip unless get_introspection_data 'Regress', 'test_def_error_quark'
|
1988
2068
|
quark = Regress.test_def_error_quark
|
1989
|
-
GLib.quark_to_string(quark).must_equal
|
2069
|
+
GLib.quark_to_string(quark).must_equal 'regress-test-def-error'
|
1990
2070
|
end
|
1991
2071
|
|
1992
|
-
it
|
2072
|
+
it 'has a working function #test_double' do
|
1993
2073
|
r = Regress.test_double 5435.32
|
1994
2074
|
assert_equal 5435.32, r
|
1995
2075
|
end
|
1996
2076
|
|
1997
|
-
it
|
2077
|
+
it 'has a working function #test_enum_param' do
|
1998
2078
|
r = Regress.test_enum_param :value3
|
1999
|
-
assert_equal
|
2079
|
+
assert_equal 'value3', r
|
2000
2080
|
end
|
2001
2081
|
|
2002
|
-
it
|
2082
|
+
it 'has a working function #test_error_quark' do
|
2003
2083
|
skip unless get_introspection_data 'Regress', 'test_error_quark'
|
2004
2084
|
quark = Regress.test_error_quark
|
2005
|
-
GLib.quark_to_string(quark).must_equal
|
2085
|
+
GLib.quark_to_string(quark).must_equal 'regress-test-error'
|
2006
2086
|
end
|
2007
2087
|
|
2008
|
-
it
|
2088
|
+
it 'has a working function #test_filename_return' do
|
2009
2089
|
arr = Regress.test_filename_return
|
2010
|
-
arr.must_be :==, [
|
2090
|
+
arr.must_be :==, ['åäö', '/etc/fstab']
|
2011
2091
|
end
|
2012
2092
|
|
2013
|
-
it
|
2093
|
+
it 'has a working function #test_float' do
|
2014
2094
|
r = Regress.test_float 5435.32
|
2015
2095
|
assert_in_delta 5435.32, r, 0.001
|
2016
2096
|
end
|
2017
2097
|
|
2018
|
-
it
|
2098
|
+
it 'has a working function #test_garray_container_return' do
|
2019
2099
|
arr = Regress.test_garray_container_return
|
2020
2100
|
arr.must_be_instance_of GLib::PtrArray
|
2021
2101
|
arr.len.must_equal 1
|
2022
2102
|
|
2023
2103
|
ptr = arr.pdata
|
2024
2104
|
ptr2 = ptr.read_pointer
|
2025
|
-
ptr2.read_string.must_be :==,
|
2105
|
+
ptr2.read_string.must_be :==, 'regress'
|
2026
2106
|
end
|
2027
2107
|
|
2028
|
-
it
|
2108
|
+
it 'has a working function #test_garray_full_return' do
|
2029
2109
|
result = Regress.test_garray_full_return
|
2030
|
-
result.to_a.must_equal [
|
2110
|
+
result.to_a.must_equal ['regress']
|
2031
2111
|
end
|
2032
2112
|
|
2033
|
-
it
|
2113
|
+
it 'has a working function #test_gerror_callback' do
|
2034
2114
|
result = nil
|
2035
|
-
Regress.test_gerror_callback
|
2036
|
-
result.must_equal
|
2115
|
+
Regress.test_gerror_callback proc { |err| result = err.message }
|
2116
|
+
result.must_equal 'regression test error'
|
2037
2117
|
end
|
2038
2118
|
|
2039
|
-
it
|
2119
|
+
it 'has a working function #test_ghash_container_return' do
|
2040
2120
|
hash = Regress.test_ghash_container_return
|
2041
2121
|
hash.must_be_instance_of GLib::HashTable
|
2042
|
-
hash.to_hash.must_equal(
|
2043
|
-
|
2044
|
-
|
2122
|
+
hash.to_hash.must_equal('foo' => 'bar',
|
2123
|
+
'baz' => 'bat',
|
2124
|
+
'qux' => 'quux')
|
2045
2125
|
end
|
2046
2126
|
|
2047
|
-
it
|
2127
|
+
it 'has a working function #test_ghash_everything_return' do
|
2048
2128
|
ghash = Regress.test_ghash_everything_return
|
2049
|
-
ghash.to_hash.must_be :==,
|
2050
|
-
|
2051
|
-
|
2129
|
+
ghash.to_hash.must_be :==, 'foo' => 'bar',
|
2130
|
+
'baz' => 'bat',
|
2131
|
+
'qux' => 'quux'
|
2052
2132
|
end
|
2053
2133
|
|
2054
|
-
it
|
2134
|
+
it 'has a working function #test_ghash_gvalue_in' do
|
2055
2135
|
skip unless get_introspection_data 'Regress', 'test_ghash_gvalue_in'
|
2056
2136
|
skip unless get_introspection_data 'Regress', 'test_ghash_gvalue_return'
|
2057
2137
|
hash_table = Regress.test_ghash_gvalue_return
|
2058
2138
|
Regress.test_ghash_gvalue_in hash_table
|
2059
2139
|
end
|
2060
2140
|
|
2061
|
-
it
|
2141
|
+
it 'has a working function #test_ghash_gvalue_return' do
|
2062
2142
|
skip unless get_introspection_data 'Regress', 'test_ghash_gvalue_return'
|
2063
2143
|
|
2064
2144
|
result = Regress.test_ghash_gvalue_return
|
2065
2145
|
hash = result.to_hash
|
2066
2146
|
|
2067
|
-
has_enum_and_flag_keys = hash.
|
2147
|
+
has_enum_and_flag_keys = hash.key?('flags')
|
2068
2148
|
|
2069
|
-
hash[
|
2070
|
-
hash[
|
2071
|
-
hash[
|
2072
|
-
hash[
|
2149
|
+
hash['integer'].get_value.must_equal 12
|
2150
|
+
hash['boolean'].get_value.must_equal true
|
2151
|
+
hash['string'].get_value.must_equal 'some text'
|
2152
|
+
hash['strings'].get_value.to_a.must_equal %w(first second third)
|
2073
2153
|
|
2074
2154
|
if has_enum_and_flag_keys
|
2075
|
-
hash[
|
2076
|
-
hash[
|
2155
|
+
hash['flags'].get_value.must_equal Regress::TestFlags[:flag1] | Regress::TestFlags[:flag3]
|
2156
|
+
hash['enum'].get_value.must_equal :value2
|
2077
2157
|
end
|
2078
2158
|
|
2079
2159
|
expected_keys = if has_enum_and_flag_keys
|
2080
|
-
|
2160
|
+
%w(boolean enum flags integer string strings)
|
2081
2161
|
else
|
2082
|
-
|
2162
|
+
%w(boolean integer string strings)
|
2083
2163
|
end
|
2084
2164
|
|
2085
2165
|
hash.keys.sort.must_equal expected_keys
|
2086
2166
|
end
|
2087
2167
|
|
2088
|
-
it
|
2168
|
+
it 'has a working function #test_ghash_nested_everything_return' do
|
2089
2169
|
result = Regress.test_ghash_nested_everything_return
|
2090
2170
|
hash = result.to_hash
|
2091
|
-
hash.keys.must_equal [
|
2092
|
-
hash[
|
2093
|
-
|
2094
|
-
|
2171
|
+
hash.keys.must_equal ['wibble']
|
2172
|
+
hash['wibble'].to_hash.must_equal('foo' => 'bar',
|
2173
|
+
'baz' => 'bat',
|
2174
|
+
'qux' => 'quux')
|
2095
2175
|
end
|
2096
2176
|
|
2097
|
-
it
|
2177
|
+
it 'has a working function #test_ghash_nested_everything_return2' do
|
2098
2178
|
result = Regress.test_ghash_nested_everything_return2
|
2099
2179
|
hash = result.to_hash
|
2100
|
-
hash.keys.must_equal [
|
2101
|
-
hash[
|
2102
|
-
|
2103
|
-
|
2180
|
+
hash.keys.must_equal ['wibble']
|
2181
|
+
hash['wibble'].to_hash.must_equal('foo' => 'bar',
|
2182
|
+
'baz' => 'bat',
|
2183
|
+
'qux' => 'quux')
|
2104
2184
|
end
|
2105
2185
|
|
2106
|
-
it
|
2107
|
-
Regress.test_ghash_nothing_in(
|
2108
|
-
|
2109
|
-
|
2186
|
+
it 'has a working function #test_ghash_nothing_in' do
|
2187
|
+
Regress.test_ghash_nothing_in('foo' => 'bar',
|
2188
|
+
'baz' => 'bat',
|
2189
|
+
'qux' => 'quux')
|
2110
2190
|
end
|
2111
2191
|
|
2112
|
-
it
|
2113
|
-
Regress.test_ghash_nothing_in2(
|
2114
|
-
|
2115
|
-
|
2192
|
+
it 'has a working function #test_ghash_nothing_in2' do
|
2193
|
+
Regress.test_ghash_nothing_in2('foo' => 'bar',
|
2194
|
+
'baz' => 'bat',
|
2195
|
+
'qux' => 'quux')
|
2116
2196
|
end
|
2117
2197
|
|
2118
|
-
it
|
2198
|
+
it 'has a working function #test_ghash_nothing_return' do
|
2119
2199
|
ghash = Regress.test_ghash_nothing_return
|
2120
|
-
ghash.to_hash.must_be :==,
|
2121
|
-
|
2122
|
-
|
2200
|
+
ghash.to_hash.must_be :==, 'foo' => 'bar',
|
2201
|
+
'baz' => 'bat',
|
2202
|
+
'qux' => 'quux'
|
2123
2203
|
end
|
2124
2204
|
|
2125
|
-
it
|
2205
|
+
it 'has a working function #test_ghash_nothing_return2' do
|
2126
2206
|
ghash = Regress.test_ghash_nothing_return2
|
2127
|
-
ghash.to_hash.must_be :==,
|
2128
|
-
|
2129
|
-
|
2207
|
+
ghash.to_hash.must_be :==, 'foo' => 'bar',
|
2208
|
+
'baz' => 'bat',
|
2209
|
+
'qux' => 'quux'
|
2130
2210
|
end
|
2131
2211
|
|
2132
|
-
it
|
2212
|
+
it 'has a working function #test_ghash_null_in' do
|
2133
2213
|
Regress.test_ghash_null_in(nil)
|
2134
2214
|
end
|
2135
2215
|
|
2136
|
-
it
|
2216
|
+
it 'has a working function #test_ghash_null_out' do
|
2137
2217
|
ghash = Regress.test_ghash_null_out
|
2138
2218
|
ghash.must_be_nil
|
2139
2219
|
end
|
2140
2220
|
|
2141
|
-
it
|
2221
|
+
it 'has a working function #test_ghash_null_return' do
|
2142
2222
|
ghash = Regress.test_ghash_null_return
|
2143
2223
|
ghash.must_be_nil
|
2144
2224
|
end
|
2145
2225
|
|
2146
|
-
it
|
2226
|
+
it 'has a working function #test_glist_container_return' do
|
2147
2227
|
list = Regress.test_glist_container_return
|
2148
2228
|
assert_instance_of GLib::List, list
|
2149
|
-
list.must_be :==,
|
2229
|
+
list.must_be :==, %w(1 2 3)
|
2150
2230
|
end
|
2151
2231
|
|
2152
|
-
it
|
2232
|
+
it 'has a working function #test_glist_everything_return' do
|
2153
2233
|
list = Regress.test_glist_everything_return
|
2154
|
-
list.must_be :==,
|
2234
|
+
list.must_be :==, %w(1 2 3)
|
2155
2235
|
end
|
2156
2236
|
|
2157
|
-
it
|
2158
|
-
Regress.test_glist_nothing_in
|
2237
|
+
it 'has a working function #test_glist_nothing_in' do
|
2238
|
+
Regress.test_glist_nothing_in %w(1 2 3)
|
2159
2239
|
pass
|
2160
2240
|
end
|
2161
2241
|
|
2162
|
-
it
|
2163
|
-
Regress.test_glist_nothing_in2
|
2242
|
+
it 'has a working function #test_glist_nothing_in2' do
|
2243
|
+
Regress.test_glist_nothing_in2 %w(1 2 3)
|
2164
2244
|
pass
|
2165
2245
|
end
|
2166
2246
|
|
2167
|
-
it
|
2247
|
+
it 'has a working function #test_glist_nothing_return' do
|
2168
2248
|
list = Regress.test_glist_nothing_return
|
2169
|
-
list.must_be :==,
|
2249
|
+
list.must_be :==, %w(1 2 3)
|
2170
2250
|
end
|
2171
2251
|
|
2172
|
-
it
|
2252
|
+
it 'has a working function #test_glist_nothing_return2' do
|
2173
2253
|
list = Regress.test_glist_nothing_return2
|
2174
|
-
list.must_be :==,
|
2254
|
+
list.must_be :==, %w(1 2 3)
|
2175
2255
|
end
|
2176
2256
|
|
2177
|
-
it
|
2257
|
+
it 'has a working function #test_glist_null_in' do
|
2178
2258
|
Regress.test_glist_null_in nil
|
2179
2259
|
pass
|
2180
2260
|
end
|
2181
2261
|
|
2182
|
-
it
|
2262
|
+
it 'has a working function #test_glist_null_out' do
|
2183
2263
|
result = Regress.test_glist_null_out
|
2184
2264
|
assert_equal nil, result
|
2185
2265
|
end
|
2186
2266
|
|
2187
|
-
it
|
2267
|
+
it 'has a working function #test_gslist_container_return' do
|
2188
2268
|
slist = Regress.test_gslist_container_return
|
2189
2269
|
assert_instance_of GLib::SList, slist
|
2190
|
-
slist.must_be :==,
|
2270
|
+
slist.must_be :==, %w(1 2 3)
|
2191
2271
|
end
|
2192
2272
|
|
2193
|
-
it
|
2273
|
+
it 'has a working function #test_gslist_everything_return' do
|
2194
2274
|
slist = Regress.test_gslist_everything_return
|
2195
|
-
slist.must_be :==,
|
2275
|
+
slist.must_be :==, %w(1 2 3)
|
2196
2276
|
end
|
2197
2277
|
|
2198
|
-
it
|
2199
|
-
Regress.test_gslist_nothing_in
|
2278
|
+
it 'has a working function #test_gslist_nothing_in' do
|
2279
|
+
Regress.test_gslist_nothing_in %w(1 2 3)
|
2200
2280
|
pass
|
2201
2281
|
end
|
2202
2282
|
|
2203
|
-
it
|
2204
|
-
Regress.test_gslist_nothing_in2
|
2283
|
+
it 'has a working function #test_gslist_nothing_in2' do
|
2284
|
+
Regress.test_gslist_nothing_in2 %w(1 2 3)
|
2205
2285
|
pass
|
2206
2286
|
end
|
2207
2287
|
|
2208
|
-
it
|
2288
|
+
it 'has a working function #test_gslist_nothing_return' do
|
2209
2289
|
slist = Regress.test_gslist_nothing_return
|
2210
|
-
slist.must_be :==,
|
2290
|
+
slist.must_be :==, %w(1 2 3)
|
2211
2291
|
end
|
2212
2292
|
|
2213
|
-
it
|
2293
|
+
it 'has a working function #test_gslist_nothing_return2' do
|
2214
2294
|
slist = Regress.test_gslist_nothing_return2
|
2215
|
-
slist.must_be :==,
|
2295
|
+
slist.must_be :==, %w(1 2 3)
|
2216
2296
|
end
|
2217
2297
|
|
2218
|
-
it
|
2298
|
+
it 'has a working function #test_gslist_null_in' do
|
2219
2299
|
Regress.test_gslist_null_in nil
|
2220
2300
|
pass
|
2221
2301
|
end
|
2222
2302
|
|
2223
|
-
it
|
2303
|
+
it 'has a working function #test_gslist_null_out' do
|
2224
2304
|
result = Regress.test_gslist_null_out
|
2225
2305
|
assert_equal nil, result
|
2226
2306
|
end
|
2227
2307
|
|
2228
|
-
it
|
2308
|
+
it 'has a working function #test_gtype' do
|
2229
2309
|
result = Regress.test_gtype 23
|
2230
2310
|
assert_equal 23, result
|
2231
2311
|
end
|
2232
2312
|
|
2233
|
-
it
|
2234
|
-
Regress.test_gvariant_as.get_strv.to_a.must_equal
|
2313
|
+
it 'has a working function #test_gvariant_as' do
|
2314
|
+
Regress.test_gvariant_as.get_strv.to_a.must_equal %w(one two three)
|
2235
2315
|
end
|
2236
2316
|
|
2237
|
-
it
|
2317
|
+
it 'has a working function #test_gvariant_asv' do
|
2238
2318
|
result = Regress.test_gvariant_asv
|
2239
2319
|
result.n_children.must_equal 2
|
2240
|
-
result.lookup_value(
|
2241
|
-
result.lookup_value(
|
2320
|
+
result.lookup_value('name', nil).get_string.must_equal 'foo'
|
2321
|
+
result.lookup_value('timeout', nil).get_int32.must_equal 10
|
2242
2322
|
end
|
2243
2323
|
|
2244
|
-
it
|
2324
|
+
it 'has a working function #test_gvariant_i' do
|
2245
2325
|
Regress.test_gvariant_i.get_int32.must_equal 1
|
2246
2326
|
end
|
2247
2327
|
|
2248
|
-
it
|
2249
|
-
Regress.test_gvariant_s.get_string.must_equal
|
2328
|
+
it 'has a working function #test_gvariant_s' do
|
2329
|
+
Regress.test_gvariant_s.get_string.must_equal 'one'
|
2250
2330
|
end
|
2251
2331
|
|
2252
|
-
it
|
2253
|
-
Regress.test_gvariant_v.get_variant.get_string.must_equal
|
2332
|
+
it 'has a working function #test_gvariant_v' do
|
2333
|
+
Regress.test_gvariant_v.get_variant.get_string.must_equal 'contents'
|
2254
2334
|
end
|
2255
2335
|
|
2256
|
-
it
|
2336
|
+
it 'has a working function #test_hash_table_callback' do
|
2257
2337
|
value = nil
|
2258
|
-
Regress.test_hash_table_callback({
|
2259
|
-
value.to_hash.must_equal(
|
2338
|
+
Regress.test_hash_table_callback({ 'foo' => 42 }, proc { |hash| value = hash })
|
2339
|
+
value.to_hash.must_equal('foo' => 42)
|
2260
2340
|
end
|
2261
2341
|
|
2262
|
-
it
|
2342
|
+
it 'has a working function #test_int' do
|
2263
2343
|
result = Regress.test_int 23
|
2264
2344
|
assert_equal 23, result
|
2265
2345
|
end
|
2266
2346
|
|
2267
|
-
it
|
2347
|
+
it 'has a working function #test_int16' do
|
2268
2348
|
result = Regress.test_int16 23
|
2269
2349
|
assert_equal 23, result
|
2270
2350
|
end
|
2271
2351
|
|
2272
|
-
it
|
2352
|
+
it 'has a working function #test_int32' do
|
2273
2353
|
result = Regress.test_int32 23
|
2274
2354
|
assert_equal 23, result
|
2275
2355
|
end
|
2276
2356
|
|
2277
|
-
it
|
2278
|
-
result = Regress.test_int64
|
2279
|
-
assert_equal
|
2357
|
+
it 'has a working function #test_int64' do
|
2358
|
+
result = Regress.test_int64 2_300_000_000_000
|
2359
|
+
assert_equal 2_300_000_000_000, result
|
2280
2360
|
end
|
2281
2361
|
|
2282
|
-
it
|
2362
|
+
it 'has a working function #test_int8' do
|
2283
2363
|
result = Regress.test_int8 23
|
2284
2364
|
assert_equal 23, result
|
2285
2365
|
end
|
2286
2366
|
|
2287
|
-
it
|
2288
|
-
len = Regress.test_int_out_utf8
|
2367
|
+
it 'has a working function #test_int_out_utf8' do
|
2368
|
+
len = Regress.test_int_out_utf8 'How long?'
|
2289
2369
|
assert_equal 9, len
|
2290
2370
|
end
|
2291
2371
|
|
2292
|
-
it
|
2372
|
+
it 'has a working function #test_int_value_arg' do
|
2293
2373
|
gv = GObject::Value.new
|
2294
|
-
gv.init GObject.type_from_name
|
2374
|
+
gv.init GObject.type_from_name 'gint'
|
2295
2375
|
gv.set_int 343
|
2296
2376
|
result = Regress.test_int_value_arg gv
|
2297
2377
|
assert_equal 343, result
|
2298
2378
|
end
|
2299
2379
|
|
2300
|
-
it
|
2380
|
+
it 'has a working function #test_long' do
|
2301
2381
|
long_val = FFI.type_size(:long) == 8 ? 2_300_000_000_000 : 2_000_000_000
|
2302
2382
|
result = Regress.test_long long_val
|
2303
2383
|
assert_equal long_val, result
|
2304
2384
|
end
|
2305
2385
|
|
2306
|
-
it
|
2386
|
+
it 'has a working function #test_multi_callback' do
|
2307
2387
|
a = 1
|
2308
|
-
result = Regress.test_multi_callback
|
2388
|
+
result = Regress.test_multi_callback proc {
|
2309
2389
|
a += 1
|
2310
2390
|
23
|
2311
2391
|
}
|
@@ -2313,221 +2393,221 @@ describe Regress do
|
|
2313
2393
|
assert_equal 3, a
|
2314
2394
|
end
|
2315
2395
|
|
2316
|
-
it
|
2396
|
+
it 'has a working function #test_multi_double_args' do
|
2317
2397
|
one, two = Regress.test_multi_double_args 23.1
|
2318
2398
|
assert_equal 2 * 23.1, one
|
2319
2399
|
assert_equal 3 * 23.1, two
|
2320
2400
|
end
|
2321
2401
|
|
2322
|
-
it
|
2402
|
+
it 'has a working function #test_multiline_doc_comments' do
|
2323
2403
|
Regress.test_multiline_doc_comments.must_be_nil
|
2324
2404
|
end
|
2325
2405
|
|
2326
|
-
it
|
2406
|
+
it 'has a working function #test_nested_parameter' do
|
2327
2407
|
Regress.test_nested_parameter(3).must_be_nil
|
2328
2408
|
end
|
2329
2409
|
|
2330
|
-
it
|
2410
|
+
it 'has a working function #test_null_gerror_callback' do
|
2331
2411
|
value = nil
|
2332
|
-
Regress.test_owned_gerror_callback
|
2333
|
-
value.message.must_equal
|
2412
|
+
Regress.test_owned_gerror_callback proc { |err| value = err }
|
2413
|
+
value.message.must_equal 'regression test owned error'
|
2334
2414
|
end
|
2335
2415
|
|
2336
|
-
it
|
2416
|
+
it 'has a working function #test_owned_gerror_callback' do
|
2337
2417
|
value = nil
|
2338
|
-
Regress.test_owned_gerror_callback
|
2339
|
-
value.message.must_equal
|
2418
|
+
Regress.test_owned_gerror_callback proc { |err| value = err }
|
2419
|
+
value.message.must_equal 'regression test owned error'
|
2340
2420
|
end
|
2341
2421
|
|
2342
|
-
it
|
2422
|
+
it 'has a working function #test_short' do
|
2343
2423
|
result = Regress.test_short 23
|
2344
2424
|
assert_equal 23, result
|
2345
2425
|
end
|
2346
2426
|
|
2347
|
-
it
|
2427
|
+
it 'has a working function #test_simple_boxed_a_const_return' do
|
2348
2428
|
result = Regress.test_simple_boxed_a_const_return
|
2349
2429
|
assert_equal [5, 6, 7.0], [result.some_int, result.some_int8, result.some_double]
|
2350
2430
|
end
|
2351
2431
|
|
2352
|
-
it
|
2432
|
+
it 'has a working function #test_simple_callback' do
|
2353
2433
|
a = 0
|
2354
|
-
Regress.test_simple_callback
|
2434
|
+
Regress.test_simple_callback proc { a = 1 }
|
2355
2435
|
assert_equal 1, a
|
2356
2436
|
end
|
2357
2437
|
|
2358
|
-
it
|
2438
|
+
it 'has a working function #test_size' do
|
2359
2439
|
assert_equal 2354, Regress.test_size(2354)
|
2360
2440
|
end
|
2361
2441
|
|
2362
|
-
it
|
2442
|
+
it 'has a working function #test_ssize' do
|
2363
2443
|
assert_equal(-2_000_000, Regress.test_ssize(-2_000_000))
|
2364
2444
|
end
|
2365
2445
|
|
2366
|
-
it
|
2446
|
+
it 'has a working function #test_struct_a_parse' do
|
2367
2447
|
skip unless get_introspection_data 'Regress', 'test_struct_a_parse'
|
2368
|
-
a = Regress.test_struct_a_parse(
|
2448
|
+
a = Regress.test_struct_a_parse('this string is actually ignored')
|
2369
2449
|
a.must_be_instance_of Regress::TestStructA
|
2370
2450
|
a.some_int.must_equal 23
|
2371
2451
|
end
|
2372
2452
|
|
2373
|
-
it
|
2374
|
-
assert_equal true, Regress.test_strv_in(
|
2453
|
+
it 'has a working function #test_strv_in' do
|
2454
|
+
assert_equal true, Regress.test_strv_in(%w(1 2 3))
|
2375
2455
|
end
|
2376
2456
|
|
2377
|
-
it
|
2457
|
+
it 'has a working function #test_strv_in_gvalue' do
|
2378
2458
|
gv = Regress.test_strv_in_gvalue
|
2379
|
-
gv.get_value.must_be :==,
|
2459
|
+
gv.get_value.must_be :==, %w(one two three)
|
2380
2460
|
end
|
2381
2461
|
|
2382
|
-
it
|
2462
|
+
it 'has a working function #test_strv_out' do
|
2383
2463
|
arr = Regress.test_strv_out
|
2384
|
-
arr.must_be :==,
|
2464
|
+
arr.must_be :==, %w(thanks for all the fish)
|
2385
2465
|
end
|
2386
2466
|
|
2387
|
-
it
|
2467
|
+
it 'has a working function #test_strv_out_c' do
|
2388
2468
|
arr = Regress.test_strv_out_c
|
2389
|
-
arr.must_be :==,
|
2469
|
+
arr.must_be :==, %w(thanks for all the fish)
|
2390
2470
|
end
|
2391
2471
|
|
2392
|
-
it
|
2472
|
+
it 'has a working function #test_strv_out_container' do
|
2393
2473
|
arr = Regress.test_strv_out_container
|
2394
|
-
arr.must_be :==,
|
2474
|
+
arr.must_be :==, %w(1 2 3)
|
2395
2475
|
end
|
2396
2476
|
|
2397
|
-
it
|
2477
|
+
it 'has a working function #test_strv_outarg' do
|
2398
2478
|
arr = Regress.test_strv_outarg
|
2399
|
-
arr.must_be :==,
|
2479
|
+
arr.must_be :==, %w(1 2 3)
|
2400
2480
|
end
|
2401
2481
|
|
2402
|
-
it
|
2482
|
+
it 'has a working function #test_timet' do
|
2403
2483
|
# Time rounded to seconds.
|
2404
2484
|
t = Time.at(Time.now.to_i)
|
2405
2485
|
result = Regress.test_timet(t.to_i)
|
2406
2486
|
assert_equal t, Time.at(result)
|
2407
2487
|
end
|
2408
2488
|
|
2409
|
-
it
|
2410
|
-
y, z, q = Regress.test_torture_signature_0 86,
|
2411
|
-
assert_equal [86, 2*86, 3+2], [y, z, q]
|
2489
|
+
it 'has a working function #test_torture_signature_0' do
|
2490
|
+
y, z, q = Regress.test_torture_signature_0 86, 'foo', 2
|
2491
|
+
assert_equal [86, 2 * 86, 3 + 2], [y, z, q]
|
2412
2492
|
end
|
2413
2493
|
|
2414
|
-
it
|
2415
|
-
ret, y, z, q = Regress.test_torture_signature_1(-21,
|
2416
|
-
[ret, y, z, q].must_equal [true, -21, 2 * -21,
|
2494
|
+
it 'has a working function #test_torture_signature_1' do
|
2495
|
+
ret, y, z, q = Regress.test_torture_signature_1(-21, 'hello', 12)
|
2496
|
+
[ret, y, z, q].must_equal [true, -21, 2 * -21, 'hello'.length + 12]
|
2417
2497
|
|
2418
|
-
proc { Regress.test_torture_signature_1(-21,
|
2498
|
+
proc { Regress.test_torture_signature_1(-21, 'hello', 11) }.
|
2419
2499
|
must_raise GirFFI::GLibError
|
2420
2500
|
end
|
2421
2501
|
|
2422
|
-
it
|
2502
|
+
it 'has a working function #test_torture_signature_2' do
|
2423
2503
|
a = 1
|
2424
2504
|
y, z, q = Regress.test_torture_signature_2 244,
|
2425
|
-
|
2426
|
-
|
2427
|
-
assert_equal [244, 2*244, 6+31], [y, z, q]
|
2505
|
+
proc { |u| a = u }, 2, proc { a = 3 },
|
2506
|
+
'foofoo', 31
|
2507
|
+
assert_equal [244, 2 * 244, 6 + 31], [y, z, q]
|
2428
2508
|
assert_equal 3, a
|
2429
2509
|
end
|
2430
2510
|
|
2431
|
-
it
|
2511
|
+
it 'has a working function #test_uint' do
|
2432
2512
|
assert_equal 31, Regress.test_uint(31)
|
2433
2513
|
end
|
2434
2514
|
|
2435
|
-
it
|
2515
|
+
it 'has a working function #test_uint16' do
|
2436
2516
|
assert_equal 31, Regress.test_uint16(31)
|
2437
2517
|
end
|
2438
2518
|
|
2439
|
-
it
|
2440
|
-
assert_equal
|
2519
|
+
it 'has a working function #test_uint32' do
|
2520
|
+
assert_equal 540_000, Regress.test_uint32(540_000)
|
2441
2521
|
end
|
2442
2522
|
|
2443
|
-
it
|
2523
|
+
it 'has a working function #test_uint64' do
|
2444
2524
|
assert_equal 54_000_000_000_000, Regress.test_uint64(54_000_000_000_000)
|
2445
2525
|
end
|
2446
2526
|
|
2447
|
-
it
|
2527
|
+
it 'has a working function #test_uint8' do
|
2448
2528
|
assert_equal 31, Regress.test_uint8(31)
|
2449
2529
|
end
|
2450
2530
|
|
2451
|
-
it
|
2531
|
+
it 'has a working function #test_ulong' do
|
2452
2532
|
assert_equal 54_000_000_000_000, Regress.test_uint64(54_000_000_000_000)
|
2453
2533
|
end
|
2454
2534
|
|
2455
|
-
it
|
2535
|
+
it 'has a working function #test_unconventional_error_quark' do
|
2456
2536
|
skip unless get_introspection_data 'Regress', 'test_unconventional_error_quark'
|
2457
2537
|
result = Regress.test_unconventional_error_quark
|
2458
|
-
GLib.quark_to_string(result).must_equal
|
2538
|
+
GLib.quark_to_string(result).must_equal 'regress-test-other-error'
|
2459
2539
|
end
|
2460
2540
|
|
2461
|
-
it
|
2541
|
+
it 'has a working function #test_unichar' do
|
2462
2542
|
assert_equal 120, Regress.test_unichar(120)
|
2463
2543
|
assert_equal 540_000, Regress.test_unichar(540_000)
|
2464
2544
|
end
|
2465
2545
|
|
2466
|
-
it
|
2467
|
-
assert_equal
|
2468
|
-
assert_equal
|
2546
|
+
it 'has a working function #test_unsigned_enum_param' do
|
2547
|
+
assert_equal 'value1', Regress.test_unsigned_enum_param(:value1)
|
2548
|
+
assert_equal 'value2', Regress.test_unsigned_enum_param(:value2)
|
2469
2549
|
end
|
2470
2550
|
|
2471
|
-
it
|
2551
|
+
it 'has a working function #test_ushort' do
|
2472
2552
|
assert_equal 54_000_000, Regress.test_uint64(54_000_000)
|
2473
2553
|
end
|
2474
2554
|
|
2475
|
-
it
|
2555
|
+
it 'has a working function #test_utf8_const_in' do
|
2476
2556
|
Regress.test_utf8_const_in("const \xe2\x99\xa5 utf8")
|
2477
2557
|
pass
|
2478
2558
|
end
|
2479
2559
|
|
2480
|
-
it
|
2560
|
+
it 'has a working function #test_utf8_const_return' do
|
2481
2561
|
result = Regress.test_utf8_const_return
|
2482
2562
|
assert_equal "const \xe2\x99\xa5 utf8", result
|
2483
2563
|
end
|
2484
2564
|
|
2485
|
-
it
|
2565
|
+
it 'has a working function #test_utf8_inout' do
|
2486
2566
|
result = Regress.test_utf8_inout "const \xe2\x99\xa5 utf8"
|
2487
2567
|
assert_equal "nonconst \xe2\x99\xa5 utf8", result
|
2488
2568
|
end
|
2489
2569
|
|
2490
|
-
it
|
2570
|
+
it 'has a working function #test_utf8_nonconst_return' do
|
2491
2571
|
result = Regress.test_utf8_nonconst_return
|
2492
2572
|
assert_equal "nonconst \xe2\x99\xa5 utf8", result
|
2493
2573
|
end
|
2494
2574
|
|
2495
|
-
it
|
2575
|
+
it 'has a working function #test_utf8_null_in' do
|
2496
2576
|
Regress.test_utf8_null_in nil
|
2497
2577
|
pass
|
2498
2578
|
end
|
2499
2579
|
|
2500
|
-
it
|
2580
|
+
it 'has a working function #test_utf8_null_out' do
|
2501
2581
|
assert_equal nil, Regress.test_utf8_null_out
|
2502
2582
|
end
|
2503
2583
|
|
2504
|
-
it
|
2584
|
+
it 'has a working function #test_utf8_out' do
|
2505
2585
|
result = Regress.test_utf8_out
|
2506
2586
|
assert_equal "nonconst \xe2\x99\xa5 utf8", result
|
2507
2587
|
end
|
2508
2588
|
|
2509
|
-
it
|
2589
|
+
it 'has a working function #test_utf8_out_nonconst_return' do
|
2510
2590
|
r, out = Regress.test_utf8_out_nonconst_return
|
2511
|
-
assert_equal
|
2591
|
+
assert_equal %w(first second), [r, out]
|
2512
2592
|
end
|
2513
2593
|
|
2514
|
-
it
|
2594
|
+
it 'has a working function #test_utf8_out_out' do
|
2515
2595
|
out0, out1 = Regress.test_utf8_out_nonconst_return
|
2516
|
-
assert_equal
|
2596
|
+
assert_equal %w(first second), [out0, out1]
|
2517
2597
|
end
|
2518
2598
|
|
2519
|
-
it
|
2599
|
+
it 'has a working function #test_value_return' do
|
2520
2600
|
result = Regress.test_value_return 3423
|
2521
2601
|
assert_equal 3423, result.get_int
|
2522
2602
|
end
|
2523
2603
|
|
2524
|
-
it
|
2604
|
+
it 'has a working function #test_versioning' do
|
2525
2605
|
skip unless get_introspection_data 'Regress', 'test_versioning'
|
2526
2606
|
Regress.test_versioning
|
2527
2607
|
pass
|
2528
2608
|
end
|
2529
2609
|
|
2530
|
-
it
|
2610
|
+
it 'raises an appropriate NoMethodError when a function is not found' do
|
2531
2611
|
begin
|
2532
2612
|
Regress.this_method_does_not_exist
|
2533
2613
|
rescue => e
|