gir_ffi 0.14.1 → 0.15.0

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 (263) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +21 -0
  3. data/Gemfile +6 -4
  4. data/README.md +4 -4
  5. data/Rakefile +5 -5
  6. data/lib/ffi-glib/array.rb +14 -4
  7. data/lib/ffi-glib/byte_array.rb +7 -2
  8. data/lib/ffi-glib/container_class_methods.rb +1 -1
  9. data/lib/ffi-glib/error.rb +1 -1
  10. data/lib/ffi-glib/hash_table.rb +3 -3
  11. data/lib/ffi-glib/list.rb +1 -1
  12. data/lib/ffi-glib/list_methods.rb +1 -1
  13. data/lib/ffi-glib/main_loop.rb +3 -3
  14. data/lib/ffi-glib/ptr_array.rb +30 -8
  15. data/lib/ffi-glib/s_list.rb +1 -1
  16. data/lib/ffi-glib/variant.rb +1 -1
  17. data/lib/ffi-glib.rb +16 -16
  18. data/lib/ffi-gobject/object.rb +23 -32
  19. data/lib/ffi-gobject/param_spec.rb +1 -1
  20. data/lib/ffi-gobject/ruby_closure.rb +2 -2
  21. data/lib/ffi-gobject/value.rb +37 -28
  22. data/lib/ffi-gobject.rb +13 -13
  23. data/lib/ffi-gobject_introspection/gobject_type_init.rb +2 -2
  24. data/lib/ffi-gobject_introspection/i_arg_info.rb +2 -2
  25. data/lib/ffi-gobject_introspection/i_base_info.rb +27 -17
  26. data/lib/ffi-gobject_introspection/i_callable_info.rb +4 -4
  27. data/lib/ffi-gobject_introspection/i_constant_info.rb +2 -2
  28. data/lib/ffi-gobject_introspection/i_enum_info.rb +1 -0
  29. data/lib/ffi-gobject_introspection/i_field_info.rb +1 -1
  30. data/lib/ffi-gobject_introspection/i_function_info.rb +1 -1
  31. data/lib/ffi-gobject_introspection/i_interface_info.rb +1 -1
  32. data/lib/ffi-gobject_introspection/i_object_info.rb +2 -2
  33. data/lib/ffi-gobject_introspection/i_property_info.rb +2 -2
  34. data/lib/ffi-gobject_introspection/i_repository.rb +9 -6
  35. data/lib/ffi-gobject_introspection/i_struct_info.rb +2 -1
  36. data/lib/ffi-gobject_introspection/i_type_info.rb +13 -7
  37. data/lib/ffi-gobject_introspection/i_unresolved_info.rb +1 -1
  38. data/lib/ffi-gobject_introspection/i_vfunc_info.rb +1 -1
  39. data/lib/ffi-gobject_introspection/lib.rb +30 -19
  40. data/lib/ffi-gobject_introspection/strv.rb +1 -1
  41. data/lib/ffi-gobject_introspection.rb +20 -20
  42. data/lib/gir_ffi/allocation_helper.rb +1 -1
  43. data/lib/gir_ffi/arg_helper.rb +4 -4
  44. data/lib/gir_ffi/{in_out_pointer.rb → array_element_convertor.rb} +16 -23
  45. data/lib/gir_ffi/boolean.rb +1 -1
  46. data/lib/gir_ffi/boxed_base.rb +1 -1
  47. data/lib/gir_ffi/builder.rb +18 -10
  48. data/lib/gir_ffi/builders/argument_builder.rb +17 -17
  49. data/lib/gir_ffi/builders/base_argument_builder.rb +1 -0
  50. data/lib/gir_ffi/builders/base_method_builder.rb +7 -7
  51. data/lib/gir_ffi/builders/base_return_value_builder.rb +1 -1
  52. data/lib/gir_ffi/builders/base_type_builder.rb +1 -1
  53. data/lib/gir_ffi/builders/c_to_ruby_convertor.rb +5 -5
  54. data/lib/gir_ffi/builders/callback_argument_builder.rb +8 -8
  55. data/lib/gir_ffi/builders/callback_builder.rb +3 -3
  56. data/lib/gir_ffi/builders/callback_return_value_builder.rb +2 -2
  57. data/lib/gir_ffi/builders/closure_argument_builder.rb +1 -1
  58. data/lib/gir_ffi/builders/closure_return_value_builder.rb +1 -1
  59. data/lib/gir_ffi/builders/constant_builder.rb +1 -1
  60. data/lib/gir_ffi/builders/constructor_builder.rb +9 -9
  61. data/lib/gir_ffi/builders/enum_builder.rb +2 -2
  62. data/lib/gir_ffi/builders/field_builder.rb +16 -15
  63. data/lib/gir_ffi/builders/flags_builder.rb +2 -2
  64. data/lib/gir_ffi/builders/full_c_to_ruby_convertor.rb +1 -1
  65. data/lib/gir_ffi/builders/function_builder.rb +11 -5
  66. data/lib/gir_ffi/builders/initializer_builder.rb +3 -3
  67. data/lib/gir_ffi/builders/initializer_return_value_builder.rb +2 -2
  68. data/lib/gir_ffi/builders/interface_builder.rb +2 -2
  69. data/lib/gir_ffi/builders/mapping_method_builder.rb +9 -9
  70. data/lib/gir_ffi/builders/marshalling_method_builder.rb +7 -7
  71. data/lib/gir_ffi/builders/method_template.rb +1 -1
  72. data/lib/gir_ffi/builders/module_builder.rb +4 -6
  73. data/lib/gir_ffi/builders/object_builder.rb +6 -6
  74. data/lib/gir_ffi/builders/property_argument_builder.rb +1 -1
  75. data/lib/gir_ffi/builders/property_builder.rb +13 -12
  76. data/lib/gir_ffi/builders/property_return_value_builder.rb +1 -1
  77. data/lib/gir_ffi/builders/registered_type_builder.rb +14 -5
  78. data/lib/gir_ffi/builders/return_value_builder.rb +4 -4
  79. data/lib/gir_ffi/builders/ruby_to_c_convertor.rb +6 -6
  80. data/lib/gir_ffi/builders/signal_closure_builder.rb +2 -2
  81. data/lib/gir_ffi/builders/struct_builder.rb +4 -4
  82. data/lib/gir_ffi/builders/struct_like.rb +1 -1
  83. data/lib/gir_ffi/builders/type_builder.rb +12 -12
  84. data/lib/gir_ffi/builders/unintrospectable_boxed_builder.rb +2 -2
  85. data/lib/gir_ffi/builders/unintrospectable_builder.rb +2 -2
  86. data/lib/gir_ffi/builders/union_builder.rb +4 -4
  87. data/lib/gir_ffi/builders/user_defined_builder.rb +2 -2
  88. data/lib/gir_ffi/builders/vfunc_argument_builder.rb +1 -1
  89. data/lib/gir_ffi/builders/vfunc_builder.rb +6 -6
  90. data/lib/gir_ffi/builders/with_layout.rb +2 -2
  91. data/lib/gir_ffi/callback_base.rb +1 -1
  92. data/lib/gir_ffi/class_base.rb +5 -5
  93. data/lib/gir_ffi/core.rb +19 -20
  94. data/lib/gir_ffi/enum_base.rb +1 -1
  95. data/lib/gir_ffi/enum_like_base.rb +2 -2
  96. data/lib/gir_ffi/error_argument_info.rb +2 -2
  97. data/lib/gir_ffi/error_type_info.rb +1 -1
  98. data/lib/gir_ffi/ffi_ext/pointer.rb +1 -1
  99. data/lib/gir_ffi/ffi_ext.rb +1 -1
  100. data/lib/gir_ffi/flags_base.rb +1 -1
  101. data/lib/gir_ffi/in_pointer.rb +10 -0
  102. data/lib/gir_ffi/info_ext/full_type_name.rb +3 -3
  103. data/lib/gir_ffi/info_ext/i_arg_info.rb +1 -1
  104. data/lib/gir_ffi/info_ext/i_callable_info.rb +1 -1
  105. data/lib/gir_ffi/info_ext/i_callback_info.rb +1 -1
  106. data/lib/gir_ffi/info_ext/i_field_info.rb +1 -1
  107. data/lib/gir_ffi/info_ext/i_function_info.rb +1 -1
  108. data/lib/gir_ffi/info_ext/i_property_info.rb +2 -2
  109. data/lib/gir_ffi/info_ext/i_registered_type_info.rb +4 -5
  110. data/lib/gir_ffi/info_ext/i_signal_info.rb +7 -3
  111. data/lib/gir_ffi/info_ext/i_type_info.rb +48 -26
  112. data/lib/gir_ffi/info_ext/i_unresolved_info.rb +1 -1
  113. data/lib/gir_ffi/info_ext/i_value_info.rb +2 -2
  114. data/lib/gir_ffi/info_ext/i_vfunc_info.rb +2 -2
  115. data/lib/gir_ffi/info_ext/safe_constant_name.rb +8 -8
  116. data/lib/gir_ffi/info_ext/safe_function_name.rb +2 -2
  117. data/lib/gir_ffi/info_ext.rb +15 -15
  118. data/lib/gir_ffi/interface_base.rb +3 -3
  119. data/lib/gir_ffi/lib_c.rb +1 -1
  120. data/lib/gir_ffi/method_stubber.rb +1 -1
  121. data/lib/gir_ffi/module_base.rb +1 -1
  122. data/lib/gir_ffi/object_base.rb +3 -4
  123. data/lib/gir_ffi/receiver_argument_info.rb +1 -1
  124. data/lib/gir_ffi/receiver_type_info.rb +2 -2
  125. data/lib/gir_ffi/registered_type_base.rb +1 -1
  126. data/lib/gir_ffi/sized_array.rb +4 -2
  127. data/lib/gir_ffi/struct.rb +1 -1
  128. data/lib/gir_ffi/struct_base.rb +1 -1
  129. data/lib/gir_ffi/type_map.rb +2 -23
  130. data/lib/gir_ffi/unintrospectable_boxed_info.rb +2 -2
  131. data/lib/gir_ffi/unintrospectable_type_info.rb +1 -1
  132. data/lib/gir_ffi/union.rb +1 -1
  133. data/lib/gir_ffi/union_base.rb +1 -1
  134. data/lib/gir_ffi/user_defined_object_info.rb +6 -2
  135. data/lib/gir_ffi/user_defined_property_info.rb +33 -33
  136. data/lib/gir_ffi/version.rb +1 -1
  137. data/lib/gir_ffi-base/gobject/lib.rb +3 -2
  138. data/lib/gir_ffi-base/gobject.rb +26 -25
  139. data/lib/gir_ffi-base.rb +1 -1
  140. data/lib/gir_ffi.rb +3 -3
  141. data/tasks/test.rake +3 -2
  142. data/test/base_test_helper.rb +16 -9
  143. data/test/ffi-glib/array_test.rb +71 -56
  144. data/test/ffi-glib/byte_array_test.rb +13 -7
  145. data/test/ffi-glib/bytes_test.rb +24 -19
  146. data/test/ffi-glib/closure_test.rb +11 -11
  147. data/test/ffi-glib/destroy_notify_test.rb +6 -6
  148. data/test/ffi-glib/hash_table_test.rb +27 -27
  149. data/test/ffi-glib/list_test.rb +22 -22
  150. data/test/ffi-glib/main_loop_test.rb +12 -12
  151. data/test/ffi-glib/ptr_array_test.rb +39 -39
  152. data/test/ffi-glib/ruby_closure_test.rb +10 -10
  153. data/test/ffi-glib/s_list_test.rb +20 -20
  154. data/test/ffi-glib/strv_test.rb +19 -19
  155. data/test/ffi-glib/variant_test.rb +5 -5
  156. data/test/ffi-gobject/gobject_test.rb +48 -44
  157. data/test/ffi-gobject/object_class_test.rb +8 -8
  158. data/test/ffi-gobject/object_test.rb +49 -67
  159. data/test/ffi-gobject/param_spec_test.rb +12 -12
  160. data/test/ffi-gobject/value_test.rb +145 -125
  161. data/test/ffi-gobject_introspection/gobject_type_init_test.rb +8 -8
  162. data/test/ffi-gobject_introspection/i_base_info_test.rb +15 -16
  163. data/test/ffi-gobject_introspection/i_constant_info_test.rb +9 -13
  164. data/test/ffi-gobject_introspection/i_enum_info_test.rb +7 -7
  165. data/test/ffi-gobject_introspection/i_function_info_test.rb +1 -1
  166. data/test/ffi-gobject_introspection/i_interface_info_test.rb +10 -10
  167. data/test/ffi-gobject_introspection/i_object_info_test.rb +23 -23
  168. data/test/ffi-gobject_introspection/i_property_info_test.rb +19 -19
  169. data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +10 -10
  170. data/test/ffi-gobject_introspection/i_repository_test.rb +31 -31
  171. data/test/ffi-gobject_introspection/i_struct_info_test.rb +10 -10
  172. data/test/ffi-gobject_introspection/i_type_info_test.rb +12 -15
  173. data/test/ffi-gobject_introspection/i_union_info_test.rb +7 -7
  174. data/test/ffi-gobject_introspection/i_vfunc_info_test.rb +16 -16
  175. data/test/ffi-gobject_introspection/lib_test.rb +3 -3
  176. data/test/ffi-gobject_introspection/strv_test.rb +9 -9
  177. data/test/ffi-gobject_test.rb +44 -44
  178. data/test/gir_ffi/allocation_helper_test.rb +13 -13
  179. data/test/gir_ffi/arg_helper_test.rb +63 -64
  180. data/test/gir_ffi/boolean_test.rb +20 -20
  181. data/test/gir_ffi/boxed_base_test.rb +18 -18
  182. data/test/gir_ffi/builder_test.rb +115 -93
  183. data/test/gir_ffi/builders/argument_builder_test.rb +280 -286
  184. data/test/gir_ffi/builders/base_argument_builder_test.rb +1 -1
  185. data/test/gir_ffi/builders/callback_argument_builder_test.rb +53 -56
  186. data/test/gir_ffi/builders/callback_builder_test.rb +71 -72
  187. data/test/gir_ffi/builders/callback_return_value_builder_test.rb +36 -40
  188. data/test/gir_ffi/builders/constant_builder_test.rb +1 -1
  189. data/test/gir_ffi/builders/constructor_builder_test.rb +10 -10
  190. data/test/gir_ffi/builders/enum_builder_test.rb +10 -10
  191. data/test/gir_ffi/builders/field_builder_test.rb +42 -42
  192. data/test/gir_ffi/builders/function_builder_test.rb +236 -224
  193. data/test/gir_ffi/builders/initializer_builder_test.rb +14 -14
  194. data/test/gir_ffi/builders/interface_builder_test.rb +9 -9
  195. data/test/gir_ffi/builders/module_builder_test.rb +18 -18
  196. data/test/gir_ffi/builders/object_builder_test.rb +38 -38
  197. data/test/gir_ffi/builders/property_builder_test.rb +91 -94
  198. data/test/gir_ffi/builders/registered_type_builder_test.rb +35 -11
  199. data/test/gir_ffi/builders/return_value_builder_test.rb +215 -222
  200. data/test/gir_ffi/builders/signal_closure_builder_test.rb +122 -113
  201. data/test/gir_ffi/builders/struct_builder_test.rb +32 -32
  202. data/test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb +8 -14
  203. data/test/gir_ffi/builders/unintrospectable_builder_test.rb +23 -23
  204. data/test/gir_ffi/builders/union_builder_test.rb +12 -15
  205. data/test/gir_ffi/builders/user_defined_builder_test.rb +147 -147
  206. data/test/gir_ffi/builders/vfunc_argument_builder_test.rb +40 -40
  207. data/test/gir_ffi/builders/vfunc_builder_test.rb +145 -157
  208. data/test/gir_ffi/callback_base_test.rb +9 -9
  209. data/test/gir_ffi/class_base_test.rb +49 -51
  210. data/test/gir_ffi/core_test.rb +32 -32
  211. data/test/gir_ffi/enum_base_test.rb +19 -19
  212. data/test/gir_ffi/error_type_info_test.rb +23 -23
  213. data/test/gir_ffi/ffi_ext/pointer_test.rb +5 -5
  214. data/test/gir_ffi/g_type_test.rb +11 -11
  215. data/test/gir_ffi/in_pointer_test.rb +70 -50
  216. data/test/gir_ffi/info_ext/i_callable_info_test.rb +5 -5
  217. data/test/gir_ffi/info_ext/i_callback_info_test.rb +4 -4
  218. data/test/gir_ffi/info_ext/i_field_info_test.rb +6 -6
  219. data/test/gir_ffi/info_ext/i_function_info_test.rb +17 -17
  220. data/test/gir_ffi/info_ext/i_signal_info_test.rb +8 -8
  221. data/test/gir_ffi/info_ext/i_type_info_test.rb +229 -215
  222. data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +4 -4
  223. data/test/gir_ffi/info_ext/safe_constant_name_test.rb +8 -8
  224. data/test/gir_ffi/info_ext/safe_function_name_test.rb +8 -8
  225. data/test/gir_ffi/interface_base_test.rb +8 -8
  226. data/test/gir_ffi/method_stubber_test.rb +19 -19
  227. data/test/gir_ffi/object_base_test.rb +19 -19
  228. data/test/gir_ffi/object_store_test.rb +13 -13
  229. data/test/gir_ffi/receiver_argument_info_test.rb +15 -15
  230. data/test/gir_ffi/sized_array_test.rb +68 -68
  231. data/test/gir_ffi/struct_base_test.rb +8 -8
  232. data/test/gir_ffi/struct_like_base_test.rb +64 -64
  233. data/test/gir_ffi/type_map_test.rb +6 -6
  234. data/test/gir_ffi/unintrospectable_type_info_test.rb +33 -33
  235. data/test/gir_ffi/union_base_test.rb +8 -8
  236. data/test/gir_ffi/user_defined_object_info_test.rb +34 -34
  237. data/test/gir_ffi/user_defined_property_info_test.rb +16 -16
  238. data/test/gir_ffi/variable_name_generator_test.rb +8 -8
  239. data/test/gir_ffi/version_test.rb +4 -4
  240. data/test/gir_ffi/zero_terminated_test.rb +34 -34
  241. data/test/gir_ffi_test_helper.rb +3 -3
  242. data/test/integration/callback_exceptions_test.rb +17 -21
  243. data/test/integration/derived_classes_test.rb +13 -13
  244. data/test/integration/generated_everything_test.rb +224 -224
  245. data/test/integration/generated_gimarshallingtests_test.rb +1118 -1017
  246. data/test/integration/generated_gio_test.rb +36 -36
  247. data/test/integration/generated_glib_test.rb +4 -6
  248. data/test/integration/generated_gobject_test.rb +43 -35
  249. data/test/integration/generated_gst_test.rb +16 -16
  250. data/test/integration/generated_gtk_source_test.rb +22 -17
  251. data/test/integration/generated_gtop_test.rb +8 -15
  252. data/test/integration/generated_pango_ft2_test.rb +2 -2
  253. data/test/integration/generated_pango_test.rb +4 -4
  254. data/test/integration/generated_regress_test.rb +1809 -1621
  255. data/test/integration/generated_secret_test.rb +8 -11
  256. data/test/integration/generated_utility_test.rb +81 -81
  257. data/test/integration/generated_warnlib_test.rb +13 -19
  258. data/test/integration/method_lookup_test.rb +6 -6
  259. data/test/introspection_test_helper.rb +48 -7
  260. data/test/minitest/stats_plugin.rb +1 -1
  261. metadata +11 -28
  262. data/lib/ffi-glib/array_methods.rb +0 -16
  263. data/test/gir_ffi/in_out_pointer_test.rb +0 -56
