gir_ffi 0.15.1 → 0.15.6
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 +42 -0
- data/README.md +10 -10
- data/TODO.md +14 -35
- data/docs/Documentation.md +6 -0
- data/docs/Subclassing.md +38 -0
- data/lib/ffi-glib.rb +8 -3
- data/lib/ffi-glib/byte_array.rb +2 -1
- data/lib/ffi-glib/container_class_methods.rb +1 -3
- data/lib/ffi-glib/destroy_notify.rb +2 -2
- data/lib/ffi-glib/hash_table.rb +1 -2
- data/lib/ffi-glib/list.rb +11 -5
- data/lib/ffi-glib/list_methods.rb +12 -0
- data/lib/ffi-glib/s_list.rb +10 -4
- data/lib/ffi-gobject.rb +2 -5
- data/lib/ffi-gobject/object.rb +102 -92
- data/lib/ffi-gobject/object_class.rb +1 -1
- data/lib/ffi-gobject/ruby_closure.rb +1 -1
- data/lib/ffi-gobject/value.rb +108 -117
- data/lib/ffi-gobject_introspection/i_base_info.rb +35 -27
- data/lib/ffi-gobject_introspection/lib.rb +1 -1
- data/lib/gir_ffi-base/gobject/lib.rb +4 -0
- data/lib/gir_ffi/array_element_convertor.rb +2 -3
- data/lib/gir_ffi/boxed_base.rb +13 -11
- data/lib/gir_ffi/builder.rb +3 -4
- data/lib/gir_ffi/builder_helper.rb +10 -2
- data/lib/gir_ffi/builders/base_argument_builder.rb +2 -2
- data/lib/gir_ffi/builders/base_method_builder.rb +1 -1
- data/lib/gir_ffi/builders/base_type_builder.rb +1 -1
- data/lib/gir_ffi/builders/callback_argument_builder.rb +2 -0
- data/lib/gir_ffi/builders/callback_builder.rb +25 -11
- data/lib/gir_ffi/builders/callback_return_value_builder.rb +4 -6
- data/lib/gir_ffi/builders/enum_builder.rb +9 -5
- data/lib/gir_ffi/builders/field_builder.rb +2 -1
- data/lib/gir_ffi/builders/function_builder.rb +1 -1
- data/lib/gir_ffi/builders/interface_builder.rb +3 -1
- data/lib/gir_ffi/builders/mapping_method_builder.rb +1 -1
- data/lib/gir_ffi/builders/marshalling_method_builder.rb +5 -2
- data/lib/gir_ffi/builders/method_template.rb +4 -4
- data/lib/gir_ffi/builders/module_builder.rb +4 -2
- data/lib/gir_ffi/builders/null_argument_builder.rb +0 -2
- data/lib/gir_ffi/builders/null_return_value_builder.rb +0 -2
- data/lib/gir_ffi/builders/object_builder.rb +18 -6
- data/lib/gir_ffi/builders/property_builder.rb +1 -2
- data/lib/gir_ffi/builders/signal_closure_builder.rb +3 -5
- data/lib/gir_ffi/builders/struct_builder.rb +34 -7
- data/lib/gir_ffi/builders/user_defined_builder.rb +8 -1
- data/lib/gir_ffi/builders/vfunc_argument_builder.rb +1 -1
- data/lib/gir_ffi/callback_base.rb +7 -8
- data/lib/gir_ffi/class_base.rb +1 -0
- data/lib/gir_ffi/core.rb +17 -2
- data/lib/gir_ffi/glib_error.rb +1 -2
- data/lib/gir_ffi/in_pointer.rb +7 -0
- data/lib/gir_ffi/object_base.rb +27 -0
- data/lib/gir_ffi/return_value_info.rb +1 -2
- data/lib/gir_ffi/struct_base.rb +1 -9
- data/lib/gir_ffi/struct_like_base.rb +9 -5
- data/lib/gir_ffi/type_map.rb +1 -0
- data/lib/gir_ffi/unintrospectable_type_info.rb +1 -1
- data/lib/gir_ffi/union_base.rb +1 -9
- data/lib/gir_ffi/user_defined_object_info.rb +3 -2
- data/lib/gir_ffi/version.rb +1 -1
- data/lib/gir_ffi/vfunc_implementation.rb +1 -0
- metadata +106 -143
- data/Gemfile +0 -14
- data/Rakefile +0 -9
- data/tasks/test.rake +0 -204
- data/test/base_test_helper.rb +0 -70
- data/test/ffi-glib/array_test.rb +0 -203
- data/test/ffi-glib/byte_array_test.rb +0 -28
- data/test/ffi-glib/bytes_test.rb +0 -61
- data/test/ffi-glib/closure_test.rb +0 -38
- data/test/ffi-glib/destroy_notify_test.rb +0 -18
- data/test/ffi-glib/hash_table_test.rb +0 -68
- data/test/ffi-glib/list_test.rb +0 -86
- data/test/ffi-glib/main_loop_test.rb +0 -53
- data/test/ffi-glib/ptr_array_test.rb +0 -112
- data/test/ffi-glib/ruby_closure_test.rb +0 -62
- data/test/ffi-glib/s_list_test.rb +0 -76
- data/test/ffi-glib/strv_test.rb +0 -60
- data/test/ffi-glib/variant_test.rb +0 -12
- data/test/ffi-gobject/gobject_test.rb +0 -76
- data/test/ffi-gobject/object_class_test.rb +0 -31
- data/test/ffi-gobject/object_test.rb +0 -122
- data/test/ffi-gobject/param_spec_test.rb +0 -32
- data/test/ffi-gobject/value_test.rb +0 -390
- data/test/ffi-gobject_introspection/gobject_type_init_test.rb +0 -26
- data/test/ffi-gobject_introspection/i_base_info_test.rb +0 -52
- data/test/ffi-gobject_introspection/i_constant_info_test.rb +0 -29
- data/test/ffi-gobject_introspection/i_enum_info_test.rb +0 -18
- data/test/ffi-gobject_introspection/i_function_info_test.rb +0 -6
- data/test/ffi-gobject_introspection/i_interface_info_test.rb +0 -23
- data/test/ffi-gobject_introspection/i_object_info_test.rb +0 -49
- data/test/ffi-gobject_introspection/i_property_info_test.rb +0 -47
- data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +0 -27
- data/test/ffi-gobject_introspection/i_repository_test.rb +0 -81
- data/test/ffi-gobject_introspection/i_struct_info_test.rb +0 -23
- data/test/ffi-gobject_introspection/i_type_info_test.rb +0 -30
- data/test/ffi-gobject_introspection/i_union_info_test.rb +0 -17
- data/test/ffi-gobject_introspection/i_vfunc_info_test.rb +0 -41
- data/test/ffi-gobject_introspection/lib_test.rb +0 -13
- data/test/ffi-gobject_introspection/strv_test.rb +0 -46
- data/test/ffi-gobject_test.rb +0 -151
- data/test/gir_ffi/allocation_helper_test.rb +0 -36
- data/test/gir_ffi/arg_helper_test.rb +0 -139
- data/test/gir_ffi/boolean_test.rb +0 -43
- data/test/gir_ffi/boxed_base_test.rb +0 -65
- data/test/gir_ffi/builder_test.rb +0 -322
- data/test/gir_ffi/builders/argument_builder_test.rb +0 -651
- data/test/gir_ffi/builders/base_argument_builder_test.rb +0 -6
- data/test/gir_ffi/builders/callback_argument_builder_test.rb +0 -126
- data/test/gir_ffi/builders/callback_builder_test.rb +0 -117
- data/test/gir_ffi/builders/callback_return_value_builder_test.rb +0 -81
- data/test/gir_ffi/builders/constant_builder_test.rb +0 -6
- data/test/gir_ffi/builders/constructor_builder_test.rb +0 -37
- data/test/gir_ffi/builders/enum_builder_test.rb +0 -23
- data/test/gir_ffi/builders/field_builder_test.rb +0 -134
- data/test/gir_ffi/builders/function_builder_test.rb +0 -550
- data/test/gir_ffi/builders/initializer_builder_test.rb +0 -54
- data/test/gir_ffi/builders/interface_builder_test.rb +0 -32
- data/test/gir_ffi/builders/module_builder_test.rb +0 -43
- data/test/gir_ffi/builders/object_builder_test.rb +0 -98
- data/test/gir_ffi/builders/property_builder_test.rb +0 -158
- data/test/gir_ffi/builders/registered_type_builder_test.rb +0 -54
- data/test/gir_ffi/builders/return_value_builder_test.rb +0 -433
- data/test/gir_ffi/builders/signal_closure_builder_test.rb +0 -197
- data/test/gir_ffi/builders/struct_builder_test.rb +0 -93
- data/test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb +0 -29
- data/test/gir_ffi/builders/unintrospectable_builder_test.rb +0 -84
- data/test/gir_ffi/builders/union_builder_test.rb +0 -28
- data/test/gir_ffi/builders/user_defined_builder_test.rb +0 -524
- data/test/gir_ffi/builders/vfunc_argument_builder_test.rb +0 -101
- data/test/gir_ffi/builders/vfunc_builder_test.rb +0 -241
- data/test/gir_ffi/callback_base_test.rb +0 -22
- data/test/gir_ffi/class_base_test.rb +0 -166
- data/test/gir_ffi/core_test.rb +0 -98
- data/test/gir_ffi/enum_base_test.rb +0 -43
- data/test/gir_ffi/error_type_info_test.rb +0 -50
- data/test/gir_ffi/ffi_ext/pointer_test.rb +0 -20
- data/test/gir_ffi/g_type_test.rb +0 -31
- data/test/gir_ffi/in_pointer_test.rb +0 -203
- data/test/gir_ffi/info_ext/i_callable_info_test.rb +0 -26
- data/test/gir_ffi/info_ext/i_callback_info_test.rb +0 -21
- data/test/gir_ffi/info_ext/i_field_info_test.rb +0 -37
- data/test/gir_ffi/info_ext/i_function_info_test.rb +0 -74
- data/test/gir_ffi/info_ext/i_signal_info_test.rb +0 -32
- data/test/gir_ffi/info_ext/i_type_info_test.rb +0 -711
- data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +0 -19
- data/test/gir_ffi/info_ext/safe_constant_name_test.rb +0 -26
- data/test/gir_ffi/info_ext/safe_function_name_test.rb +0 -26
- data/test/gir_ffi/interface_base_test.rb +0 -20
- data/test/gir_ffi/method_stubber_test.rb +0 -65
- data/test/gir_ffi/object_base_test.rb +0 -64
- data/test/gir_ffi/object_store_test.rb +0 -41
- data/test/gir_ffi/receiver_argument_info_test.rb +0 -33
- data/test/gir_ffi/sized_array_test.rb +0 -206
- data/test/gir_ffi/struct_base_test.rb +0 -23
- data/test/gir_ffi/struct_like_base_test.rb +0 -167
- data/test/gir_ffi/type_map_test.rb +0 -17
- data/test/gir_ffi/unintrospectable_type_info_test.rb +0 -121
- data/test/gir_ffi/union_base_test.rb +0 -23
- data/test/gir_ffi/user_defined_object_info_test.rb +0 -119
- data/test/gir_ffi/user_defined_property_info_test.rb +0 -39
- data/test/gir_ffi/variable_name_generator_test.rb +0 -18
- data/test/gir_ffi/version_test.rb +0 -9
- data/test/gir_ffi/zero_terminated_test.rb +0 -108
- data/test/gir_ffi_test_helper.rb +0 -84
- data/test/integration/callback_exceptions_test.rb +0 -59
- data/test/integration/derived_classes_test.rb +0 -53
- data/test/integration/generated_everything_test.rb +0 -452
- data/test/integration/generated_gimarshallingtests_test.rb +0 -3096
- data/test/integration/generated_gio_test.rb +0 -116
- data/test/integration/generated_glib_test.rb +0 -10
- data/test/integration/generated_gobject_test.rb +0 -124
- data/test/integration/generated_gst_test.rb +0 -38
- data/test/integration/generated_gtk_source_test.rb +0 -32
- data/test/integration/generated_gtop_test.rb +0 -22
- data/test/integration/generated_pango_ft2_test.rb +0 -17
- data/test/integration/generated_pango_test.rb +0 -24
- data/test/integration/generated_regress_test.rb +0 -4038
- data/test/integration/generated_secret_test.rb +0 -14
- data/test/integration/generated_utility_test.rb +0 -174
- data/test/integration/generated_warnlib_test.rb +0 -43
- data/test/integration/method_lookup_test.rb +0 -34
- data/test/introspection_test_helper.rb +0 -93
- data/test/lib/Makefile.am +0 -110
- data/test/lib/autogen.sh +0 -4
- data/test/lib/configure.ac +0 -34
- data/test/lib/m4/jhflags.m4 +0 -21
- data/test/minitest/stats_plugin.rb +0 -30
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "gir_ffi_test_helper"
|
4
|
-
|
5
|
-
GirFFI.setup :Secret
|
6
|
-
|
7
|
-
describe "The generated Secret module" do
|
8
|
-
describe "Secret::Schema" do
|
9
|
-
it "has a working constructor" do
|
10
|
-
instance = Secret::Schema.new("foo", :none, "bar" => :string)
|
11
|
-
_(instance).must_be_instance_of Secret::Schema
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,174 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "gir_ffi_test_helper"
|
4
|
-
|
5
|
-
GirFFI.setup :Utility
|
6
|
-
|
7
|
-
describe Utility do
|
8
|
-
describe "Utility::Buffer" do
|
9
|
-
let(:instance) { Utility::Buffer.new }
|
10
|
-
|
11
|
-
it "has a writable field data" do
|
12
|
-
_(instance.data).must_equal FFI::Pointer::NULL
|
13
|
-
instance.data = FFI::Pointer.new 54_321
|
14
|
-
_(instance.data).must_equal FFI::Pointer.new 54_321
|
15
|
-
end
|
16
|
-
|
17
|
-
it "has a writable field length" do
|
18
|
-
_(instance.length).must_equal 0
|
19
|
-
instance.length = 42
|
20
|
-
_(instance.length).must_equal 42
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
describe "Utility::Byte" do
|
25
|
-
let(:instance) { Utility::Byte.new }
|
26
|
-
|
27
|
-
it "has a writable field value" do
|
28
|
-
_(instance.value).must_equal 0
|
29
|
-
instance.value = 42
|
30
|
-
_(instance.value).must_equal 42
|
31
|
-
end
|
32
|
-
|
33
|
-
it "has a writable field first_nibble" do
|
34
|
-
skip "This field is not exposed in the GIR"
|
35
|
-
instance.value = 0xAB
|
36
|
-
_(instance.first_nibble).must_equal 0xA
|
37
|
-
instance.first_nibble = 0x4
|
38
|
-
_(instance.value).must_equal 0x4B
|
39
|
-
end
|
40
|
-
|
41
|
-
it "has a writable field second_nibble" do
|
42
|
-
skip "This field is not exposed in the GIR"
|
43
|
-
instance.value = 0xAB
|
44
|
-
_(instance.second_nibble).must_equal 0xB
|
45
|
-
instance.second_nibble = 0x4
|
46
|
-
_(instance.value).must_equal 0xA4
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
describe "Utility::EnumType" do
|
51
|
-
it "has the member :a" do
|
52
|
-
_(Utility::EnumType[:a]).must_equal 0
|
53
|
-
end
|
54
|
-
|
55
|
-
it "has the member :b" do
|
56
|
-
_(Utility::EnumType[:b]).must_equal 1
|
57
|
-
end
|
58
|
-
|
59
|
-
it "has the member :c" do
|
60
|
-
_(Utility::EnumType[:c]).must_equal 2
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
describe "Utility::FlagType" do
|
65
|
-
it "has the member :a" do
|
66
|
-
_(Utility::FlagType[:a]).must_equal 1
|
67
|
-
end
|
68
|
-
|
69
|
-
it "has the member :b" do
|
70
|
-
_(Utility::FlagType[:b]).must_equal 2
|
71
|
-
end
|
72
|
-
|
73
|
-
it "has the member :c" do
|
74
|
-
_(Utility::FlagType[:c]).must_equal 4
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
describe "Utility::Object" do
|
79
|
-
let(:instance) { Utility::Object.new }
|
80
|
-
|
81
|
-
it "has a working method #watch_dir" do
|
82
|
-
# This method doesn't actually do anything
|
83
|
-
instance.watch_dir("/") {}
|
84
|
-
pass
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
describe "Utility::Struct" do
|
89
|
-
let(:instance) { Utility::Struct.new }
|
90
|
-
|
91
|
-
it "has a writable field field" do
|
92
|
-
_(instance.field).must_equal 0
|
93
|
-
instance.field = 42
|
94
|
-
_(instance.field).must_equal 42
|
95
|
-
end
|
96
|
-
|
97
|
-
it "has a writable field bitfield1" do
|
98
|
-
skip "Bitfield bit width is not implemented yet"
|
99
|
-
_(instance.bitfield1).must_equal 0
|
100
|
-
instance.bitfield1 = 15
|
101
|
-
_(instance.bitfield1).must_equal 7
|
102
|
-
end
|
103
|
-
|
104
|
-
it "has a writable field bitfield2" do
|
105
|
-
skip "Bitfield bit width is not implemented yet"
|
106
|
-
_(instance.bitfield2).must_equal 0
|
107
|
-
instance.bitfield2 = 15
|
108
|
-
_(instance.bitfield2).must_equal 3
|
109
|
-
end
|
110
|
-
|
111
|
-
it "has a writable field data" do
|
112
|
-
_(instance.data.to_a).must_equal [0] * 16
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
describe "Utility::TaggedValue" do
|
117
|
-
let(:instance) { Utility::TaggedValue.new }
|
118
|
-
|
119
|
-
it "has a writable field tag" do
|
120
|
-
_(instance.tag).must_equal 0
|
121
|
-
instance.tag = 42
|
122
|
-
_(instance.tag).must_equal 42
|
123
|
-
end
|
124
|
-
|
125
|
-
it "has a writable field v_pointer" do
|
126
|
-
skip "This field is not exposed in the GIR"
|
127
|
-
_(instance.v_pointer).must_equal FFI::Pointer::NULL
|
128
|
-
instance.v_pointer = FFI::Pointer.new(4321)
|
129
|
-
_(instance.v_pointer).must_equal FFI::Pointer.new(4321)
|
130
|
-
end
|
131
|
-
|
132
|
-
it "has a writable field v_real" do
|
133
|
-
skip "This field is not exposed in the GIR"
|
134
|
-
_(instance.v_real).must_equal 0.0
|
135
|
-
instance.v_real = 42.23
|
136
|
-
_(instance.v_real).must_equal 42.23
|
137
|
-
end
|
138
|
-
|
139
|
-
it "has a writable field v_integer" do
|
140
|
-
skip "This field is not exposed in the GIR"
|
141
|
-
_(instance.v_integer).must_equal 0
|
142
|
-
instance.v_integer = 42
|
143
|
-
_(instance.v_integer).must_equal 42
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
describe "Utility::Union" do
|
148
|
-
let(:instance) { Utility::Union.new }
|
149
|
-
|
150
|
-
it "has a writable field pointer" do
|
151
|
-
_(instance.pointer).must_be_nil
|
152
|
-
instance.pointer = "hello 42"
|
153
|
-
_(instance.pointer).must_equal "hello 42"
|
154
|
-
end
|
155
|
-
|
156
|
-
it "has a writable field integer" do
|
157
|
-
_(instance.integer).must_equal 0
|
158
|
-
instance.integer = 42
|
159
|
-
_(instance.integer).must_equal 42
|
160
|
-
end
|
161
|
-
|
162
|
-
it "has a writable field real" do
|
163
|
-
_(instance.real).must_equal 0.0
|
164
|
-
instance.real = 42.23
|
165
|
-
_(instance.real).must_equal 42.23
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
it "has a working function #dir_foreach" do
|
170
|
-
# This method doesn't actually do anything
|
171
|
-
result = Utility.dir_foreach("/") {}
|
172
|
-
_(result).must_be_nil
|
173
|
-
end
|
174
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "gir_ffi_test_helper"
|
4
|
-
|
5
|
-
GirFFI.setup :WarnLib
|
6
|
-
|
7
|
-
describe "The generated WarnLib module" do
|
8
|
-
describe "WarnLib::Whatever" do
|
9
|
-
let(:derived_klass) do
|
10
|
-
Object.const_set("DerivedClass#{Sequence.next}", Class.new(GObject::Object))
|
11
|
-
end
|
12
|
-
|
13
|
-
before do
|
14
|
-
@result = nil
|
15
|
-
derived_klass.class_eval { include WarnLib::Whatever }
|
16
|
-
GirFFI.define_type derived_klass do |info|
|
17
|
-
info.install_vfunc_implementation :do_boo, proc { |_obj, x, _y| @result = "boo#{x}" }
|
18
|
-
info.install_vfunc_implementation :do_moo, proc { |_obj, x, _y| @result = "moo#{x}" }
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
let(:instance) { derived_klass.new }
|
23
|
-
|
24
|
-
it "has a working method #do_boo" do
|
25
|
-
instance.do_boo 42, nil
|
26
|
-
_(@result).must_equal "boo42"
|
27
|
-
end
|
28
|
-
|
29
|
-
it "has a working method #do_moo" do
|
30
|
-
instance.do_moo 23, nil
|
31
|
-
_(@result).must_equal "moo23"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
it "has a working function #throw_unpaired" do
|
36
|
-
_(proc { WarnLib.throw_unpaired }).must_raise GirFFI::GLibError
|
37
|
-
end
|
38
|
-
|
39
|
-
it "has a working function #unpaired_error_quark" do
|
40
|
-
result = WarnLib.unpaired_error_quark
|
41
|
-
_(GLib.quark_to_string(result)).must_equal "warnlib-unpaired-error"
|
42
|
-
end
|
43
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "gir_ffi_test_helper"
|
4
|
-
|
5
|
-
# Tests how methods are looked up and generated on first use.
|
6
|
-
describe "Looking up methods" do
|
7
|
-
before do
|
8
|
-
save_module :Regress
|
9
|
-
GirFFI.setup :Regress
|
10
|
-
end
|
11
|
-
|
12
|
-
describe "an instance method" do
|
13
|
-
it "is found from a subclass" do
|
14
|
-
assert_defines_instance_method Regress::TestObj, :forced_method
|
15
|
-
refute_defines_instance_method Regress::TestSubObj, :forced_method
|
16
|
-
|
17
|
-
sub_object = Regress::TestSubObj.new
|
18
|
-
sub_object.forced_method
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
describe "a class method" do
|
23
|
-
it "is found from a subclass" do
|
24
|
-
assert_defines_singleton_method Regress::TestObj, :static_method
|
25
|
-
refute_defines_singleton_method Regress::TestSubObj, :static_method
|
26
|
-
|
27
|
-
Regress::TestSubObj.static_method 42
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
after do
|
32
|
-
restore_module :Regress
|
33
|
-
end
|
34
|
-
end
|
@@ -1,93 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "base_test_helper"
|
4
|
-
|
5
|
-
require "ffi-gobject_introspection"
|
6
|
-
|
7
|
-
GObjectIntrospection::IRepository.prepend_search_path File.join(File.dirname(__FILE__), "lib")
|
8
|
-
|
9
|
-
module LocalSharedLibrary
|
10
|
-
def shared_library(namespace)
|
11
|
-
case namespace
|
12
|
-
when "Everything", "GIMarshallingTests", "Regress", "Utility", "WarnLib"
|
13
|
-
File.join(File.dirname(__FILE__), "lib", "lib#{namespace.downcase}.so")
|
14
|
-
else
|
15
|
-
super
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
GObjectIntrospection::IRepository.prepend LocalSharedLibrary
|
21
|
-
|
22
|
-
module IntrospectionTestExtensions
|
23
|
-
class << self
|
24
|
-
attr_accessor :version
|
25
|
-
end
|
26
|
-
|
27
|
-
def get_introspection_data(namespace, name)
|
28
|
-
gir = GObjectIntrospection::IRepository.default
|
29
|
-
gir.require namespace, nil
|
30
|
-
gir.find_by_name namespace, name
|
31
|
-
end
|
32
|
-
|
33
|
-
def get_field_introspection_data(namespace, klass, name)
|
34
|
-
get_introspection_data(namespace, klass).find_field name
|
35
|
-
end
|
36
|
-
|
37
|
-
def get_method_introspection_data(namespace, klass, name)
|
38
|
-
get_introspection_data(namespace, klass).find_method name
|
39
|
-
end
|
40
|
-
|
41
|
-
def get_property_introspection_data(namespace, klass, name)
|
42
|
-
get_introspection_data(namespace, klass).find_property name
|
43
|
-
end
|
44
|
-
|
45
|
-
def get_signal_introspection_data(namespace, klass, name)
|
46
|
-
get_introspection_data(namespace, klass).find_signal name
|
47
|
-
end
|
48
|
-
|
49
|
-
def get_vfunc_introspection_data(namespace, klass, name)
|
50
|
-
get_introspection_data(namespace, klass).find_vfunc name
|
51
|
-
end
|
52
|
-
|
53
|
-
def skip_below(introduction_version);
|
54
|
-
unless LATEST_VERSION >= introduction_version
|
55
|
-
raise "Version #{introduction_version} is too new and would always be skipped"
|
56
|
-
end
|
57
|
-
|
58
|
-
skip "Introduced in #{introduction_version}" if introduction_version > version
|
59
|
-
end
|
60
|
-
|
61
|
-
def version
|
62
|
-
IntrospectionTestExtensions.version ||= calculate_version
|
63
|
-
end
|
64
|
-
|
65
|
-
VERSION_GUARDS = {
|
66
|
-
"1.61.1" => %w(Regress TestObj emit_sig_with_error),
|
67
|
-
"1.59.4" => %w(Regress test_array_struct_in_none),
|
68
|
-
"1.58.3" => %w(Regress TestReferenceCounters),
|
69
|
-
"1.57.2" => %w(Regress TestInterface emit_signal),
|
70
|
-
"1.55.2" => %w(Regress FOO_FLAGS_SECOND_AND_THIRD),
|
71
|
-
"1.53.4" => %w(Regress TestObj name_conflict),
|
72
|
-
"1.49.1" => %w(Regress AnonymousUnionAndStruct),
|
73
|
-
"1.47.92" => %w(Regress get_variant),
|
74
|
-
"1.47.1" => %w(Regress test_noptr_callback)
|
75
|
-
}.freeze
|
76
|
-
|
77
|
-
LATEST_VERSION = VERSION_GUARDS.keys.first
|
78
|
-
|
79
|
-
def calculate_version
|
80
|
-
VERSION_GUARDS.each do |version, (namespace, klass, methodname)|
|
81
|
-
result = if methodname
|
82
|
-
get_method_introspection_data(namespace, klass, methodname)
|
83
|
-
else
|
84
|
-
get_introspection_data(namespace, klass)
|
85
|
-
end
|
86
|
-
return version if result
|
87
|
-
end
|
88
|
-
|
89
|
-
"1.46.0" # Minimum supported version
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
Minitest::Test.include IntrospectionTestExtensions
|
data/test/lib/Makefile.am
DELETED
@@ -1,110 +0,0 @@
|
|
1
|
-
ACLOCAL_AMFLAGS = -I m4
|
2
|
-
AUTOMAKE_OPTIONS = 1.7
|
3
|
-
|
4
|
-
# We need to build a shared library, which can be dlopened
|
5
|
-
# it does not work with noinst_LTLIBRARIES
|
6
|
-
testlib_LTLIBRARIES = \
|
7
|
-
libeverything.la \
|
8
|
-
libgimarshallingtests.la libregress.la libutility.la libwarnlib.la
|
9
|
-
|
10
|
-
testlibdir = $(prefix)/unused
|
11
|
-
GI_TESTDIR = $(GI_DATADIR)/tests
|
12
|
-
install-testlibLTLIBRARIES: # prevent it from being installed
|
13
|
-
|
14
|
-
libeverything_la_SOURCES = $(GI_DATADIR)/tests/everything.c $(GI_DATADIR)/tests/everything.h
|
15
|
-
libeverything_la_CFLAGS = $(GLIB_CFLAGS)
|
16
|
-
libeverything_la_LDFLAGS = -module -avoid-version
|
17
|
-
|
18
|
-
libgimarshallingtests_la_SOURCES = $(GI_DATADIR)/tests/gimarshallingtests.c $(GI_DATADIR)/tests/gimarshallingtests.h
|
19
|
-
libgimarshallingtests_la_CFLAGS = $(GIO_CFLAGS)
|
20
|
-
libgimarshallingtests_la_LDFLAGS = -module -avoid-version
|
21
|
-
|
22
|
-
libregress_la_SOURCES = $(GI_TESTDIR)/regress.c $(GI_TESTDIR)/regress.h
|
23
|
-
|
24
|
-
if HAVE_EXTRA_TEST_FILES
|
25
|
-
libregress_la_SOURCES += \
|
26
|
-
$(GI_TESTDIR)/annotation.c $(GI_TESTDIR)/annotation.h \
|
27
|
-
$(GI_TESTDIR)/foo.c $(GI_TESTDIR)/foo.h \
|
28
|
-
$(GI_TESTDIR)/drawable.c $(GI_TESTDIR)/drawable.h
|
29
|
-
endif
|
30
|
-
|
31
|
-
libregress_la_CFLAGS = $(GIO_CFLAGS) $(CAIRO_CFLAGS)
|
32
|
-
libregress_la_LDFLAGS = -module -avoid-version $(GIO_LIBS) $(CAIRO_LIBS)
|
33
|
-
|
34
|
-
if HAVE_EXTRA_TEST_FILES
|
35
|
-
libutility_la_SOURCES = $(GI_DATADIR)/tests/utility.c $(GI_DATADIR)/tests/utility.h
|
36
|
-
libutility_la_CFLAGS = $(GLIB_CFLAGS)
|
37
|
-
libutility_la_LDFLAGS = -module -avoid-version
|
38
|
-
|
39
|
-
libwarnlib_la_SOURCES = $(GI_DATADIR)/tests/warnlib.c $(GI_DATADIR)/tests/warnlib.h
|
40
|
-
libwarnlib_la_CFLAGS = $(GIO_CFLAGS)
|
41
|
-
libwarnlib_la_LDFLAGS = -module -avoid-version
|
42
|
-
endif
|
43
|
-
|
44
|
-
GIRS = Everything-1.0.gir GIMarshallingTests-1.0.gir Regress-1.0.gir
|
45
|
-
|
46
|
-
Everything-1.0.gir: libeverything.la
|
47
|
-
$(AM_V_GEN) g-ir-scanner --include=GLib-2.0 \
|
48
|
-
--namespace=$(@:-1.0.gir=) --nsversion=1.0 \
|
49
|
-
--warn-all --warn-error \
|
50
|
-
--library=$< --libtool="$(top_builddir)/libtool" \
|
51
|
-
--output $@ $(libeverything_la_SOURCES)
|
52
|
-
Everything-1.0.typelib: Everything-1.0.gir
|
53
|
-
$(AM_V_GEN) g-ir-compiler $< -o $@
|
54
|
-
|
55
|
-
GIMarshallingTests-1.0.gir: libgimarshallingtests.la
|
56
|
-
$(AM_V_GEN) g-ir-scanner --include=Gio-2.0 \
|
57
|
-
--namespace=GIMarshallingTests --nsversion=1.0 \
|
58
|
-
--symbol-prefix=gi_marshalling_tests \
|
59
|
-
--warn-all --warn-error \
|
60
|
-
--library=libgimarshallingtests.la \
|
61
|
-
--libtool="$(top_builddir)/libtool" \
|
62
|
-
--output $@ \
|
63
|
-
$(libgimarshallingtests_la_SOURCES)
|
64
|
-
GIMarshallingTests-1.0.typelib: GIMarshallingTests-1.0.gir
|
65
|
-
$(AM_V_GEN) g-ir-compiler $< -o $@
|
66
|
-
|
67
|
-
regress_SCANNER_INCLUDES= --include=cairo-1.0 --include=Gio-2.0
|
68
|
-
|
69
|
-
Regress-1.0.gir: libregress.la
|
70
|
-
$(AM_V_GEN) g-ir-scanner $(regress_SCANNER_INCLUDES) \
|
71
|
-
--namespace=Regress --nsversion=1.0 --pkg=cairo-gobject \
|
72
|
-
--warn-all --warn-error \
|
73
|
-
--library=libregress.la \
|
74
|
-
--libtool="$(top_builddir)/libtool" \
|
75
|
-
--output $@ \
|
76
|
-
$(libregress_la_SOURCES)
|
77
|
-
Regress-1.0.typelib: Regress-1.0.gir
|
78
|
-
$(AM_V_GEN) g-ir-compiler --includedir=. $< -o $@
|
79
|
-
|
80
|
-
if HAVE_EXTRA_TEST_FILES
|
81
|
-
|
82
|
-
GIRS += Utility-1.0.gir WarnLib-1.0.gir
|
83
|
-
Regress-1.0.gir: Utility-1.0.gir
|
84
|
-
regress_SCANNER_INCLUDES += --include-uninstalled=Utility-1.0.gir
|
85
|
-
|
86
|
-
Utility-1.0.gir: libutility.la
|
87
|
-
$(AM_V_GEN) g-ir-scanner --include=GLib-2.0 --include=GObject-2.0 \
|
88
|
-
--namespace=$(@:-1.0.gir=) --nsversion=1.0 \
|
89
|
-
--warn-all --warn-error \
|
90
|
-
--library=$< --libtool="$(top_builddir)/libtool" \
|
91
|
-
--output $@ $(libutility_la_SOURCES)
|
92
|
-
Utility-1.0.typelib: Utility-1.0.gir
|
93
|
-
$(AM_V_GEN) g-ir-compiler $< -o $@
|
94
|
-
|
95
|
-
WarnLib-1.0.gir: libwarnlib.la
|
96
|
-
$(AM_V_GEN) g-ir-scanner --include=Gio-2.0 \
|
97
|
-
--namespace=$(@:-1.0.gir=) --nsversion=1.0 \
|
98
|
-
--symbol-prefix=warnlib \
|
99
|
-
--warn-all \
|
100
|
-
--library=$< --libtool="$(top_builddir)/libtool" \
|
101
|
-
--output $@ $(libwarnlib_la_SOURCES)
|
102
|
-
WarnLib-1.0.typelib: WarnLib-1.0.gir
|
103
|
-
$(AM_V_GEN) g-ir-compiler $< -o $@
|
104
|
-
|
105
|
-
endif
|
106
|
-
|
107
|
-
.la.so:
|
108
|
-
test -L $@ || $(LN_S) .libs/$@ $@
|
109
|
-
|
110
|
-
all: $(testlib_LTLIBRARIES:.la=.so) $(GIRS:.gir=.typelib)
|