gir_ffi 0.15.1 → 0.15.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Changelog.md +42 -0
- data/README.md +10 -10
- data/TODO.md +14 -35
- data/docs/Documentation.md +6 -0
- data/docs/Subclassing.md +38 -0
- data/lib/ffi-glib.rb +8 -3
- data/lib/ffi-glib/byte_array.rb +2 -1
- data/lib/ffi-glib/container_class_methods.rb +1 -3
- data/lib/ffi-glib/destroy_notify.rb +2 -2
- data/lib/ffi-glib/hash_table.rb +1 -2
- data/lib/ffi-glib/list.rb +11 -5
- data/lib/ffi-glib/list_methods.rb +12 -0
- data/lib/ffi-glib/s_list.rb +10 -4
- data/lib/ffi-gobject.rb +2 -5
- data/lib/ffi-gobject/object.rb +102 -92
- data/lib/ffi-gobject/object_class.rb +1 -1
- data/lib/ffi-gobject/ruby_closure.rb +1 -1
- data/lib/ffi-gobject/value.rb +108 -117
- data/lib/ffi-gobject_introspection/i_base_info.rb +35 -27
- data/lib/ffi-gobject_introspection/lib.rb +1 -1
- data/lib/gir_ffi-base/gobject/lib.rb +4 -0
- data/lib/gir_ffi/array_element_convertor.rb +2 -3
- data/lib/gir_ffi/boxed_base.rb +13 -11
- data/lib/gir_ffi/builder.rb +3 -4
- data/lib/gir_ffi/builder_helper.rb +10 -2
- data/lib/gir_ffi/builders/base_argument_builder.rb +2 -2
- data/lib/gir_ffi/builders/base_method_builder.rb +1 -1
- data/lib/gir_ffi/builders/base_type_builder.rb +1 -1
- data/lib/gir_ffi/builders/callback_argument_builder.rb +2 -0
- data/lib/gir_ffi/builders/callback_builder.rb +25 -11
- data/lib/gir_ffi/builders/callback_return_value_builder.rb +4 -6
- data/lib/gir_ffi/builders/enum_builder.rb +9 -5
- data/lib/gir_ffi/builders/field_builder.rb +2 -1
- data/lib/gir_ffi/builders/function_builder.rb +1 -1
- data/lib/gir_ffi/builders/interface_builder.rb +3 -1
- data/lib/gir_ffi/builders/mapping_method_builder.rb +1 -1
- data/lib/gir_ffi/builders/marshalling_method_builder.rb +5 -2
- data/lib/gir_ffi/builders/method_template.rb +4 -4
- data/lib/gir_ffi/builders/module_builder.rb +4 -2
- data/lib/gir_ffi/builders/null_argument_builder.rb +0 -2
- data/lib/gir_ffi/builders/null_return_value_builder.rb +0 -2
- data/lib/gir_ffi/builders/object_builder.rb +18 -6
- data/lib/gir_ffi/builders/property_builder.rb +1 -2
- data/lib/gir_ffi/builders/signal_closure_builder.rb +3 -5
- data/lib/gir_ffi/builders/struct_builder.rb +34 -7
- data/lib/gir_ffi/builders/user_defined_builder.rb +8 -1
- data/lib/gir_ffi/builders/vfunc_argument_builder.rb +1 -1
- data/lib/gir_ffi/callback_base.rb +7 -8
- data/lib/gir_ffi/class_base.rb +1 -0
- data/lib/gir_ffi/core.rb +17 -2
- data/lib/gir_ffi/glib_error.rb +1 -2
- data/lib/gir_ffi/in_pointer.rb +7 -0
- data/lib/gir_ffi/object_base.rb +27 -0
- data/lib/gir_ffi/return_value_info.rb +1 -2
- data/lib/gir_ffi/struct_base.rb +1 -9
- data/lib/gir_ffi/struct_like_base.rb +9 -5
- data/lib/gir_ffi/type_map.rb +1 -0
- data/lib/gir_ffi/unintrospectable_type_info.rb +1 -1
- data/lib/gir_ffi/union_base.rb +1 -9
- data/lib/gir_ffi/user_defined_object_info.rb +3 -2
- data/lib/gir_ffi/version.rb +1 -1
- data/lib/gir_ffi/vfunc_implementation.rb +1 -0
- metadata +106 -143
- data/Gemfile +0 -14
- data/Rakefile +0 -9
- data/tasks/test.rake +0 -204
- data/test/base_test_helper.rb +0 -70
- data/test/ffi-glib/array_test.rb +0 -203
- data/test/ffi-glib/byte_array_test.rb +0 -28
- data/test/ffi-glib/bytes_test.rb +0 -61
- data/test/ffi-glib/closure_test.rb +0 -38
- data/test/ffi-glib/destroy_notify_test.rb +0 -18
- data/test/ffi-glib/hash_table_test.rb +0 -68
- data/test/ffi-glib/list_test.rb +0 -86
- data/test/ffi-glib/main_loop_test.rb +0 -53
- data/test/ffi-glib/ptr_array_test.rb +0 -112
- data/test/ffi-glib/ruby_closure_test.rb +0 -62
- data/test/ffi-glib/s_list_test.rb +0 -76
- data/test/ffi-glib/strv_test.rb +0 -60
- data/test/ffi-glib/variant_test.rb +0 -12
- data/test/ffi-gobject/gobject_test.rb +0 -76
- data/test/ffi-gobject/object_class_test.rb +0 -31
- data/test/ffi-gobject/object_test.rb +0 -122
- data/test/ffi-gobject/param_spec_test.rb +0 -32
- data/test/ffi-gobject/value_test.rb +0 -390
- data/test/ffi-gobject_introspection/gobject_type_init_test.rb +0 -26
- data/test/ffi-gobject_introspection/i_base_info_test.rb +0 -52
- data/test/ffi-gobject_introspection/i_constant_info_test.rb +0 -29
- data/test/ffi-gobject_introspection/i_enum_info_test.rb +0 -18
- data/test/ffi-gobject_introspection/i_function_info_test.rb +0 -6
- data/test/ffi-gobject_introspection/i_interface_info_test.rb +0 -23
- data/test/ffi-gobject_introspection/i_object_info_test.rb +0 -49
- data/test/ffi-gobject_introspection/i_property_info_test.rb +0 -47
- data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +0 -27
- data/test/ffi-gobject_introspection/i_repository_test.rb +0 -81
- data/test/ffi-gobject_introspection/i_struct_info_test.rb +0 -23
- data/test/ffi-gobject_introspection/i_type_info_test.rb +0 -30
- data/test/ffi-gobject_introspection/i_union_info_test.rb +0 -17
- data/test/ffi-gobject_introspection/i_vfunc_info_test.rb +0 -41
- data/test/ffi-gobject_introspection/lib_test.rb +0 -13
- data/test/ffi-gobject_introspection/strv_test.rb +0 -46
- data/test/ffi-gobject_test.rb +0 -151
- data/test/gir_ffi/allocation_helper_test.rb +0 -36
- data/test/gir_ffi/arg_helper_test.rb +0 -139
- data/test/gir_ffi/boolean_test.rb +0 -43
- data/test/gir_ffi/boxed_base_test.rb +0 -65
- data/test/gir_ffi/builder_test.rb +0 -322
- data/test/gir_ffi/builders/argument_builder_test.rb +0 -651
- data/test/gir_ffi/builders/base_argument_builder_test.rb +0 -6
- data/test/gir_ffi/builders/callback_argument_builder_test.rb +0 -126
- data/test/gir_ffi/builders/callback_builder_test.rb +0 -117
- data/test/gir_ffi/builders/callback_return_value_builder_test.rb +0 -81
- data/test/gir_ffi/builders/constant_builder_test.rb +0 -6
- data/test/gir_ffi/builders/constructor_builder_test.rb +0 -37
- data/test/gir_ffi/builders/enum_builder_test.rb +0 -23
- data/test/gir_ffi/builders/field_builder_test.rb +0 -134
- data/test/gir_ffi/builders/function_builder_test.rb +0 -550
- data/test/gir_ffi/builders/initializer_builder_test.rb +0 -54
- data/test/gir_ffi/builders/interface_builder_test.rb +0 -32
- data/test/gir_ffi/builders/module_builder_test.rb +0 -43
- data/test/gir_ffi/builders/object_builder_test.rb +0 -98
- data/test/gir_ffi/builders/property_builder_test.rb +0 -158
- data/test/gir_ffi/builders/registered_type_builder_test.rb +0 -54
- data/test/gir_ffi/builders/return_value_builder_test.rb +0 -433
- data/test/gir_ffi/builders/signal_closure_builder_test.rb +0 -197
- data/test/gir_ffi/builders/struct_builder_test.rb +0 -93
- data/test/gir_ffi/builders/unintrospectable_boxed_builder_test.rb +0 -29
- data/test/gir_ffi/builders/unintrospectable_builder_test.rb +0 -84
- data/test/gir_ffi/builders/union_builder_test.rb +0 -28
- data/test/gir_ffi/builders/user_defined_builder_test.rb +0 -524
- data/test/gir_ffi/builders/vfunc_argument_builder_test.rb +0 -101
- data/test/gir_ffi/builders/vfunc_builder_test.rb +0 -241
- data/test/gir_ffi/callback_base_test.rb +0 -22
- data/test/gir_ffi/class_base_test.rb +0 -166
- data/test/gir_ffi/core_test.rb +0 -98
- data/test/gir_ffi/enum_base_test.rb +0 -43
- data/test/gir_ffi/error_type_info_test.rb +0 -50
- data/test/gir_ffi/ffi_ext/pointer_test.rb +0 -20
- data/test/gir_ffi/g_type_test.rb +0 -31
- data/test/gir_ffi/in_pointer_test.rb +0 -203
- data/test/gir_ffi/info_ext/i_callable_info_test.rb +0 -26
- data/test/gir_ffi/info_ext/i_callback_info_test.rb +0 -21
- data/test/gir_ffi/info_ext/i_field_info_test.rb +0 -37
- data/test/gir_ffi/info_ext/i_function_info_test.rb +0 -74
- data/test/gir_ffi/info_ext/i_signal_info_test.rb +0 -32
- data/test/gir_ffi/info_ext/i_type_info_test.rb +0 -711
- data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +0 -19
- data/test/gir_ffi/info_ext/safe_constant_name_test.rb +0 -26
- data/test/gir_ffi/info_ext/safe_function_name_test.rb +0 -26
- data/test/gir_ffi/interface_base_test.rb +0 -20
- data/test/gir_ffi/method_stubber_test.rb +0 -65
- data/test/gir_ffi/object_base_test.rb +0 -64
- data/test/gir_ffi/object_store_test.rb +0 -41
- data/test/gir_ffi/receiver_argument_info_test.rb +0 -33
- data/test/gir_ffi/sized_array_test.rb +0 -206
- data/test/gir_ffi/struct_base_test.rb +0 -23
- data/test/gir_ffi/struct_like_base_test.rb +0 -167
- data/test/gir_ffi/type_map_test.rb +0 -17
- data/test/gir_ffi/unintrospectable_type_info_test.rb +0 -121
- data/test/gir_ffi/union_base_test.rb +0 -23
- data/test/gir_ffi/user_defined_object_info_test.rb +0 -119
- data/test/gir_ffi/user_defined_property_info_test.rb +0 -39
- data/test/gir_ffi/variable_name_generator_test.rb +0 -18
- data/test/gir_ffi/version_test.rb +0 -9
- data/test/gir_ffi/zero_terminated_test.rb +0 -108
- data/test/gir_ffi_test_helper.rb +0 -84
- data/test/integration/callback_exceptions_test.rb +0 -59
- data/test/integration/derived_classes_test.rb +0 -53
- data/test/integration/generated_everything_test.rb +0 -452
- data/test/integration/generated_gimarshallingtests_test.rb +0 -3096
- data/test/integration/generated_gio_test.rb +0 -116
- data/test/integration/generated_glib_test.rb +0 -10
- data/test/integration/generated_gobject_test.rb +0 -124
- data/test/integration/generated_gst_test.rb +0 -38
- data/test/integration/generated_gtk_source_test.rb +0 -32
- data/test/integration/generated_gtop_test.rb +0 -22
- data/test/integration/generated_pango_ft2_test.rb +0 -17
- data/test/integration/generated_pango_test.rb +0 -24
- data/test/integration/generated_regress_test.rb +0 -4038
- data/test/integration/generated_secret_test.rb +0 -14
- data/test/integration/generated_utility_test.rb +0 -174
- data/test/integration/generated_warnlib_test.rb +0 -43
- data/test/integration/method_lookup_test.rb +0 -34
- data/test/introspection_test_helper.rb +0 -93
- data/test/lib/Makefile.am +0 -110
- data/test/lib/autogen.sh +0 -4
- data/test/lib/configure.ac +0 -34
- data/test/lib/m4/jhflags.m4 +0 -21
- data/test/minitest/stats_plugin.rb +0 -30
@@ -1,62 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "gir_ffi_test_helper"
|
4
|
-
|
5
|
-
describe GObject::RubyClosure do
|
6
|
-
describe ".new" do
|
7
|
-
it "takes a mandatory block argument" do
|
8
|
-
assert_raises ArgumentError do
|
9
|
-
GObject::RubyClosure.new
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
it "returns a kind of Closure" do
|
14
|
-
c = GObject::RubyClosure.new {}
|
15
|
-
assert_kind_of GObject::Closure, c
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
describe ".wrap" do
|
20
|
-
it "returns a fully functional object that can invoke the original block" do
|
21
|
-
a = 0
|
22
|
-
c = GObject::RubyClosure.new { a = 2 }
|
23
|
-
c2 = GObject::RubyClosure.wrap(c.to_ptr)
|
24
|
-
c2.invoke_block
|
25
|
-
assert_equal 2, a
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
describe ".marshaller" do
|
30
|
-
it "invokes its closure argument's block" do
|
31
|
-
a = 0
|
32
|
-
c = GObject::RubyClosure.new { a = 2 }
|
33
|
-
GObject::RubyClosure.marshaller(c, nil, nil, nil, nil)
|
34
|
-
assert_equal 2, a
|
35
|
-
end
|
36
|
-
|
37
|
-
it "works when its closure argument is a GObject::Closure" do
|
38
|
-
a = 0
|
39
|
-
c = GObject::RubyClosure.new { a = 2 }
|
40
|
-
c2 = GObject::Closure.wrap(c.to_ptr)
|
41
|
-
GObject::RubyClosure.marshaller(c2, nil, nil, nil, nil)
|
42
|
-
assert_equal 2, a
|
43
|
-
end
|
44
|
-
|
45
|
-
it "stores the closure's return value in the proper gvalue" do
|
46
|
-
c = GObject::RubyClosure.new { 2 }
|
47
|
-
gv = GObject::Value.new.init GObject::TYPE_INT
|
48
|
-
GObject::RubyClosure.marshaller(c, gv, nil, nil, nil)
|
49
|
-
assert_equal 2, gv.get_value
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
describe "#invoke" do
|
54
|
-
it "invokes the ruby block" do
|
55
|
-
a = 0
|
56
|
-
c = GObject::RubyClosure.new { a = 2 }
|
57
|
-
c2 = GObject::Closure.wrap(c.to_ptr)
|
58
|
-
c2.invoke nil, []
|
59
|
-
assert_equal 2, a
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "gir_ffi_test_helper"
|
4
|
-
|
5
|
-
describe GLib::SList do
|
6
|
-
it "knows its element type" do
|
7
|
-
arr = GLib::SList.new :gint32
|
8
|
-
assert_equal :gint32, arr.element_type
|
9
|
-
end
|
10
|
-
|
11
|
-
describe "#prepend" do
|
12
|
-
it "prepends integer values" do
|
13
|
-
lst = GLib::SList.new :gint32
|
14
|
-
res = lst.prepend 1
|
15
|
-
assert_equal 1, res.data
|
16
|
-
end
|
17
|
-
|
18
|
-
it "prepends string values" do
|
19
|
-
lst = GLib::SList.new :utf8
|
20
|
-
res = lst.prepend "bla"
|
21
|
-
assert_equal "bla", res.data
|
22
|
-
end
|
23
|
-
|
24
|
-
it "prepends multiple values into a single list" do
|
25
|
-
lst = GLib::SList.new :gint32
|
26
|
-
|
27
|
-
res = lst.prepend 1
|
28
|
-
res2 = res.prepend 2
|
29
|
-
|
30
|
-
assert_equal 2, res2.data
|
31
|
-
assert_equal 1, res.data
|
32
|
-
assert_equal res.to_ptr, res2.next.to_ptr
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe "::from" do
|
37
|
-
it "creates a GSList from a Ruby array" do
|
38
|
-
lst = GLib::SList.from :gint32, [3, 2, 1]
|
39
|
-
assert_equal [3, 2, 1], lst.to_a
|
40
|
-
end
|
41
|
-
|
42
|
-
it "return its argument if given a GSList" do
|
43
|
-
lst = GLib::SList.from :gint32, [3, 2, 1]
|
44
|
-
lst2 = GLib::SList.from :gint32, lst
|
45
|
-
assert_equal lst, lst2
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
describe "#==" do
|
50
|
-
it "returns true when comparing to an array with the same elements" do
|
51
|
-
list = GLib::SList.from :gint32, [1, 2, 3]
|
52
|
-
|
53
|
-
_(list).must_be :==, [1, 2, 3]
|
54
|
-
end
|
55
|
-
|
56
|
-
it "returns false when comparing to an array with different elements" do
|
57
|
-
list = GLib::SList.from :gint32, [1, 2, 3]
|
58
|
-
|
59
|
-
_(list).wont_be :==, [1, 2]
|
60
|
-
end
|
61
|
-
|
62
|
-
it "returns true when comparing to a list with the same elements" do
|
63
|
-
list = GLib::SList.from :gint32, [1, 2, 3]
|
64
|
-
other = GLib::SList.from :gint32, [1, 2, 3]
|
65
|
-
|
66
|
-
_(list).must_be :==, other
|
67
|
-
end
|
68
|
-
|
69
|
-
it "returns false when comparing to a list with different elements" do
|
70
|
-
list = GLib::SList.from :gint32, [1, 2, 3]
|
71
|
-
other = GLib::SList.from :gint32, [1, 2]
|
72
|
-
|
73
|
-
_(list).wont_be :==, other
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
data/test/ffi-glib/strv_test.rb
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "base_test_helper"
|
4
|
-
|
5
|
-
describe GLib::Strv do
|
6
|
-
describe "::from" do
|
7
|
-
it "creates a Strv from a Ruby array" do
|
8
|
-
strv = GLib::Strv.from %w(1 2 3)
|
9
|
-
_(strv).must_be_instance_of GLib::Strv
|
10
|
-
_(strv.to_a).must_equal %w(1 2 3)
|
11
|
-
end
|
12
|
-
|
13
|
-
it "return its argument if given a Strv" do
|
14
|
-
strv = GLib::Strv.from %w(1 2 3)
|
15
|
-
strv2 = GLib::Strv.from strv
|
16
|
-
assert strv2.equal? strv
|
17
|
-
end
|
18
|
-
|
19
|
-
it "wraps its argument if given a pointer" do
|
20
|
-
strv = GLib::Strv.from %w(1 2 3)
|
21
|
-
|
22
|
-
pointer = strv.to_ptr
|
23
|
-
_(pointer).must_be_kind_of FFI::Pointer
|
24
|
-
|
25
|
-
strv2 = GLib::Strv.from pointer
|
26
|
-
|
27
|
-
_(strv2).must_be_kind_of GLib::Strv
|
28
|
-
refute strv2.equal? strv
|
29
|
-
_(strv2.to_a).must_equal strv.to_a
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
describe "#==" do
|
34
|
-
it "returns true when comparing to an array with the same elements" do
|
35
|
-
strv = GLib::Strv.from %w(1 2 3)
|
36
|
-
|
37
|
-
_(strv).must_be :==, %w(1 2 3)
|
38
|
-
end
|
39
|
-
|
40
|
-
it "returns false when comparing to an array with different elements" do
|
41
|
-
strv = GLib::Strv.from %w(1 2 3)
|
42
|
-
|
43
|
-
_(strv).wont_be :==, %w(1 2)
|
44
|
-
end
|
45
|
-
|
46
|
-
it "returns true when comparing to a strv with the same elements" do
|
47
|
-
strv = GLib::Strv.from %w(1 2 3)
|
48
|
-
other = GLib::Strv.from %w(1 2 3)
|
49
|
-
|
50
|
-
_(strv).must_be :==, other
|
51
|
-
end
|
52
|
-
|
53
|
-
it "returns false when comparing to a strv with different elements" do
|
54
|
-
strv = GLib::Strv.from %w(1 2 3)
|
55
|
-
other = GLib::Strv.from %w(1 2)
|
56
|
-
|
57
|
-
_(strv).wont_be :==, other
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "gir_ffi_test_helper"
|
4
|
-
|
5
|
-
describe GLib::Variant do
|
6
|
-
describe "#get_string" do
|
7
|
-
it "returns just the contained string" do
|
8
|
-
var = GLib::Variant.new_string("Foo")
|
9
|
-
_(var.get_string).must_equal "Foo"
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "gir_ffi_test_helper"
|
4
|
-
|
5
|
-
require "ffi-gobject"
|
6
|
-
|
7
|
-
GirFFI.setup :GIMarshallingTests
|
8
|
-
|
9
|
-
describe GObject do
|
10
|
-
describe ".type_init" do
|
11
|
-
it "does not raise an error" do
|
12
|
-
GObject.type_init
|
13
|
-
pass
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
it "has constants for the fundamental GTypes" do
|
18
|
-
_(GObject::TYPE_INVALID).must_equal GObject.type_from_name("invalid")
|
19
|
-
_(GObject.type_name(GObject::TYPE_INVALID)).must_be_nil
|
20
|
-
|
21
|
-
_(GObject.type_name(GObject::TYPE_NONE)).must_equal "void"
|
22
|
-
_(GObject.type_name(GObject::TYPE_INTERFACE)).must_equal "GInterface"
|
23
|
-
_(GObject.type_name(GObject::TYPE_CHAR)).must_equal "gchar"
|
24
|
-
_(GObject.type_name(GObject::TYPE_UCHAR)).must_equal "guchar"
|
25
|
-
_(GObject.type_name(GObject::TYPE_BOOLEAN)).must_equal "gboolean"
|
26
|
-
_(GObject.type_name(GObject::TYPE_INT)).must_equal "gint"
|
27
|
-
_(GObject.type_name(GObject::TYPE_UINT)).must_equal "guint"
|
28
|
-
_(GObject.type_name(GObject::TYPE_LONG)).must_equal "glong"
|
29
|
-
_(GObject.type_name(GObject::TYPE_ULONG)).must_equal "gulong"
|
30
|
-
_(GObject.type_name(GObject::TYPE_INT64)).must_equal "gint64"
|
31
|
-
_(GObject.type_name(GObject::TYPE_UINT64)).must_equal "guint64"
|
32
|
-
_(GObject.type_name(GObject::TYPE_ENUM)).must_equal "GEnum"
|
33
|
-
_(GObject.type_name(GObject::TYPE_FLAGS)).must_equal "GFlags"
|
34
|
-
_(GObject.type_name(GObject::TYPE_FLOAT)).must_equal "gfloat"
|
35
|
-
_(GObject.type_name(GObject::TYPE_DOUBLE)).must_equal "gdouble"
|
36
|
-
_(GObject.type_name(GObject::TYPE_STRING)).must_equal "gchararray"
|
37
|
-
_(GObject.type_name(GObject::TYPE_POINTER)).must_equal "gpointer"
|
38
|
-
_(GObject.type_name(GObject::TYPE_BOXED)).must_equal "GBoxed"
|
39
|
-
_(GObject.type_name(GObject::TYPE_PARAM)).must_equal "GParam"
|
40
|
-
_(GObject.type_name(GObject::TYPE_OBJECT)).must_equal "GObject"
|
41
|
-
_(GObject.type_name(GObject::TYPE_GTYPE)).must_equal "GType"
|
42
|
-
_(GObject.type_name(GObject::TYPE_VARIANT)).must_equal "GVariant"
|
43
|
-
|
44
|
-
_(GObject.type_name(GObject::TYPE_ARRAY)).must_equal "GArray"
|
45
|
-
_(GObject.type_name(GObject::TYPE_BYTE_ARRAY)).must_equal "GByteArray"
|
46
|
-
_(GObject.type_name(GObject::TYPE_ERROR)).must_equal "GError"
|
47
|
-
_(GObject.type_name(GObject::TYPE_HASH_TABLE)).must_equal "GHashTable"
|
48
|
-
_(GObject.type_name(GObject::TYPE_STRV)).must_equal "GStrv"
|
49
|
-
end
|
50
|
-
|
51
|
-
describe "::object_class_from_instance" do
|
52
|
-
it "returns a GObject::ObjectClass with the correct GType" do
|
53
|
-
obj = GIMarshallingTests::OverridesObject.new
|
54
|
-
object_class = GObject.object_class_from_instance obj
|
55
|
-
gtype = object_class.g_type_class.g_type
|
56
|
-
|
57
|
-
_(object_class).must_be_instance_of GObject::ObjectClass
|
58
|
-
_(gtype).must_equal GIMarshallingTests::OverridesObject.gtype
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
describe "creating ParamSpecs" do
|
63
|
-
describe "#param_spec_int" do
|
64
|
-
it "creates a GObject::ParamSpecInt" do
|
65
|
-
spec = GObject.param_spec_int("foo", "foo bar",
|
66
|
-
"The Foo Bar Property",
|
67
|
-
10, 20, 15,
|
68
|
-
3)
|
69
|
-
_(spec).must_be_instance_of GObject::ParamSpecInt
|
70
|
-
_(spec.struct[:minimum]).must_equal 10
|
71
|
-
_(spec.struct[:maximum]).must_equal 20
|
72
|
-
_(spec.get_default_value).must_equal 15
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "gir_ffi_test_helper"
|
4
|
-
|
5
|
-
require "ffi-gobject"
|
6
|
-
|
7
|
-
describe GObject::ObjectClass do
|
8
|
-
describe "#list_properties" do
|
9
|
-
it "returns GIMarshallingTests::OverridesObject's properties" do
|
10
|
-
obj = GIMarshallingTests::OverridesObject.new
|
11
|
-
object_class = GObject.object_class_from_instance obj
|
12
|
-
|
13
|
-
info = get_introspection_data "GIMarshallingTests", "OverridesObject"
|
14
|
-
expected_props = info.properties.map(&:name)
|
15
|
-
expected_props += info.parent.properties.map(&:name)
|
16
|
-
|
17
|
-
props = object_class.list_properties
|
18
|
-
prop_names = props.map(&:get_name)
|
19
|
-
|
20
|
-
_(prop_names.sort).must_equal expected_props.sort
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
describe "#gtype" do
|
25
|
-
it "returns the correct GType" do
|
26
|
-
obj = GIMarshallingTests::OverridesObject.new
|
27
|
-
object_class = GObject.object_class_from_instance obj
|
28
|
-
_(object_class.gtype).must_equal GIMarshallingTests::OverridesObject.gtype
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,122 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "gir_ffi_test_helper"
|
4
|
-
|
5
|
-
require "ffi-gobject"
|
6
|
-
GirFFI.setup :GIMarshallingTests
|
7
|
-
|
8
|
-
describe GObject::Object do
|
9
|
-
describe ".new" do
|
10
|
-
it "is overridden to take only one argument" do
|
11
|
-
_(GObject::Object.new({})).must_be_instance_of GObject::Object
|
12
|
-
end
|
13
|
-
|
14
|
-
it "can be used to create objects with properties" do
|
15
|
-
obj = GIMarshallingTests::SubObject.new(int: 13)
|
16
|
-
_(obj.int).must_equal 13
|
17
|
-
end
|
18
|
-
|
19
|
-
it "allows omission of the first argument" do
|
20
|
-
_(GObject::Object.new).must_be_instance_of GObject::Object
|
21
|
-
end
|
22
|
-
|
23
|
-
it "raises an error for properties that do not exist" do
|
24
|
-
_(proc { GObject::Object.new(dog: "bark") }).must_raise GirFFI::PropertyNotFoundError
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
describe "#get_property" do
|
29
|
-
it "is overridden to have arity 1" do
|
30
|
-
_(GObject::Object.instance_method("get_property").arity).must_equal 1
|
31
|
-
end
|
32
|
-
|
33
|
-
it "raises an error for a property that does not exist" do
|
34
|
-
instance = GObject::Object.new
|
35
|
-
_(proc { instance.get_property "foo-bar" }).must_raise GirFFI::PropertyNotFoundError
|
36
|
-
end
|
37
|
-
|
38
|
-
it "raises an error for a property that does not exist" do
|
39
|
-
instance = GObject::Object.new
|
40
|
-
_(proc { instance.get_property "foo-bar" })
|
41
|
-
.must_raise GirFFI::PropertyNotFoundError
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
describe "#get_property_extended" do
|
46
|
-
it "raises an error for a property that does not exist" do
|
47
|
-
instance = GObject::Object.new
|
48
|
-
_(proc { instance.get_property_extended "foo-bar" })
|
49
|
-
.must_raise GirFFI::PropertyNotFoundError
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
describe "#set_property" do
|
54
|
-
it "raises an error for a property that does not exist" do
|
55
|
-
instance = GObject::Object.new
|
56
|
-
_(proc { instance.set_property "foo-bar", 123 }).must_raise GirFFI::PropertyNotFoundError
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
describe "#set_property_extended" do
|
61
|
-
it "raises an error for a property that does not exist" do
|
62
|
-
instance = GObject::Object.new
|
63
|
-
_(proc { instance.set_property_extended "foo-bar", 123 })
|
64
|
-
.must_raise GirFFI::PropertyNotFoundError
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
describe "#signal_connect" do
|
69
|
-
subject { GObject::Object.new }
|
70
|
-
|
71
|
-
it "delegates to GObject" do
|
72
|
-
expect(GObject).to receive(:signal_connect).with(subject, "some-event", nil)
|
73
|
-
subject.signal_connect("some-event") do
|
74
|
-
nothing
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
it "delegates to GObject if an optional data argument is passed" do
|
79
|
-
expect(GObject).to receive(:signal_connect).with(subject, "some-event", "data")
|
80
|
-
subject.signal_connect("some-event", "data") do
|
81
|
-
nothing
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
describe "#signal_connect_after" do
|
87
|
-
subject { GObject::Object.new }
|
88
|
-
|
89
|
-
it "delegates to GObject" do
|
90
|
-
expect(GObject).to receive(:signal_connect_after).with(subject, "some-event", nil)
|
91
|
-
subject.signal_connect_after("some-event") do
|
92
|
-
nothing
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
it "delegates to GObject if an optional data argument is passed" do
|
97
|
-
expect(GObject).to receive(:signal_connect_after).with(subject, "some-event", "data")
|
98
|
-
subject.signal_connect_after("some-event", "data") do
|
99
|
-
nothing
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
describe "upon garbage collection" do
|
105
|
-
it "lowers the reference count" do
|
106
|
-
skip "cannot be reliably tested on JRuby and Rubinius" if jruby? || rubinius?
|
107
|
-
|
108
|
-
ptr = GObject::Object.new.to_ptr
|
109
|
-
_(object_ref_count(ptr)).must_equal 1
|
110
|
-
|
111
|
-
GC.start
|
112
|
-
# Creating a new object is sometimes needed to trigger enough garbage collection.
|
113
|
-
GObject::Object.new
|
114
|
-
sleep 1
|
115
|
-
|
116
|
-
GC.start
|
117
|
-
GC.start
|
118
|
-
|
119
|
-
_(object_ref_count(ptr)).must_equal 0
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "gir_ffi_test_helper"
|
4
|
-
|
5
|
-
require "ffi-gobject"
|
6
|
-
describe GObject::ParamSpec do
|
7
|
-
let(:pspec) do
|
8
|
-
GObject.param_spec_int("foo-bar", "foo bar",
|
9
|
-
"Foo Bar",
|
10
|
-
1, 3, 2,
|
11
|
-
readable: true, writable: true)
|
12
|
-
end
|
13
|
-
let(:pspec_struct) { GObject::ParamSpec::Struct.new(pspec.to_ptr) }
|
14
|
-
|
15
|
-
describe "#ref" do
|
16
|
-
it "increases the ref count" do
|
17
|
-
old = pspec_struct[:ref_count]
|
18
|
-
pspec.ref
|
19
|
-
_(pspec_struct[:ref_count]).must_equal old + 1
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
describe "#accessor_name" do
|
24
|
-
it "returns a safe ruby method name" do
|
25
|
-
_(pspec.accessor_name).must_equal "foo_bar"
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
it "cannot be instantiated directly" do
|
30
|
-
_(proc { GObject::ParamSpec.new }).must_raise NoMethodError
|
31
|
-
end
|
32
|
-
end
|