@@ -1,140 +1,139 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi_test_helper'
3
+ require "gir_ffi_test_helper"
4
4
 
5
5
  describe GirFFI::ArgHelper do
6
- describe '.cast_from_pointer' do
7
- it 'handles class types' do
6
+ describe ".cast_from_pointer" do
7
+ it "handles class types" do
8
8
  klass = Class.new
9
9
  expect(klass).to receive(:wrap).with(:pointer_value).and_return :wrapped_value
10
- GirFFI::ArgHelper.cast_from_pointer(klass, :pointer_value).must_equal :wrapped_value
10
+ _(GirFFI::ArgHelper.cast_from_pointer(klass, :pointer_value)).must_equal :wrapped_value
11
11
  end
12
12
 
13
- describe 'for :gint8' do
14
- it 'handles negative :gint8' do
13
+ describe "for :gint8" do
14
+ it "handles negative :gint8" do
15
15
  ptr = FFI::Pointer.new(-127)
16
- GirFFI::ArgHelper.cast_from_pointer(:gint8, ptr).must_equal(-127)
16
+ _(GirFFI::ArgHelper.cast_from_pointer(:gint8, ptr)).must_equal(-127)
17
17
  end
18
18
 
19
- it 'handles positive :gint8' do
19
+ it "handles positive :gint8" do
20
20
  ptr = FFI::Pointer.new(128)
