gir_ffi 0.15.3 → 0.15.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Changelog.md +15 -0
- data/README.md +5 -6
- 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/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 +0 -3
- data/lib/ffi-gobject/object.rb +77 -73
- data/lib/ffi-gobject/object_class.rb +1 -1
- data/lib/ffi-gobject/value.rb +107 -108
- data/lib/ffi-gobject_introspection/i_base_info.rb +20 -19
- data/lib/gir_ffi-base/gobject/lib.rb +4 -0
- data/lib/gir_ffi/array_element_convertor.rb +1 -2
- data/lib/gir_ffi/boxed_base.rb +1 -5
- data/lib/gir_ffi/builder.rb +1 -1
- data/lib/gir_ffi/builder_helper.rb +7 -4
- 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 +14 -12
- data/lib/gir_ffi/builders/callback_return_value_builder.rb +4 -6
- data/lib/gir_ffi/builders/class_struct_builder.rb +24 -0
- data/lib/gir_ffi/builders/enum_builder.rb +3 -3
- 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/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 +16 -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 +5 -5
- 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 +3 -3
- 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/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 +86 -136
- 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 -123
- 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 -153
- data/test/gir_ffi/allocation_helper_test.rb +0 -36
- data/test/gir_ffi/arg_helper_test.rb +0 -146
- 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 -168
- data/test/gir_ffi/builders/argument_builder_test.rb +0 -691
- data/test/gir_ffi/builders/base_argument_builder_test.rb +0 -6
- data/test/gir_ffi/builders/callback_argument_builder_test.rb +0 -130
- data/test/gir_ffi/builders/callback_builder_test.rb +0 -117
- data/test/gir_ffi/builders/callback_return_value_builder_test.rb +0 -84
- data/test/gir_ffi/builders/constant_builder_test.rb +0 -6
- data/test/gir_ffi/builders/constructor_builder_test.rb +0 -39
- data/test/gir_ffi/builders/enum_builder_test.rb +0 -23
- data/test/gir_ffi/builders/field_builder_test.rb +0 -140
- data/test/gir_ffi/builders/function_builder_test.rb +0 -570
- data/test/gir_ffi/builders/initializer_builder_test.rb +0 -56
- 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 -161
- data/test/gir_ffi/builders/registered_type_builder_test.rb +0 -54
- data/test/gir_ffi/builders/return_value_builder_test.rb +0 -444
- data/test/gir_ffi/builders/signal_closure_builder_test.rb +0 -199
- data/test/gir_ffi/builders/struct_builder_test.rb +0 -96
- 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 -528
- data/test/gir_ffi/builders/vfunc_argument_builder_test.rb +0 -107
- data/test/gir_ffi/builders/vfunc_builder_test.rb +0 -245
- data/test/gir_ffi/callback_base_test.rb +0 -22
- data/test/gir_ffi/class_base_test.rb +0 -171
- data/test/gir_ffi/core_test.rb +0 -99
- 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 -22
- 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 -22
- 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 -712
- 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 -67
- 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 -54
- data/test/integration/generated_everything_test.rb +0 -453
- data/test/integration/generated_gimarshallingtests_test.rb +0 -3109
- 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 -21
- 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 -4076
- 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 -45
- data/test/integration/method_lookup_test.rb +0 -34
- data/test/introspection_test_helper.rb +0 -94
- 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,26 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "introspection_test_helper"
|
4
|
-
|
5
|
-
describe GObjectIntrospection::GObjectTypeInit do
|
6
|
-
describe "Lib" do
|
7
|
-
it "represents the gobject-2.0 library" do
|
8
|
-
_(GObjectIntrospection::GObjectTypeInit::Lib.ffi_libraries.first.name)
|
9
|
-
.must_match(/gobject-2\.0/)
|
10
|
-
end
|
11
|
-
|
12
|
-
it "provides the g_type_init function" do
|
13
|
-
_(GObjectIntrospection::GObjectTypeInit::Lib).must_respond_to :g_type_init
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
describe ".type_init" do
|
18
|
-
it "calls the g_type_init function from the gobject-2.0 library" do
|
19
|
-
allow(GObjectIntrospection::GObjectTypeInit::Lib).to receive(:g_type_init)
|
20
|
-
|
21
|
-
GObjectIntrospection::GObjectTypeInit.type_init
|
22
|
-
|
23
|
-
expect(GObjectIntrospection::GObjectTypeInit::Lib).to have_received(:g_type_init)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "introspection_test_helper"
|
4
|
-
|
5
|
-
describe GObjectIntrospection::IBaseInfo do
|
6
|
-
let(:described_class) { GObjectIntrospection::IBaseInfo }
|
7
|
-
describe "#initialize" do
|
8
|
-
it "raises an error if a null pointer is passed" do
|
9
|
-
expect(ptr = Object.new).to receive(:null?).and_return true
|
10
|
-
_(proc { described_class.new ptr }).must_raise ArgumentError
|
11
|
-
end
|
12
|
-
|
13
|
-
it "raises no error if a non-null pointer is passed" do
|
14
|
-
expect(ptr = Object.new).to receive(:null?).and_return false
|
15
|
-
described_class.new ptr
|
16
|
-
pass
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
describe "#deprecated?" do
|
21
|
-
let(:deprecated_info) { get_introspection_data "Regress", "test_versioning" }
|
22
|
-
let(:other_info) { get_introspection_data "Regress", "test_value_return" }
|
23
|
-
|
24
|
-
it "returns true for a deprecated item" do
|
25
|
-
_(deprecated_info).must_be :deprecated?
|
26
|
-
end
|
27
|
-
|
28
|
-
it "returns false for a non-deprecated item" do
|
29
|
-
_(other_info).wont_be :deprecated?
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
describe "upon garbage collection" do
|
34
|
-
it "calls g_base_info_unref" do
|
35
|
-
skip "cannot be reliably tested on JRuby" if jruby?
|
36
|
-
|
37
|
-
expect(ptr = Object.new).to receive(:null?).and_return false
|
38
|
-
expect(lib = Object.new).to receive(:g_base_info_unref).with(ptr).and_return nil
|
39
|
-
described_class.new ptr, lib
|
40
|
-
|
41
|
-
GC.start
|
42
|
-
|
43
|
-
# Yes, the next three lines are needed. https://gist.github.com/4277829
|
44
|
-
allow(ptr2 = Object.new).to receive(:null?).and_return false
|
45
|
-
allow(lib).to receive(:g_base_info_unref).with(ptr2).and_return nil
|
46
|
-
described_class.new ptr2, lib
|
47
|
-
|
48
|
-
GC.start
|
49
|
-
GC.start
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
@@ -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,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
|