gir_ffi 0.15.3 → 0.15.4

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 (183) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +15 -0
  3. data/README.md +5 -6
  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/destroy_notify.rb +2 -2
  10. data/lib/ffi-glib/hash_table.rb +1 -2
  11. data/lib/ffi-glib/list.rb +11 -5
  12. data/lib/ffi-glib/list_methods.rb +12 -0
  13. data/lib/ffi-glib/s_list.rb +10 -4
  14. data/lib/ffi-gobject.rb +0 -3
  15. data/lib/ffi-gobject/object.rb +77 -73
  16. data/lib/ffi-gobject/object_class.rb +1 -1
  17. data/lib/ffi-gobject/value.rb +107 -108
  18. data/lib/ffi-gobject_introspection/i_base_info.rb +20 -19
  19. data/lib/gir_ffi-base/gobject/lib.rb +4 -0
  20. data/lib/gir_ffi/array_element_convertor.rb +1 -2
  21. data/lib/gir_ffi/boxed_base.rb +1 -5
  22. data/lib/gir_ffi/builder.rb +1 -1
  23. data/lib/gir_ffi/builder_helper.rb +7 -4
  24. data/lib/gir_ffi/builders/base_argument_builder.rb +2 -2
  25. data/lib/gir_ffi/builders/base_method_builder.rb +1 -1
  26. data/lib/gir_ffi/builders/base_type_builder.rb +1 -1
  27. data/lib/gir_ffi/builders/callback_argument_builder.rb +2 -0
  28. data/lib/gir_ffi/builders/callback_builder.rb +14 -12
  29. data/lib/gir_ffi/builders/callback_return_value_builder.rb +4 -6
  30. data/lib/gir_ffi/builders/class_struct_builder.rb +24 -0
  31. data/lib/gir_ffi/builders/enum_builder.rb +3 -3
  32. data/lib/gir_ffi/builders/interface_builder.rb +3 -1
  33. data/lib/gir_ffi/builders/mapping_method_builder.rb +1 -1
  34. data/lib/gir_ffi/builders/marshalling_method_builder.rb +5 -2
  35. data/lib/gir_ffi/builders/method_template.rb +4 -4
  36. data/lib/gir_ffi/builders/null_argument_builder.rb +0 -2
  37. data/lib/gir_ffi/builders/null_return_value_builder.rb +0 -2
  38. data/lib/gir_ffi/builders/object_builder.rb +16 -6
  39. data/lib/gir_ffi/builders/property_builder.rb +1 -2
  40. data/lib/gir_ffi/builders/signal_closure_builder.rb +3 -5
  41. data/lib/gir_ffi/builders/struct_builder.rb +5 -5
  42. data/lib/gir_ffi/builders/user_defined_builder.rb +8 -1
  43. data/lib/gir_ffi/builders/vfunc_argument_builder.rb +1 -1
  44. data/lib/gir_ffi/callback_base.rb +3 -3
  45. data/lib/gir_ffi/core.rb +17 -2
  46. data/lib/gir_ffi/glib_error.rb +1 -2
  47. data/lib/gir_ffi/in_pointer.rb +7 -0
  48. data/lib/gir_ffi/object_base.rb +27 -0
  49. data/lib/gir_ffi/return_value_info.rb +1 -2
  50. data/lib/gir_ffi/struct_base.rb +1 -9
  51. data/lib/gir_ffi/struct_like_base.rb +9 -5
  52. data/lib/gir_ffi/unintrospectable_type_info.rb +1 -1
  53. data/lib/gir_ffi/union_base.rb +1 -9
  54. data/lib/gir_ffi/user_defined_object_info.rb +3 -2
  55. data/lib/gir_ffi/version.rb +1 -1
  56. data/lib/gir_ffi/vfunc_implementation.rb +1 -0
  57. metadata +86 -136
  58. data/Gemfile +0 -14
  59. data/Rakefile +0 -9
  60. data/tasks/test.rake +0 -204
  61. data/test/base_test_helper.rb +0 -70
  62. data/test/ffi-glib/array_test.rb +0 -203
  63. data/test/ffi-glib/byte_array_test.rb +0 -28
  64. data/test/ffi-glib/bytes_test.rb +0 -61
  65. data/test/ffi-glib/closure_test.rb +0 -38
  66. data/test/ffi-glib/destroy_notify_test.rb +0 -18
  67. data/test/ffi-glib/hash_table_test.rb +0 -68
  68. data/test/ffi-glib/list_test.rb +0 -86
  69. data/test/ffi-glib/main_loop_test.rb +0 -53
  70. data/test/ffi-glib/ptr_array_test.rb +0 -112
  71. data/test/ffi-glib/ruby_closure_test.rb +0 -62
  72. data/test/ffi-glib/s_list_test.rb +0 -76
  73. data/test/ffi-glib/strv_test.rb +0 -60
  74. data/test/ffi-glib/variant_test.rb +0 -12
  75. data/test/ffi-gobject/gobject_test.rb +0 -76
  76. data/test/ffi-gobject/object_class_test.rb +0 -31
  77. data/test/ffi-gobject/object_test.rb +0 -123
  78. data/test/ffi-gobject/param_spec_test.rb +0 -32
  79. data/test/ffi-gobject/value_test.rb +0 -390
  80. data/test/ffi-gobject_introspection/gobject_type_init_test.rb +0 -26
  81. data/test/ffi-gobject_introspection/i_base_info_test.rb +0 -52
  82. data/test/ffi-gobject_introspection/i_constant_info_test.rb +0 -29
  83. data/test/ffi-gobject_introspection/i_enum_info_test.rb +0 -18
  84. data/test/ffi-gobject_introspection/i_function_info_test.rb +0 -6
  85. data/test/ffi-gobject_introspection/i_interface_info_test.rb +0 -23
  86. data/test/ffi-gobject_introspection/i_object_info_test.rb +0 -49
  87. data/test/ffi-gobject_introspection/i_property_info_test.rb +0 -47
  88. data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +0 -27
  89. data/test/ffi-gobject_introspection/i_repository_test.rb +0 -81
  90. data/test/ffi-gobject_introspection/i_struct_info_test.rb +0 -23
  91. data/test/ffi-gobject_introspection/i_type_info_test.rb +0 -30
  92. data/test/ffi-gobject_introspection/i_union_info_test.rb +0 -17
  93. data/test/ffi-gobject_introspection/i_vfunc_info_test.rb +0 -41
  94. data/test/ffi-gobject_introspection/lib_test.rb +0 -13
  95. data/test/ffi-gobject_introspection/strv_test.rb +0 -46
  96. data/test/ffi-gobject_test.rb +0 -153
  97. data/test/gir_ffi/allocation_helper_test.rb +0 -36
  98. data/test/gir_ffi/arg_helper_test.rb +0 -146
  99. data/test/gir_ffi/boolean_test.rb +0 -43
  100. data/test/gir_ffi/boxed_base_test.rb +0 -65
  101. data/test/gir_ffi/builder_test.rb +0 -168
  102. data/test/gir_ffi/builders/argument_builder_test.rb +0 -691
  103. data/test/gir_ffi/builders/base_argument_builder_test.rb +0 -6
  104. data/test/gir_ffi/builders/callback_argument_builder_test.rb +0 -130
  105. data/test/gir_ffi/builders/callback_builder_test.rb +0 -117
  106. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +0 -84
  107. data/test/gir_ffi/builders/constant_builder_test.rb +0 -6
  108. data/test/gir_ffi/builders/constructor_builder_test.rb +0 -39
  109. data/test/gir_ffi/builders/enum_builder_test.rb +0 -23
  110. data/test/gir_ffi/builders/field_builder_test.rb +0 -140
  111. data/test/gir_ffi/builders/function_builder_test.rb +0 -570
  112. data/test/gir_ffi/builders/initializer_builder_test.rb +0 -56
  113. data/test/gir_ffi/builders/interface_builder_test.rb +0 -32
  114. data/test/gir_ffi/builders/module_builder_test.rb +0 -43
  115. data/test/gir_ffi/builders/object_builder_test.rb +0 -98
  116. data/test/gir_ffi/builders/property_builder_test.rb +0 -161
  117. data/test/gir_ffi/builders/registered_type_builder_test.rb +0 -54
  118. data/test/gir_ffi/builders/return_value_builder_test.rb +0 -444
  119. data/test/gir_ffi/builders/signal_closure_builder_test.rb +0 -199
  120. data/test/gir_ffi/builders/struct_builder_test.rb +0 -96
  121. data/test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb +0 -29
  122. data/test/gir_ffi/builders/unintrospectable_builder_test.rb +0 -84
  123. data/test/gir_ffi/builders/union_builder_test.rb +0 -28
  124. data/test/gir_ffi/builders/user_defined_builder_test.rb +0 -528
  125. data/test/gir_ffi/builders/vfunc_argument_builder_test.rb +0 -107
  126. data/test/gir_ffi/builders/vfunc_builder_test.rb +0 -245
  127. data/test/gir_ffi/callback_base_test.rb +0 -22
  128. data/test/gir_ffi/class_base_test.rb +0 -171
  129. data/test/gir_ffi/core_test.rb +0 -99
  130. data/test/gir_ffi/enum_base_test.rb +0 -43
  131. data/test/gir_ffi/error_type_info_test.rb +0 -50
  132. data/test/gir_ffi/ffi_ext/pointer_test.rb +0 -22
  133. data/test/gir_ffi/g_type_test.rb +0 -31
  134. data/test/gir_ffi/in_pointer_test.rb +0 -203
  135. data/test/gir_ffi/info_ext/i_callable_info_test.rb +0 -26
  136. data/test/gir_ffi/info_ext/i_callback_info_test.rb +0 -22
  137. data/test/gir_ffi/info_ext/i_field_info_test.rb +0 -37
  138. data/test/gir_ffi/info_ext/i_function_info_test.rb +0 -74
  139. data/test/gir_ffi/info_ext/i_signal_info_test.rb +0 -32
  140. data/test/gir_ffi/info_ext/i_type_info_test.rb +0 -712
  141. data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +0 -19
  142. data/test/gir_ffi/info_ext/safe_constant_name_test.rb +0 -26
  143. data/test/gir_ffi/info_ext/safe_function_name_test.rb +0 -26
  144. data/test/gir_ffi/interface_base_test.rb +0 -20
  145. data/test/gir_ffi/method_stubber_test.rb +0 -67
  146. data/test/gir_ffi/object_base_test.rb +0 -64
  147. data/test/gir_ffi/object_store_test.rb +0 -41
  148. data/test/gir_ffi/receiver_argument_info_test.rb +0 -33
  149. data/test/gir_ffi/sized_array_test.rb +0 -206
  150. data/test/gir_ffi/struct_base_test.rb +0 -23
  151. data/test/gir_ffi/struct_like_base_test.rb +0 -167
  152. data/test/gir_ffi/type_map_test.rb +0 -17
  153. data/test/gir_ffi/unintrospectable_type_info_test.rb +0 -121
  154. data/test/gir_ffi/union_base_test.rb +0 -23
  155. data/test/gir_ffi/user_defined_object_info_test.rb +0 -119
  156. data/test/gir_ffi/user_defined_property_info_test.rb +0 -39
  157. data/test/gir_ffi/variable_name_generator_test.rb +0 -18
  158. data/test/gir_ffi/version_test.rb +0 -9
  159. data/test/gir_ffi/zero_terminated_test.rb +0 -108
  160. data/test/gir_ffi_test_helper.rb +0 -84
  161. data/test/integration/callback_exceptions_test.rb +0 -59
  162. data/test/integration/derived_classes_test.rb +0 -54
  163. data/test/integration/generated_everything_test.rb +0 -453
  164. data/test/integration/generated_gimarshallingtests_test.rb +0 -3109
  165. data/test/integration/generated_gio_test.rb +0 -116
  166. data/test/integration/generated_glib_test.rb +0 -10
  167. data/test/integration/generated_gobject_test.rb +0 -124
  168. data/test/integration/generated_gst_test.rb +0 -38
  169. data/test/integration/generated_gtk_source_test.rb +0 -21
  170. data/test/integration/generated_gtop_test.rb +0 -22
  171. data/test/integration/generated_pango_ft2_test.rb +0 -17
  172. data/test/integration/generated_pango_test.rb +0 -24
  173. data/test/integration/generated_regress_test.rb +0 -4076
  174. data/test/integration/generated_secret_test.rb +0 -14
  175. data/test/integration/generated_utility_test.rb +0 -174
  176. data/test/integration/generated_warnlib_test.rb +0 -45
  177. data/test/integration/method_lookup_test.rb +0 -34
  178. data/test/introspection_test_helper.rb +0 -94
  179. data/test/lib/Makefile.am +0 -110
  180. data/test/lib/autogen.sh +0 -4
  181. data/test/lib/configure.ac +0 -34
  182. data/test/lib/m4/jhflags.m4 +0 -21
  183. 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,45 +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,