21
- GirFFI::ArgHelper.cast_from_pointer(:gint8, ptr).must_equal(128)
21
+ _(GirFFI::ArgHelper.cast_from_pointer(:gint8, ptr)).must_equal(128)
22
22
  end
23
23
  end
24
24
 
25
- it 'handles :guint32' do
25
+ it "handles :guint32" do
26
26
  ptr = FFI::Pointer.new(0xffffffff)
27
- GirFFI::ArgHelper.cast_from_pointer(:guint32, ptr).must_equal(0xffffffff)
27
+ _(GirFFI::ArgHelper.cast_from_pointer(:guint32, ptr)).must_equal(0xffffffff)
28
28
  end
29
29
 
30
- describe 'for :gint32' do
31
- it 'handles positive :gint32' do
30
+ describe "for :gint32" do
31
+ it "handles positive :gint32" do
32
32
  ptr = FFI::Pointer.new(1)
33
- GirFFI::ArgHelper.cast_from_pointer(:gint32, ptr).must_equal(1)
33
+ _(GirFFI::ArgHelper.cast_from_pointer(:gint32, ptr)).must_equal(1)
34
34
  end
35
35
 
36
- it 'handles negative :gint32' do
36
+ it "handles negative :gint32" do
37
37
  ptr = FFI::Pointer.new(0xffffffff)
