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.
Files changed (190) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +42 -0
  3. data/README.md +10 -10
  4. data/TODO.md +14 -35
  5. data/docs/Documentation.md +6 -0
  6. data/docs/Subclassing.md +38 -0
  7. data/lib/ffi-glib.rb +8 -3
  8. data/lib/ffi-glib/byte_array.rb +2 -1
  9. data/lib/ffi-glib/container_class_methods.rb +1 -3
  10. data/lib/ffi-glib/destroy_notify.rb +2 -2
  11. data/lib/ffi-glib/hash_table.rb +1 -2
  12. data/lib/ffi-glib/list.rb +11 -5
  13. data/lib/ffi-glib/list_methods.rb +12 -0
  14. data/lib/ffi-glib/s_list.rb +10 -4
  15. data/lib/ffi-gobject.rb +2 -5
  16. data/lib/ffi-gobject/object.rb +102 -92
  17. data/lib/ffi-gobject/object_class.rb +1 -1
  18. data/lib/ffi-gobject/ruby_closure.rb +1 -1
  19. data/lib/ffi-gobject/value.rb +108 -117
  20. data/lib/ffi-gobject_introspection/i_base_info.rb +35 -27
  21. data/lib/ffi-gobject_introspection/lib.rb +1 -1
  22. data/lib/gir_ffi-base/gobject/lib.rb +4 -0
  23. data/lib/gir_ffi/array_element_convertor.rb +2 -3
  24. data/lib/gir_ffi/boxed_base.rb +13 -11
  25. data/lib/gir_ffi/builder.rb +3 -4
  26. data/lib/gir_ffi/builder_helper.rb +10 -2
  27. data/lib/gir_ffi/builders/base_argument_builder.rb +2 -2
  28. data/lib/gir_ffi/builders/base_method_builder.rb +1 -1
  29. data/lib/gir_ffi/builders/base_type_builder.rb +1 -1
  30. data/lib/gir_ffi/builders/callback_argument_builder.rb +2 -0
  31. data/lib/gir_ffi/builders/callback_builder.rb +25 -11
  32. data/lib/gir_ffi/builders/callback_return_value_builder.rb +4 -6
  33. data/lib/gir_ffi/builders/enum_builder.rb +9 -5
  34. data/lib/gir_ffi/builders/field_builder.rb +2 -1
  35. data/lib/gir_ffi/builders/function_builder.rb +1 -1
  36. data/lib/gir_ffi/builders/interface_builder.rb +3 -1
  37. data/lib/gir_ffi/builders/mapping_method_builder.rb +1 -1
  38. data/lib/gir_ffi/builders/marshalling_method_builder.rb +5 -2
  39. data/lib/gir_ffi/builders/method_template.rb +4 -4
  40. data/lib/gir_ffi/builders/module_builder.rb +4 -2
  41. data/lib/gir_ffi/builders/null_argument_builder.rb +0 -2
  42. data/lib/gir_ffi/builders/null_return_value_builder.rb +0 -2
  43. data/lib/gir_ffi/builders/object_builder.rb +18 -6
  44. data/lib/gir_ffi/builders/property_builder.rb +1 -2
  45. data/lib/gir_ffi/builders/signal_closure_builder.rb +3 -5
  46. data/lib/gir_ffi/builders/struct_builder.rb +34 -7
  47. data/lib/gir_ffi/builders/user_defined_builder.rb +8 -1
  48. data/lib/gir_ffi/builders/vfunc_argument_builder.rb +1 -1
  49. data/lib/gir_ffi/callback_base.rb +7 -8
  50. data/lib/gir_ffi/class_base.rb +1 -0
  51. data/lib/gir_ffi/core.rb +17 -2
  52. data/lib/gir_ffi/glib_error.rb +1 -2
  53. data/lib/gir_ffi/in_pointer.rb +7 -0
  54. data/lib/gir_ffi/object_base.rb +27 -0
  55. data/lib/gir_ffi/return_value_info.rb +1 -2
  56. data/lib/gir_ffi/struct_base.rb +1 -9
  57. data/lib/gir_ffi/struct_like_base.rb +9 -5
  58. data/lib/gir_ffi/type_map.rb +1 -0
  59. data/lib/gir_ffi/unintrospectable_type_info.rb +1 -1
  60. data/lib/gir_ffi/union_base.rb +1 -9
  61. data/lib/gir_ffi/user_defined_object_info.rb +3 -2
  62. data/lib/gir_ffi/version.rb +1 -1
  63. data/lib/gir_ffi/vfunc_implementation.rb +1 -0
  64. metadata +106 -143
  65. data/Gemfile +0 -14
  66. data/Rakefile +0 -9
  67. data/tasks/test.rake +0 -204
  68. data/test/base_test_helper.rb +0 -70
  69. data/test/ffi-glib/array_test.rb +0 -203
  70. data/test/ffi-glib/byte_array_test.rb +0 -28
  71. data/test/ffi-glib/bytes_test.rb +0 -61
  72. data/test/ffi-glib/closure_test.rb +0 -38
  73. data/test/ffi-glib/destroy_notify_test.rb +0 -18
  74. data/test/ffi-glib/hash_table_test.rb +0 -68
  75. data/test/ffi-glib/list_test.rb +0 -86
  76. data/test/ffi-glib/main_loop_test.rb +0 -53
  77. data/test/ffi-glib/ptr_array_test.rb +0 -112
  78. data/test/ffi-glib/ruby_closure_test.rb +0 -62
  79. data/test/ffi-glib/s_list_test.rb +0 -76
  80. data/test/ffi-glib/strv_test.rb +0 -60
  81. data/test/ffi-glib/variant_test.rb +0 -12
  82. data/test/ffi-gobject/gobject_test.rb +0 -76
  83. data/test/ffi-gobject/object_class_test.rb +0 -31
  84. data/test/ffi-gobject/object_test.rb +0 -122
  85. data/test/ffi-gobject/param_spec_test.rb +0 -32
  86. data/test/ffi-gobject/value_test.rb +0 -390
  87. data/test/ffi-gobject_introspection/gobject_type_init_test.rb +0 -26
  88. data/test/ffi-gobject_introspection/i_base_info_test.rb +0 -52
  89. data/test/ffi-gobject_introspection/i_constant_info_test.rb +0 -29
  90. data/test/ffi-gobject_introspection/i_enum_info_test.rb +0 -18
  91. data/test/ffi-gobject_introspection/i_function_info_test.rb +0 -6
  92. data/test/ffi-gobject_introspection/i_interface_info_test.rb +0 -23
  93. data/test/ffi-gobject_introspection/i_object_info_test.rb +0 -49
  94. data/test/ffi-gobject_introspection/i_property_info_test.rb +0 -47
  95. data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +0 -27
  96. data/test/ffi-gobject_introspection/i_repository_test.rb +0 -81
  97. data/test/ffi-gobject_introspection/i_struct_info_test.rb +0 -23
  98. data/test/ffi-gobject_introspection/i_type_info_test.rb +0 -30
  99. data/test/ffi-gobject_introspection/i_union_info_test.rb +0 -17
  100. data/test/ffi-gobject_introspection/i_vfunc_info_test.rb +0 -41
  101. data/test/ffi-gobject_introspection/lib_test.rb +0 -13
  102. data/test/ffi-gobject_introspection/strv_test.rb +0 -46
  103. data/test/ffi-gobject_test.rb +0 -151
  104. data/test/gir_ffi/allocation_helper_test.rb +0 -36
  105. data/test/gir_ffi/arg_helper_test.rb +0 -139
  106. data/test/gir_ffi/boolean_test.rb +0 -43
  107. data/test/gir_ffi/boxed_base_test.rb +0 -65
  108. data/test/gir_ffi/builder_test.rb +0 -322
  109. data/test/gir_ffi/builders/argument_builder_test.rb +0 -651
  110. data/test/gir_ffi/builders/base_argument_builder_test.rb +0 -6
  111. data/test/gir_ffi/builders/callback_argument_builder_test.rb +0 -126
  112. data/test/gir_ffi/builders/callback_builder_test.rb +0 -117
  113. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +0 -81
  114. data/test/gir_ffi/builders/constant_builder_test.rb +0 -6
  115. data/test/gir_ffi/builders/constructor_builder_test.rb +0 -37
  116. data/test/gir_ffi/builders/enum_builder_test.rb +0 -23
  117. data/test/gir_ffi/builders/field_builder_test.rb +0 -134
  118. data/test/gir_ffi/builders/function_builder_test.rb +0 -550
  119. data/test/gir_ffi/builders/initializer_builder_test.rb +0 -54
  120. data/test/gir_ffi/builders/interface_builder_test.rb +0 -32
  121. data/test/gir_ffi/builders/module_builder_test.rb +0 -43
  122. data/test/gir_ffi/builders/object_builder_test.rb +0 -98
  123. data/test/gir_ffi/builders/property_builder_test.rb +0 -158
  124. data/test/gir_ffi/builders/registered_type_builder_test.rb +0 -54
  125. data/test/gir_ffi/builders/return_value_builder_test.rb +0 -433
  126. data/test/gir_ffi/builders/signal_closure_builder_test.rb +0 -197
  127. data/test/gir_ffi/builders/struct_builder_test.rb +0 -93
  128. data/test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb +0 -29
  129. data/test/gir_ffi/builders/unintrospectable_builder_test.rb +0 -84
  130. data/test/gir_ffi/builders/union_builder_test.rb +0 -28
  131. data/test/gir_ffi/builders/user_defined_builder_test.rb +0 -524
  132. data/test/gir_ffi/builders/vfunc_argument_builder_test.rb +0 -101
  133. data/test/gir_ffi/builders/vfunc_builder_test.rb +0 -241
  134. data/test/gir_ffi/callback_base_test.rb +0 -22
  135. data/test/gir_ffi/class_base_test.rb +0 -166
  136. data/test/gir_ffi/core_test.rb +0 -98
  137. data/test/gir_ffi/enum_base_test.rb +0 -43
  138. data/test/gir_ffi/error_type_info_test.rb +0 -50
  139. data/test/gir_ffi/ffi_ext/pointer_test.rb +0 -20
  140. data/test/gir_ffi/g_type_test.rb +0 -31
  141. data/test/gir_ffi/in_pointer_test.rb +0 -203
  142. data/test/gir_ffi/info_ext/i_callable_info_test.rb +0 -26
  143. data/test/gir_ffi/info_ext/i_callback_info_test.rb +0 -21
  144. data/test/gir_ffi/info_ext/i_field_info_test.rb +0 -37
  145. data/test/gir_ffi/info_ext/i_function_info_test.rb +0 -74
  146. data/test/gir_ffi/info_ext/i_signal_info_test.rb +0 -32
  147. data/test/gir_ffi/info_ext/i_type_info_test.rb +0 -711
  148. data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +0 -19
  149. data/test/gir_ffi/info_ext/safe_constant_name_test.rb +0 -26
  150. data/test/gir_ffi/info_ext/safe_function_name_test.rb +0 -26
  151. data/test/gir_ffi/interface_base_test.rb +0 -20
  152. data/test/gir_ffi/method_stubber_test.rb +0 -65
  153. data/test/gir_ffi/object_base_test.rb +0 -64
  154. data/test/gir_ffi/object_store_test.rb +0 -41
  155. data/test/gir_ffi/receiver_argument_info_test.rb +0 -33
  156. data/test/gir_ffi/sized_array_test.rb +0 -206
  157. data/test/gir_ffi/struct_base_test.rb +0 -23
  158. data/test/gir_ffi/struct_like_base_test.rb +0 -167
  159. data/test/gir_ffi/type_map_test.rb +0 -17
  160. data/test/gir_ffi/unintrospectable_type_info_test.rb +0 -121
  161. data/test/gir_ffi/union_base_test.rb +0 -23
  162. data/test/gir_ffi/user_defined_object_info_test.rb +0 -119
  163. data/test/gir_ffi/user_defined_property_info_test.rb +0 -39
  164. data/test/gir_ffi/variable_name_generator_test.rb +0 -18
  165. data/test/gir_ffi/version_test.rb +0 -9
  166. data/test/gir_ffi/zero_terminated_test.rb +0 -108
  167. data/test/gir_ffi_test_helper.rb +0 -84
  168. data/test/integration/callback_exceptions_test.rb +0 -59
  169. data/test/integration/derived_classes_test.rb +0 -53
  170. data/test/integration/generated_everything_test.rb +0 -452
  171. data/test/integration/generated_gimarshallingtests_test.rb +0 -3096
  172. data/test/integration/generated_gio_test.rb +0 -116
  173. data/test/integration/generated_glib_test.rb +0 -10
  174. data/test/integration/generated_gobject_test.rb +0 -124
  175. data/test/integration/generated_gst_test.rb +0 -38
  176. data/test/integration/generated_gtk_source_test.rb +0 -32
  177. data/test/integration/generated_gtop_test.rb +0 -22
  178. data/test/integration/generated_pango_ft2_test.rb +0 -17
  179. data/test/integration/generated_pango_test.rb +0 -24
  180. data/test/integration/generated_regress_test.rb +0 -4038
  181. data/test/integration/generated_secret_test.rb +0 -14
  182. data/test/integration/generated_utility_test.rb +0 -174
  183. data/test/integration/generated_warnlib_test.rb +0 -43
  184. data/test/integration/method_lookup_test.rb +0 -34
  185. data/test/introspection_test_helper.rb +0 -93
  186. data/test/lib/Makefile.am +0 -110
  187. data/test/lib/autogen.sh +0 -4
  188. data/test/lib/configure.ac +0 -34
  189. data/test/lib/m4/jhflags.m4 +0 -21
  190. 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
@@ -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)