18
- proc { |_obj, x, _y| @result = "boo#{x}" }
19
- info.install_vfunc_implementation :do_moo,
20
- proc { |_obj, x, _y| @result = "moo#{x}" }
21
- end
22
- end
23
-
24
- let(:instance) { derived_klass.new }
25
-
26
- it "has a working method #do_boo" do
27
- instance.do_boo 42, nil
28
- _(@result).must_equal "boo42"
29
- end
30
-
31
- it "has a working method #do_moo" do
32
- instance.do_moo 23, nil
33
- _(@result).must_equal "moo23"
34
- end
35
- end
36
-
37
- it "has a working function #throw_unpaired" do
38
- _(proc { WarnLib.throw_unpaired }).must_raise GirFFI::GLibError
39
- end
40
-
41
- it "has a working function #unpaired_error_quark" do
42
- result = WarnLib.unpaired_error_quark
43
- _(GLib.quark_to_string(result)).must_equal "warnlib-unpaired-error"
44
- end
45
- 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,94 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "base_test_helper"
4
-
5
- require "ffi-gobject_introspection"
6
-
7
- GObjectIntrospection::IRepository
8
- .prepend_search_path File.join(File.dirname(__FILE__), "lib")
9
-
10
- module LocalSharedLibrary
11
- def shared_library(namespace)
12
- case namespace
13
- when "Everything", "GIMarshallingTests", "Regress", "Utility", "WarnLib"
14
- File.join(File.dirname(__FILE__), "lib", "lib#{namespace.downcase}.so")
15
- else
16
- super
17
- end
18
- end
19
- end
20
-
21
- GObjectIntrospection::IRepository.prepend LocalSharedLibrary
22
-
23
- module IntrospectionTestExtensions
24
- class << self
25
- attr_accessor :version
26
- end
27
-
28
- def get_introspection_data(namespace, name)
29
- gir = GObjectIntrospection::IRepository.default
30
- gir.require namespace, nil
31
- gir.find_by_name namespace, name
32
- end
33
-
34
- def get_field_introspection_data(namespace, klass, name)
35
- get_introspection_data(namespace, klass).find_field name
36
- end
37
-
38
- def get_method_introspection_data(namespace, klass, name)
39
- get_introspection_data(namespace, klass).find_method name
40
- end
41
-
42
- def get_property_introspection_data(namespace, klass, name)
43
- get_introspection_data(namespace, klass).find_property name
44
- end
45
-
46
- def get_signal_introspection_data(namespace, klass, name)
47
- get_introspection_data(namespace, klass).find_signal name
48
- end
49
-
50
- def get_vfunc_introspection_data(namespace, klass, name)
51
- get_introspection_data(namespace, klass).find_vfunc name
52
- end
53
-
54
- def skip_below(introduction_version)
55
- unless LATEST_VERSION >= introduction_version
56
- raise "Version #{introduction_version} is too new and would always be skipped"
57
- end
58
-
59
- skip "Introduced in #{introduction_version}" if introduction_version > version
60
- end
61
-
62
- def version
63
- IntrospectionTestExtensions.version ||= calculate_version
64
- end
65
-
66
- VERSION_GUARDS = {
67
- "1.61.1" => %w(Regress TestObj emit_sig_with_error),
68
- "1.59.4" => %w(Regress test_array_struct_in_none),
69
- "1.58.3" => %w(Regress TestReferenceCounters),
70
- "1.57.2" => %w(Regress TestInterface emit_signal),
71
- "1.55.2" => %w(Regress FOO_FLAGS_SECOND_AND_THIRD),
72
- "1.53.4" => %w(Regress TestObj name_conflict),
73
- "1.49.1" => %w(Regress AnonymousUnionAndStruct),
74
- "1.47.92" => %w(Regress get_variant),
75
- "1.47.1" => %w(Regress test_noptr_callback)
76
- }.freeze
77
-
78
- LATEST_VERSION = VERSION_GUARDS.keys.first
79
-
80
- def calculate_version
81
- VERSION_GUARDS.each do |version, (namespace, klass, methodname)|
82
- result = if methodname
83
- get_method_introspection_data(namespace, klass, methodname)
84
- else
85
- get_introspection_data(namespace, klass)
86
- end
87
- return version if result
88
- end
89
-
90
- "1.46.0" # Minimum supported version
91
- end
92
- end
93
-
94
- 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)