38
- GirFFI::ArgHelper.cast_from_pointer(:gint32, ptr).must_equal(-1)
38
+ _(GirFFI::ArgHelper.cast_from_pointer(:gint32, ptr)).must_equal(-1)
39
39
  end
40
40
 
41
- it 'handles largest negative :gint32' do
41
+ it "handles largest negative :gint32" do
42
42
  ptr = FFI::Pointer.new(0x80000000)
43
- GirFFI::ArgHelper.cast_from_pointer(:gint32, ptr).must_equal(-0x80000000)
43
+ _(GirFFI::ArgHelper.cast_from_pointer(:gint32, ptr)).must_equal(-0x80000000)
44
44
  end
45
45
 
46
- it 'handles largest positive :gint32' do
46
+ it "handles largest positive :gint32" do
47
47
  ptr = FFI::Pointer.new(0x7fffffff)
48
- GirFFI::ArgHelper.cast_from_pointer(:gint32, ptr).must_equal(0x7fffffff)
48
+ _(GirFFI::ArgHelper.cast_from_pointer(:gint32, ptr)).must_equal(0x7fffffff)
49
49
  end
50
50
  end
51
51
 
52
- it 'handles :utf8' do
53
- ptr = FFI::MemoryPointer.from_string 'foo'
54
- GirFFI::ArgHelper.cast_from_pointer(:utf8, ptr).must_equal 'foo'
52
+ it "handles :utf8" do
53
+ ptr = FFI::MemoryPointer.from_string "foo"
54
+ _(GirFFI::ArgHelper.cast_from_pointer(:utf8, ptr)).must_equal "foo"
55
55
  end
56
56
 
57
- it 'handles :filename' do
58
- ptr = FFI::MemoryPointer.from_string 'foo'
59
- GirFFI::ArgHelper.cast_from_pointer(:filename, ptr).must_equal 'foo'
57
+ it "handles :filename" do
58
+ ptr = FFI::MemoryPointer.from_string "foo"
59
+ _(GirFFI::ArgHelper.cast_from_pointer(:filename, ptr)).must_equal "foo"
60
60
  end
61
61
 
62
- it 'handles GHashTable' do
63
- hash = GLib::HashTable.from [:utf8, :gint32], 'foo' => 1, 'bar' => 2
62
+ it "handles GHashTable" do
63
+ hash = GLib::HashTable.from [:utf8, :gint32], "foo" => 1, "bar" => 2
64
64
  ptr = hash.to_ptr
65
65
  result = GirFFI::ArgHelper.cast_from_pointer([:pointer, [:ghash, :utf8, :gint32]], ptr)
66
- result.to_hash.must_equal hash.to_hash
66
+ _(result.to_hash).must_equal hash.to_hash
67
67
  end
68
68
 
69
- describe 'when passing a broken typespec' do
70
- it 'raises on unknown symbol' do
69
+ describe "when passing a broken typespec" do
70
+ it "raises on unknown symbol" do
71
71
  ptr = FFI::Pointer.new(0xffffffff)
72
- exception = -> { GirFFI::ArgHelper.cast_from_pointer(:foo, ptr) }.must_raise RuntimeError
73
- exception.message.must_equal "Don't know how to cast foo"
72
+ exception = _(-> { GirFFI::ArgHelper.cast_from_pointer(:foo, ptr) }).must_raise RuntimeError
73
+ _(exception.message).must_equal "Don't know how to cast foo"
74
74
  end
75
75
 
76
- it 'raises on unexpected main type for complex type' do
76
+ it "raises on unexpected main type for complex type" do
77
77
  ptr = FFI::Pointer.new(0xffffffff)
78
- exception = -> { GirFFI::ArgHelper.cast_from_pointer([:utf8], ptr) }.must_raise RuntimeError
79
- exception.message.must_equal "Don't know how to cast [:utf8]"
78
+ exception = _(-> { GirFFI::ArgHelper.cast_from_pointer([:utf8], ptr) }).must_raise RuntimeError
79
+ _(exception.message).must_equal "Don't know how to cast [:utf8]"
80
80
  end
81
81
 
82
- it 'raises on unexpected sub type for complex type' do
82
+ it "raises on unexpected sub type for complex type" do
83
83
  ptr = FFI::Pointer.new(0xffffffff)
84
- exception = -> { GirFFI::ArgHelper.cast_from_pointer([:pointer, :utf8], ptr) }.must_raise RuntimeError
85
- exception.message.must_equal "Don't know how to cast [:pointer, :utf8]"
84
+ exception = _(-> { GirFFI::ArgHelper.cast_from_pointer([:pointer, :utf8], ptr) }).must_raise RuntimeError
85
+ _(exception.message).must_equal "Don't know how to cast [:pointer, :utf8]"
86
86
  end
87
87
 
88
- it 'raises on unexpected container type for complex type' do
88
+ it "raises on unexpected container type for complex type" do
89
89
  ptr = FFI::Pointer.new(0xffffffff)
90
- exception = -> { GirFFI::ArgHelper.cast_from_pointer([:pointer, [:gint32]], ptr) }.must_raise RuntimeError
91
- exception.message.must_equal "Don't know how to cast [:pointer, [:gint32]]"
90
+ exception = _(-> { GirFFI::ArgHelper.cast_from_pointer([:pointer, [:gint32]], ptr) }).must_raise RuntimeError
91
+ _(exception.message).must_equal "Don't know how to cast [:pointer, [:gint32]]"
92
92
  end
