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,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IConstantInfo do
6
- describe "for GLib::USEC_PER_SEC, a constant of type :gint32" do
7
- let(:constant_info) { get_introspection_data "GLib", "USEC_PER_SEC" }
8
-
9
- it "returns :gint32 as its type" do
10
- assert_equal :gint32, constant_info.constant_type.tag
11
- end
12
-
13
- it "returns 1_000_000 as its value" do
14
- assert_equal 1_000_000, constant_info.value
15
- end
16
- end
17
-
18
- describe "for GLib::SOURCE_CONTINUE, a constant of type :gboolean" do
19
- let(:constant_info) { get_introspection_data "GLib", "SOURCE_CONTINUE" }
20
-
21
- it "returns :gboolean as its type" do
22
- assert_equal :gboolean, constant_info.constant_type.tag
23
- end
24
-
25
- it "returns true as its value" do
26
- assert_equal true, constant_info.value
27
- end
28
- end
29
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IEnumInfo do
6
- describe "#find_method" do
7
- before do
8
- gir = GObjectIntrospection::IRepository.default
9
- gir.require "Regress", nil
10
- @info = gir.find_by_name "Regress", "TestEnum"
11
- end
12
-
13
- it "finds a method by name" do
14
- result = @info.find_method("param")
15
- _(result.name).must_equal "param"
16
- end
17
- end
18
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IFunctionInfo do
6
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IInterfaceInfo do
6
- let(:object_info) { get_introspection_data("GObject", "TypePlugin") }
7
-
8
- describe "#find_method" do
9
- it "finds a method by name string" do
10
- _(object_info.find_method("complete_interface_info")).wont_be_nil
11
- end
12
-
13
- it "finds a method by name symbol" do
14
- _(object_info.find_method(:complete_interface_info)).wont_be_nil
15
- end
16
- end
17
-
18
- describe "#type_name" do
19
- it "returns the correct name" do
20
- _(object_info.type_name).must_equal "GTypePlugin"
21
- end
22
- end
23
- end
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IObjectInfo do
6
- let(:object_info) { get_introspection_data("GObject", "Object") }
7
-
8
- describe "#find_vfunc" do
9
- it "finds a vfunc by name string" do
10
- _(object_info.find_vfunc("finalize")).wont_be_nil
11
- end
12
-
13
- it "finds a vfunc by name symbol" do
14
- _(object_info.find_vfunc(:finalize)).wont_be_nil
15
- end
16
- end
17
-
18
- describe "#find_method" do
19
- it "finds a method by name string" do
20
- _(object_info.find_method("bind_property")).wont_be_nil
21
- end
22
-
23
- it "finds a method by name symbol" do
24
- _(object_info.find_method(:bind_property)).wont_be_nil
25
- end
26
- end
27
-
28
- describe "#find_property" do
29
- let(:object_info) { get_introspection_data("GObject", "Binding") }
30
-
31
- it "finds a property by name string" do
32
- _(object_info.find_property("source-property")).wont_be_nil
33
- end
34
-
35
- it "finds a property by snake case string" do
36
- _(object_info.find_property("source_property")).wont_be_nil
37
- end
38
-
39
- it "finds a property by name symbol" do
40
- _(object_info.find_property(:source)).wont_be_nil
41
- end
42
- end
43
-
44
- describe "#type_name" do
45
- it "returns the correct name" do
46
- _(object_info.type_name).must_equal "GObject"
47
- end
48
- end
49
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IPropertyInfo do
6
- describe "for Regress::TestObj's 'double' property" do
7
- let(:property_info) { get_property_introspection_data "Regress", "TestObj", "double" }
8
-
9
- it "returns :gdouble as its type" do
10
- _(property_info.property_type.tag).must_equal :gdouble
11
- end
12
-
13
- it "flags the property as readable" do
14
- _(property_info.readable?).must_equal true
15
- end
16
-
17
- it "flags the property as writeable" do
18
- _(property_info.writeable?).must_equal true
19
- end
20
-
21
- it "flags the property as not construct-only" do
22
- _(property_info.construct_only?).must_equal false
23
- end
24
- end
25
-
26
- describe "for GObject::Binding's 'target-property' property" do
27
- let(:property_info) do
28
- get_property_introspection_data "GObject", "Binding", "target-property"
29
- end
30
-
31
- it "returns :utf8 as its type" do
32
- _(property_info.property_type.tag).must_equal :utf8
33
- end
34
-
35
- it "flags the property as readable" do
36
- _(property_info.readable?).must_equal true
37
- end
38
-
39
- it "flags the property as writeable" do
40
- _(property_info.writeable?).must_equal true
41
- end
42
-
43
- it "flags the property as construct-only" do
44
- _(property_info.construct_only?).must_equal true
45
- end
46
- end
47
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IRegisteredTypeInfo do
6
- describe "#get_type_name" do
7
- describe "for an interface" do
8
- let(:registered_type_info) do
9
- get_introspection_data("GIMarshallingTests", "Interface")
10
- end
11
-
12
- it "returns interface name" do
13
- _(registered_type_info.type_name).must_equal "GIMarshallingTestsInterface"
14
- end
15
- end
16
-
17
- describe "for a type that is not an interface" do
18
- let(:registered_type_info) do
19
- get_introspection_data("GIMarshallingTests", "Enum")
20
- end
21
-
22
- it "returns nil" do
23
- _(registered_type_info.type_name).must_be_nil
24
- end
25
- end
26
- end
27
- end
@@ -1,81 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IRepository do
6
- let(:gir) { GObjectIntrospection::IRepository.default }
7
-
8
- describe "an instance" do
9
- it "is not created by calling new()" do
10
- assert_raises NoMethodError do
11
- GObjectIntrospection::IRepository.new
12
- end
13
- end
14
-
15
- it "is created by calling default()" do
16
- assert_kind_of GObjectIntrospection::IRepository, gir
17
- end
18
-
19
- it "is a singleton" do
20
- gir2 = GObjectIntrospection::IRepository.default
21
- assert_equal gir, gir2
22
- end
23
- end
24
-
25
- describe "#require" do
26
- it "raises an error if the namespace doesn't exist" do
27
- assert_raises RuntimeError do
28
- gir.require "VeryUnlikelyGObjectNamespaceName", nil
29
- end
30
- end
31
-
32
- it "allows version to be nil" do
33
- gir.require "GObject", nil
34
- pass
35
- end
36
-
37
- it "allows version to be left out" do
38
- gir.require "GObject"
39
- pass
40
- end
41
- end
42
-
43
- describe "#find_by_gtype" do
44
- it "raises an error if 0 is passed as the gtype" do
45
- _(proc { gir.find_by_gtype 0 }).must_raise ArgumentError
46
- end
47
- end
48
-
49
- describe "#n_infos" do
50
- it "yields more than one object for the GObject namespace" do
51
- gir.require "GObject", "2.0"
52
- assert_operator gir.n_infos("GObject"), :>, 0
53
- end
54
- end
55
-
56
- describe "#info" do
57
- it "yields IBaseInfo objects" do
58
- gir.require "GObject", "2.0"
59
- assert_kind_of GObjectIntrospection::IBaseInfo, gir.info("GObject", 0)
60
- end
61
- end
62
-
63
- describe "#dependencies" do
64
- it "returns a list of dependencies of the given namespace" do
65
- gir.require "GObject", "2.0"
66
- result = gir.dependencies("GObject")
67
- _(result).must_equal ["GLib-2.0"]
68
- end
69
-
70
- it "passes its struct pointer to the c function just in case" do
71
- gir.require "GObject", "2.0"
72
- allow(GObjectIntrospection::Lib).to receive(:g_irepository_get_dependencies)
73
- .and_call_original
74
-
75
- gir.dependencies("GObject")
76
-
77
- expect(GObjectIntrospection::Lib).to have_received(:g_irepository_get_dependencies)
78
- .with(gir, "GObject")
79
- end
80
- end
81
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IStructInfo do
6
- let(:object_info) { get_introspection_data("GObject", "Closure") }
7
-
8
- describe "#find_method" do
9
- it "finds a method by name string" do
10
- _(object_info.find_method("new_simple")).wont_be_nil
11
- end
12
-
13
- it "finds a method by name symbol" do
14
- _(object_info.find_method(:new_simple)).wont_be_nil
15
- end
16
- end
17
-
18
- describe "#type_name" do
19
- it "returns the correct name" do
20
- _(object_info.type_name).must_equal "GClosure"
21
- end
22
- end
23
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::ITypeInfo do
6
- describe "#name?" do
7
- let(:object_info) { get_introspection_data("GIMarshallingTests", "Object") }
8
- let(:vfunc_info) { object_info.find_vfunc("vfunc_array_out_parameter") }
9
- let(:arg_info) { vfunc_info.args[0] }
10
- let(:type_info) { arg_info.argument_type }
11
-
12
- it "raises an error" do
13
- _(proc { type_info.name }).must_raise RuntimeError
14
- end
15
- end
16
-
17
- describe "#interface" do
18
- describe "for unresolvable interface types" do
19
- let(:function_info) { get_introspection_data "GObject", "signal_set_va_marshaller" }
20
- let(:argument_info) { function_info.args.last }
21
- let(:type_info) { argument_info.argument_type }
22
-
23
- it "returns an IUnresolvableInfo object" do
24
- result = type_info.interface
25
- _(result.info_type).must_equal :unresolved
26
- _(result).must_be_kind_of GObjectIntrospection::IUnresolvedInfo
27
- end
28
- end
29
- end
30
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IUnionInfo do
6
- let(:object_info) { get_introspection_data("GLib", "Mutex") }
7
-
8
- describe "#find_method" do
9
- it "finds a method by name string" do
10
- _(object_info.find_method("clear")).wont_be_nil
11
- end
12
-
13
- it "finds a method by name symbol" do
14
- _(object_info.find_method(:clear)).wont_be_nil
15
- end
16
- end
17
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::IVFuncInfo do
6
- let(:vfunc_info) do
7
- get_vfunc_introspection_data "GIMarshallingTests", "Object", "method_int8_in"
8
- end
9
-
10
- let(:throwing_vfunc_info) do
11
- get_vfunc_introspection_data "GIMarshallingTests", "Object", "vfunc_meth_with_err"
12
- end
13
-
14
- let(:vfunc_info_with_different_invoker) do
15
- get_vfunc_introspection_data "Regress", "TestObj", "matrix"
16
- end
17
-
18
- describe "#throws?" do
19
- it "returns false if there is no error argument" do
20
- _(vfunc_info).wont_be :throws?
21
- end
22
-
23
- it "returns true if there is and error argument" do
24
- _(throwing_vfunc_info).must_be :throws?
25
- end
26
- end
27
-
28
- describe "#invoker" do
29
- it "returns nil if no invoker method is present" do
30
- _(throwing_vfunc_info.invoker).must_be_nil
31
- end
32
-
33
- it "returns info for the invoker method if present" do
34
- _(vfunc_info.invoker.name).must_equal "method_int8_in"
35
- end
36
-
37
- it "returns the correct invoker even if named differently" do
38
- _(vfunc_info_with_different_invoker.invoker.name).must_equal "do_matrix"
39
- end
40
- end
41
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "introspection_test_helper"
4
-
5
- describe GObjectIntrospection::Lib::GIArgument do
6
- describe "its member :v_ssize" do
7
- it "is signed" do
8
- gia = GObjectIntrospection::Lib::GIArgument.new
9
- gia[:v_int64] = -1
10
- assert_equal(-1, gia[:v_ssize])
11
- end
12
- end
13
- end
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "base_test_helper"
4
-
5
- describe GObjectIntrospection::Strv do
6
- it "wraps a pointer" do
7
- strv = GObjectIntrospection::Strv.new :some_pointer
8
- assert_equal :some_pointer, strv.to_ptr
9
- end
10
-
11
- describe "::wrap" do
12
- it "takes a pointer and returns a GObjectIntrospection::Strv wrapping it" do
13
- strv = GObjectIntrospection::Strv.wrap :some_pointer
14
- assert_instance_of GObjectIntrospection::Strv, strv
15
- assert_equal :some_pointer, strv.to_ptr
16
- end
17
- end
18
-
19
- describe "#each" do
20
- it "yields each string element" do
21
- ary = %w(one two three)
22
- ptrs = ary.map { |a| FFI::MemoryPointer.from_string(a) }
23
- ptrs << nil
24
- block = FFI::MemoryPointer.new(:pointer, ptrs.length)
25
- block.write_array_of_pointer ptrs
26
-
27
- strv = GObjectIntrospection::Strv.new block
28
- arr = []
29
- strv.each do |str|
30
- arr << str
31
- end
32
- assert_equal %w(one two three), arr
33
- end
34
-
35
- it "yields zero times for a Strv wrapping a null pointer" do
36
- strv = GObjectIntrospection::Strv.new FFI::Pointer.new(0)
37
- strv.each do |_str|
38
- flunk
39
- end
40
- end
41
- end
42
-
43
- it "includes Enumerable" do
44
- _(GObjectIntrospection::Strv).must_include Enumerable
45
- end
46
- end