93
93
  end
94
94
  end
95
95
 
96
- describe '.store' do
97
- describe 'when called with nil' do
98
- it 'returns a null pointer' do
99
- GirFFI::ArgHelper.store(nil).must_be :null?
96
+ describe ".store" do
97
+ describe "when called with nil" do
98
+ it "returns a null pointer" do
99
+ _(GirFFI::ArgHelper.store(nil)).must_be :null?
100
100
  end
101
101
  end
102
102
 
103
- describe 'when called with a string' do
104
- it 'stores the string in GirFFI::ArgHelper::OBJECT_STORE' do
105
- str = 'Foo'
103
+ describe "when called with a string" do
104
+ it "stores the string in GirFFI::ArgHelper::OBJECT_STORE" do
105
+ str = "Foo"
106
106
  ptr = GirFFI::ArgHelper.store(str)
107
107
  result = GirFFI::ArgHelper::OBJECT_STORE.fetch(ptr)
108
- result.must_equal str
108
+ _(result).must_equal str
109
109
  end
110
110
  end
111
111
  end
112
112
 
113
- describe '.check_fixed_array_size' do
114
- it 'passes if array has the correct size' do
115
- GirFFI::ArgHelper.check_fixed_array_size(3, [1, 2, 3], 'foo')
113
+ describe ".check_fixed_array_size" do
114
+ it "passes if array has the correct size" do
115
+ GirFFI::ArgHelper.check_fixed_array_size(3, [1, 2, 3], "foo")
116
116
  pass
117
117
  end
118
118
 
119
- it 'raises if array does not have the correct size' do
120
- result = lambda do
121
- GirFFI::ArgHelper.check_fixed_array_size(3, [1, 2], 'foo')
122
- end.must_raise ArgumentError
123
- result.message.must_equal 'foo should have size 3'
119
+ it "raises if array does not have the correct size" do
120
+ result = _(-> { GirFFI::ArgHelper.check_fixed_array_size(3, [1, 2], "foo") }).
121
+ must_raise ArgumentError
122
+ _(result.message).must_equal "foo should have size 3"
124
123
  end
125
124
  end
126
125
 
127
- describe '.check_error' do
128
- it 'does nothing if there is no error' do
129
- err_ptr = double('err_ptr', read_pointer: nil)
126
+ describe ".check_error" do
127
+ it "does nothing if there is no error" do
128
+ err_ptr = double("err_ptr", read_pointer: nil)
130
129
  GirFFI::ArgHelper.check_error err_ptr
131
130
  pass
132
131
  end
133
132
 
134
- it 'raises an exception if there is an error' do
133
+ it "raises an exception if there is an error" do
135
134
  err = GLib::Error.new
136
- err_ptr = double('err_ptr', read_pointer: err.to_ptr)
137
- -> { GirFFI::ArgHelper.check_error err_ptr }.must_raise GirFFI::GLibError
135
+ err_ptr = double("err_ptr", read_pointer: err.to_ptr)
136
+ _(-> { GirFFI::ArgHelper.check_error err_ptr }).must_raise GirFFI::GLibError
138
137
  end
139
138
  end
140
139
  end
@@ -1,43 +1,43 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi_test_helper'
3
+ require "gir_ffi_test_helper"
4
4
 
5
5
  describe GirFFI::Boolean do
6
- it 'has the same native size as an int' do
7
- FFI.type_size(GirFFI::Boolean).must_equal FFI.type_size :int
6
+ it "has the same native size as an int" do
7
+ _(FFI.type_size(GirFFI::Boolean)).must_equal FFI.type_size :int
8
8
  end
9
9
 
10
- describe '.from_native' do
11
- it 'converts 0 to false' do
12
- GirFFI::Boolean.from_native(0, 'whatever').must_equal false
10
+ describe ".from_native" do
11
+ it "converts 0 to false" do
12
+ _(GirFFI::Boolean.from_native(0, "whatever")).must_equal false
13
13
  end
14
14
 
15
- it 'converts 1 to true' do
16
- GirFFI::Boolean.from_native(1, 'whatever').must_equal true
15
+ it "converts 1 to true" do
16
+ _(GirFFI::Boolean.from_native(1, "whatever")).must_equal true
17
17
  end
18
18
  end
19
19
 
20
- describe '.to_native' do
21
- it 'converts false to 0' do
22
- GirFFI::Boolean.to_native(false, 'whatever').must_equal 0
20
+ describe ".to_native" do
21
+ it "converts false to 0" do
22
+ _(GirFFI::Boolean.to_native(false, "whatever")).must_equal 0
23
23
  end
24
24
 
25
- it 'converts true to 1' do
26
- GirFFI::Boolean.to_native(true, 'whatever').must_equal 1
25
+ it "converts true to 1" do
26
+ _(GirFFI::Boolean.to_native(true, "whatever")).must_equal 1
27
27
  end
28
28
 
29
- it 'converts nil to 0' do
30
- GirFFI::Boolean.to_native(nil, 'whatever').must_equal 0
29
+ it "converts nil to 0" do
30
+ _(GirFFI::Boolean.to_native(nil, "whatever")).must_equal 0
31
31
  end
32
32
 
33
- it 'converts truthy value to 1' do
34
- GirFFI::Boolean.to_native('i am truth!', 'whatever').must_equal 1
33
+ it "converts truthy value to 1" do
34
+ _(GirFFI::Boolean.to_native("i am truth!", "whatever")).must_equal 1
35
35
  end
36
36
  end
37
37
 
38
- describe '.size' do
39
- it 'returns the correct type size' do
40
- GirFFI::Boolean.size.must_equal FFI.type_size :int
38
+ describe ".size" do
39
+ it "returns the correct type size" do
40
+ _(GirFFI::Boolean.size).must_equal FFI.type_size :int
41
41
  end
42
42
  end
43
43
  end
@@ -1,44 +1,44 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi_test_helper'
3
+ require "gir_ffi_test_helper"
4
4
 
5
5
  GirFFI.setup :GIMarshallingTests
6
6
 
7
7
  describe GirFFI::BoxedBase do
8
- describe 'initialize' do
9
- it 'sets up the held struct pointer' do
8
+ describe "initialize" do
9
+ it "sets up the held struct pointer" do
10
10
  # NOTE: GObject::Value uses the generic constructor, unlike
11
11
  # GIMarshallingTests::BoxedStruct, which has its own constructor.
12
12
  value = GObject::Value.new
13
- value.to_ptr.wont_be_nil
13
+ _(value.to_ptr).wont_be_nil
14
14
  end
15
15
  end
16
16
 
17
- describe 'copy_from' do
18
- it 'returns a copy with owned false' do
17
+ describe "copy_from" do
18
+ it "returns a copy with owned false" do
19
19
  original = GIMarshallingTests::BoxedStruct.new
20
20
  copy = GIMarshallingTests::BoxedStruct.copy_from(original)
21
21
  ptr = copy.to_ptr
22
- ptr.wont_be :==, original.to_ptr
23
- ptr.wont_be :autorelease? if ptr.respond_to? :autorelease?
24
- copy.struct.wont_be :owned?
22
+ _(ptr).wont_be :==, original.to_ptr
23
+ _(ptr).wont_be :autorelease? if ptr.respond_to? :autorelease?
24
+ _(copy.struct).wont_be :owned?
25
25
  end
26
26
  end
27
27
 
28
- describe 'wrap_own' do
29
- it 'wraps and owns the supplied pointer' do
28
+ describe "wrap_own" do
29
+ it "wraps and owns the supplied pointer" do
30
30
  original = GIMarshallingTests::BoxedStruct.new
31
31
  copy = GIMarshallingTests::BoxedStruct.wrap_own(original.to_ptr)
32
32
  ptr = copy.to_ptr
33
- ptr.must_equal original.to_ptr
34
- ptr.wont_be :autorelease? if ptr.respond_to? :autorelease?
35
- copy.struct.must_be :owned?
33
+ _(ptr).must_equal original.to_ptr
34
+ _(ptr).wont_be :autorelease? if ptr.respond_to? :autorelease?
35
+ _(copy.struct).must_be :owned?
36
36
  end
37
37
  end
38
38
 
39
- describe 'upon garbage collection' do
40
- it 'frees and disowns the underlying struct if it is owned' do
41
- skip 'cannot be reliably tested on JRuby and Rubinius' if jruby? || rubinius?
39
+ describe "upon garbage collection" do
40
+ it "frees and disowns the underlying struct if it is owned" do
41
+ skip "cannot be reliably tested on JRuby and Rubinius" if jruby? || rubinius?
42
42
 
43
43
  allow(GObject).to receive(:boxed_free)
44
44
  gtype = GIMarshallingTests::BoxedStruct.gtype
@@ -59,7 +59,7 @@ describe GirFFI::BoxedBase do
59
59
 
60
60
  expect(GObject).to have_received(:boxed_free).with(gtype, owned_ptr)
61
61
  expect(GObject).not_to have_received(:boxed_free).with(gtype, unowned_ptr)
62
- owned_struct.wont_be :owned?
62
+ _(owned_struct).wont_be :owned?
63
63
  end
64
64
  end
65
65
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'gir_ffi_test_helper'
3
+ require "gir_ffi_test_helper"
4
4
 
5
5
  GirFFI.setup :Regress
6
6
  GirFFI.setup :GIMarshallingTests
@@ -8,29 +8,29 @@ GirFFI.setup :GIMarshallingTests
8
8
  describe GirFFI::Builder do
9
9
  let(:gir) { GObjectIntrospection::IRepository.default }
10
10
 
11
- describe '.build_class' do
12
- it 'does not replace existing classes' do
11
+ describe ".build_class" do
12
+ it "does not replace existing classes" do
13
13
  oldclass = GObject::Object
14
- GirFFI::Builder.build_class get_introspection_data('GObject', 'Object')
15
- GObject::Object.must_equal oldclass
14
+ GirFFI::Builder.build_class get_introspection_data("GObject", "Object")
15
+ _(GObject::Object).must_equal oldclass
16
16
  end
17
17
  end
18
18
 
19
- describe '.build_module' do
20
- it 'refuses to build existing modules defined elsewhere' do
21
- result = -> { GirFFI::Builder.build_module('Array') }.must_raise RuntimeError
22
- result.message.must_equal 'The module Array was already defined elsewhere'
19
+ describe ".build_module" do
20
+ it "refuses to build existing modules defined elsewhere" do
21
+ result = _(-> { GirFFI::Builder.build_module("Array") }).must_raise RuntimeError
22
+ _(result.message).must_equal "The module Array was already defined elsewhere"
23
23
  end
24
24
 
25
- describe 'building a module for the first time' do
25
+ describe "building a module for the first time" do
26
26
  before do
27
27
  save_module :Regress
28
- GirFFI::Builder.build_module 'Regress'
28
+ GirFFI::Builder.build_module "Regress"
29
29
  end
30
30
 
31
- it 'creates a Lib module ready to attach functions from the shared library' do
31
+ it "creates a Lib module ready to attach functions from the shared library" do
32
32
  gir = GObjectIntrospection::IRepository.default
33
- expected = [gir.shared_library('Regress')]
33
+ expected = [gir.shared_library("Regress")]
34
34
  assert_equal expected, Regress::Lib.ffi_libraries.map(&:name)
35
35
  end
36
36
 
@@ -39,67 +39,81 @@ describe GirFFI::Builder do
39
39
  end
40
40
  end
41
41
 
42
- describe 'building a module that already exists' do
43
- it 'does not replace the existing module' do
42
+ describe "building a module that already exists" do
43
+ it "does not replace the existing module" do
44
44
  oldmodule = Regress
45
- GirFFI::Builder.build_module 'Regress'
45
+ GirFFI::Builder.build_module "Regress"
46
46
  assert_equal oldmodule, Regress
47
47
  end
48
48
 
49
- it 'does not replace the existing Lib module' do
49
+ it "does not replace the existing Lib module" do
50
50
  oldmodule = Regress::Lib
51
- GirFFI::Builder.build_module 'Regress'
51
+ GirFFI::Builder.build_module "Regress"
52
52
  assert_equal oldmodule, Regress::Lib
53
53
  end
54
54
  end
55
55
 
56
- it 'passes the version on to ModuleBuilder' do
56
+ it "passes the version on to ModuleBuilder" do
57
57
  builder = double(generate: nil)
58
58
  expect(GirFFI::Builders::ModuleBuilder).to receive(:new).
59
- with('Foo', namespace: 'Foo', version: '1.0').
59
+ with("Foo", namespace: "Foo", version: "1.0").
60
60
  and_return builder
61
61
 
62
- GirFFI::Builder.build_module 'Foo', '1.0'
62
+ GirFFI::Builder.build_module "Foo", "1.0"
63
63
  end
64
64
  end
65
65
 
66
- describe '.build_by_gtype' do
67
- it 'returns the class types known to the GIR' do
66
+ describe ".build_by_gtype" do
67
+ it "returns the class types known to the GIR" do
68
68
  result = GirFFI::Builder.build_by_gtype GObject::Object.gtype
69
- result.must_equal GObject::Object
69
+ _(result).must_equal GObject::Object
70
70
  end
71
71
 
72
- it 'returns the class for user-defined types' do
72
+ it "returns the class for user-defined types" do
73
73
  klass = Class.new GIMarshallingTests::OverridesObject
74
74
  Object.const_set "Derived#{Sequence.next}", klass
75
75
  gtype = GirFFI.define_type klass
76
76
 
77
77
  found_klass = GirFFI::Builder.build_by_gtype gtype
78
- found_klass.must_equal klass
78
+ _(found_klass).must_equal klass
79
79
  end
80
80
 
81
- it 'returns a valid class for boxed classes unknown to GIR' do
81
+ it "returns the class for user-defined types not derived from GObject" do
82
+ klass = Class.new Regress::TestFundamentalObject
83
+ Object.const_set "Derived#{Sequence.next}", klass
84
+ gtype = GirFFI.define_type klass
85
+
86
+ found_klass = GirFFI::Builder.build_by_gtype gtype
87
+ _(found_klass).must_equal klass
88
+ end
89
+
90
+ it "returns a valid class for boxed classes unknown to GIR" do
82
91
  object_class = GIMarshallingTests::PropertiesObject.object_class
83
- property = object_class.find_property 'some-boxed-glist'
92
+ property = object_class.find_property "some-boxed-glist"
84
93
  gtype = property.value_type
85
94
 
86
- gtype.wont_equal GObject::TYPE_NONE
95
+ _(gtype).wont_equal GObject::TYPE_NONE
87
96
 
88
97
  found_klass = GirFFI::Builder.build_by_gtype gtype
89
- found_klass.name.must_be_nil
90
- found_klass.superclass.must_equal GirFFI::BoxedBase
98
+ _(found_klass.name).must_be_nil
99
+ _(found_klass.superclass).must_equal GirFFI::BoxedBase
100
+ end
101
+
102
+ it "refuse to build classes for base types" do
103
+ _(-> { GirFFI::Builder.build_by_gtype GObject::TYPE_INT }).
104
+ must_raise RuntimeError, "Unable to handle type gint"
91
105
  end
92
106
  end
93
107
 
94
- describe '.attach_ffi_function' do
108
+ describe ".attach_ffi_function" do
95
109
  let(:lib) { Module.new }
96
110
 
97
- it 'calls attach_function with the correct types for Regress.test_callback_destroy_notify' do
98
- function_info = get_introspection_data 'Regress', 'test_callback_destroy_notify'
111
+ it "calls attach_function with the correct types for Regress.test_callback_destroy_notify" do
112
+ function_info = get_introspection_data "Regress", "test_callback_destroy_notify"
99
113
 
100
114
  expect(lib).
101
115
  to receive(:attach_function).
102
- with('regress_test_callback_destroy_notify',
116
+ with("regress_test_callback_destroy_notify",
103
117
  [Regress::TestCallbackUserData, :pointer, GLib::DestroyNotify],
104
118
  :int32).
105
119
  and_return true
@@ -107,12 +121,12 @@ describe GirFFI::Builder do
107
121
  GirFFI::Builder.attach_ffi_function(lib, function_info)
108
122
  end
109
123
 
110
- it 'calls attach_function with the correct types for Regress::TestObj#torture_signature_0' do
111
- info = get_method_introspection_data 'Regress', 'TestObj', 'torture_signature_0'
124
+ it "calls attach_function with the correct types for Regress::TestObj#torture_signature_0" do
125
+ info = get_method_introspection_data "Regress", "TestObj", "torture_signature_0"
112
126
 
113
127
  expect(lib).
114
128
  to receive(:attach_function).
115
- with('regress_test_obj_torture_signature_0',
129
+ with("regress_test_obj_torture_signature_0",
116
130
  [:pointer, :int32, :pointer, :pointer, :pointer, :pointer, :uint32],
117
131
  :void).
118
132
  and_return true
@@ -120,32 +134,32 @@ describe GirFFI::Builder do
120
134
  GirFFI::Builder.attach_ffi_function(lib, info)
121
135
  end
122
136
 
123
- it 'calls attach_function with the correct types for Regress::TestObj#instance_method' do
124
- info = get_method_introspection_data 'Regress', 'TestObj', 'instance_method'
137
+ it "calls attach_function with the correct types for Regress::TestObj#instance_method" do
138
+ info = get_method_introspection_data "Regress", "TestObj", "instance_method"
125
139
  expect(lib).to receive(:attach_function).
126
- with('regress_test_obj_instance_method', [:pointer], :int32).
140
+ with("regress_test_obj_instance_method", [:pointer], :int32).
127
141
  and_return true
128
142
  GirFFI::Builder.attach_ffi_function(lib, info)
129
143
  end
130
144
 
131
- it 'calls attach_function with the correct types for Regress.test_array_gint32_in' do
132
- info = get_introspection_data 'Regress', 'test_array_gint32_in'
145
+ it "calls attach_function with the correct types for Regress.test_array_gint32_in" do
146
+ info = get_introspection_data "Regress", "test_array_gint32_in"
133
147
  expect(lib).to receive(:attach_function).
134
- with('regress_test_array_gint32_in', [:int32, :pointer], :int32).
148
+ with("regress_test_array_gint32_in", [:int32, :pointer], :int32).
135
149
  and_return true
136
150
  GirFFI::Builder.attach_ffi_function(lib, info)
137
151
  end
138
152
 
139
- it 'calls attach_function with the correct types for Regress.test_enum_param' do
140
- info = get_introspection_data 'Regress', 'test_enum_param'
153
+ it "calls attach_function with the correct types for Regress.test_enum_param" do
154
+ info = get_introspection_data "Regress", "test_enum_param"
141
155
  expect(lib).to receive(:attach_function).
142
- with('regress_test_enum_param', [Regress::TestEnum], :pointer).
156
+ with("regress_test_enum_param", [Regress::TestEnum], :pointer).
143
157
  and_return true
144
158
  GirFFI::Builder.attach_ffi_function(lib, info)
145
159
  end
146
160
 
147
- it 'does not attach the function if it is already defined' do
148
- info = get_introspection_data 'Regress', 'test_array_gint32_in'
161
+ it "does not attach the function if it is already defined" do
162
+ info = get_introspection_data "Regress", "test_array_gint32_in"
149
163
  allow(lib).to receive(:method_defined?).and_return true
150
164
  expect(lib).not_to receive(:attach_function)
151
165
  GirFFI::Builder.attach_ffi_function(lib, info)
@@ -156,17 +170,17 @@ describe GirFFI::Builder do
156
170
  # NOTE: Legacy tests below.
157
171
  #
158
172
 
159
- describe 'looking at Regress.test_callback_destroy_notify' do
173
+ describe "looking at Regress.test_callback_destroy_notify" do
160
174
  before do
161
175
  save_module :GObject
162
176
  save_module :Regress
163
- GirFFI::Builder.build_module 'GObject'
164
- GirFFI::Builder.build_module 'Regress'
165
- @go = get_introspection_data 'Regress', 'test_callback_destroy_notify'
177
+ GirFFI::Builder.build_module "GObject"
178
+ GirFFI::Builder.build_module "Regress"
179
+ @go = get_introspection_data "Regress", "test_callback_destroy_notify"
166
180
  end
167
181
 
168
- it 'defines ffi callback types :Callback and :ClosureNotify' do
169
- Regress.setup_method! 'test_callback_destroy_notify'
182
+ it "defines ffi callback types :Callback and :ClosureNotify" do
183
+ Regress.setup_method! "test_callback_destroy_notify"
170
184
  tcud = Regress::Lib.find_type :TestCallbackUserData
171
185
  dn = GLib::Lib.find_type :DestroyNotify
172
186
 
@@ -182,40 +196,40 @@ describe GirFFI::Builder do
182
196
  end
183
197
  end
184
198
 
185
- describe 'building Regress::TestBoxed' do
199
+ describe "building Regress::TestBoxed" do
186
200
  before do
187
- GirFFI::Builder.build_class get_introspection_data('Regress', 'TestBoxed')
201
+ GirFFI::Builder.build_class get_introspection_data("Regress", "TestBoxed")
188
202
  end
189
203
 
190
- it 'sets up #wrap' do
191
- assert Regress::TestBoxed.respond_to? 'wrap'
204
+ it "sets up #wrap" do
205
+ assert Regress::TestBoxed.respond_to? "wrap"
192
206
  end
193
207
 
194
- it 'sets up #allocate' do
195
- assert Regress::TestBoxed.respond_to? 'allocate'
208
+ it "sets up #allocate" do
209
+ assert Regress::TestBoxed.respond_to? "allocate"
196
210
  end
197
211
  end
198
212
 
199
- describe 'built Regress module' do
213
+ describe "built Regress module" do
200
214
  before do
201
215
  save_module :Regress
202
- GirFFI::Builder.build_module 'Regress'
216
+ GirFFI::Builder.build_module "Regress"
203
217
  end
204
218
 
205
- it 'autocreates singleton methods' do
219
+ it "autocreates singleton methods" do
206
220
  refute_defines_singleton_method Regress, :test_uint
207
221
  Regress.test_uint 31
208
222
  assert_defines_singleton_method Regress, :test_uint
209
223
  end
210
224
 
211
- it 'autocreates the TestObj class on first access' do
225
+ it "autocreates the TestObj class on first access" do
212
226
  assert !Regress.const_defined?(:TestObj)
213
- Regress::TestObj.must_be_instance_of Class
227
+ _(Regress::TestObj).must_be_instance_of Class
214
228
  assert Regress.const_defined? :TestObj
215
229
  end
216
230
 
217
- it 'knows its own module builder' do
218
- Regress.gir_ffi_builder.must_be_instance_of GirFFI::Builders::ModuleBuilder
231
+ it "knows its own module builder" do
232
+ _(Regress.gir_ffi_builder).must_be_instance_of GirFFI::Builders::ModuleBuilder
219
233
  end
220
234
 
221
235
  after do
@@ -223,73 +237,81 @@ describe GirFFI::Builder do
223
237
  end
224
238
  end
225
239
 
226
- describe 'having built Regress::TestObj' do
240
+ describe "having built Regress::TestObj" do
227
241
  before do
228
- GirFFI::Builder.build_class get_introspection_data('Regress', 'TestObj')
242
+ GirFFI::Builder.build_class get_introspection_data("Regress", "TestObj")
229
243
  end
230
244
 
231
- it 'C functions for called instance methods get attached to Regress::Lib' do
232
- o = Regress::TestObj.new_from_file('foo')
245
+ it "C functions for called instance methods get attached to Regress::Lib" do
246
+ o = Regress::TestObj.new_from_file("foo")
233
247
  o.instance_method
234
- Regress::Lib.must_respond_to :regress_test_obj_instance_method
248
+ _(Regress::Lib).must_respond_to :regress_test_obj_instance_method
235
249
  end
236
250
 
237
- it 'the built class knows its own GIR info' do
238
- Regress::TestObj.gir_info.name.must_equal 'TestObj'
251
+ it "the built class knows its own GIR info" do
252
+ _(Regress::TestObj.gir_info.name).must_equal "TestObj"
239
253
  end
240
254
 
241
- it 'the built class knows its own class builder' do
242
- Regress::TestObj.gir_ffi_builder.must_be_instance_of GirFFI::Builders::ObjectBuilder
255
+ it "the built class knows its own class builder" do
256
+ _(Regress::TestObj.gir_ffi_builder).must_be_instance_of GirFFI::Builders::ObjectBuilder
243
257
  end
244
258
  end
245
259
 
246
- describe 'built Regress::TestSubObj' do
247
- it 'inherits #set_bare from its superclass' do
260
+ describe "built Regress::TestSubObj" do
261
+ it "inherits #set_bare from its superclass" do
248
262
  o1 = Regress::TestSubObj.new
249
263
  o1.set_bare(nil)
250
264
  pass
251
265
  end
252
266
 
253
- it 'overrides #instance_method' do
254
- obj = Regress::TestObj.new_from_file('foo')
267
+ it "overrides #instance_method" do
268
+ obj = Regress::TestObj.new_from_file("foo")
255
269
  subobj = Regress::TestSubObj.new
256
270
 
257
- obj.instance_method.must_equal(-1)
258
- subobj.instance_method.must_equal 0
271
+ _(obj.instance_method).must_equal(-1)
272
+ _(subobj.instance_method).must_equal 0
259
273
  end
260
274
  end
261
275
 
262
- describe 'building Regress::TestSubObj' do
276
+ describe "building Regress::TestSubObj" do
263
277
  before do
264
278
  save_module :Regress
265
- GirFFI::Builder.build_class get_introspection_data('Regress', 'TestSubObj')
279
+ GirFFI::Builder.build_class get_introspection_data("Regress", "TestSubObj")
266
280
  end
267
281
 
268
- it 'sets up the Regress namespace' do
282
+ it "sets up the Regress namespace" do
269
283
  assert Regress.const_defined? :Lib
270
284
  assert Regress.respond_to? :gir_ffi_builder
271
285
  assert Regress.const_defined? :GIR_FFI_BUILDER
272
286
  end
273
287
 
274
- it 'creates the Regress::Lib module ready to attach functions from the shared library' do
275
- expected = [gir.shared_library('Regress')]
288
+ it "creates the Regress::Lib module ready to attach functions from the shared library" do
289
+ expected = [gir.shared_library("Regress")]
276
290
  assert_equal expected, Regress::Lib.ffi_libraries.map(&:name)
277
291
  end
278
292
 
279
- it 'builds parent classes also' do
293
+ it "builds parent classes also" do
280
294
  assert Regress.const_defined? :TestObj
281
295
  assert Object.const_defined? :GObject
282
296
  assert GObject.const_defined? :Object
283
297
  end
284
298
 
285
- it 'sets up the inheritance chain' do
286
- Regress::TestSubObj.registered_ancestors.
287
- must_equal [Regress::TestSubObj,
299
+ it "sets up the inheritance chain" do
300
+ # Introduced in version 1.59.1
301
+ expected = if Regress::TestSubObj.find_property :boolean
302
+ [Regress::TestSubObj,
303
+ Regress::TestInterface,
304
+ Regress::TestObj,
305
+ GObject::Object]
306
+ else
307
+ [Regress::TestSubObj,
288
308
  Regress::TestObj,
289
309
  GObject::Object]
310
+ end
311
+ _(Regress::TestSubObj.registered_ancestors).must_equal expected
290
312
  end
291
313
 
292
- it 'creates a Regress::TestSubObj#to_ptr method' do
314
+ it "creates a Regress::TestSubObj#to_ptr method" do
293
315
  assert Regress::TestSubObj.public_method_defined? :to_ptr
294
316
  end
295
317