gir_ffi 0.7.7 → 0.7.8
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 +9 -0
- data/lib/ffi-glib/array.rb +1 -1
- data/lib/ffi-glib/error.rb +1 -2
- data/lib/ffi-glib/hash_table.rb +2 -2
- data/lib/ffi-glib/variant.rb +1 -1
- data/lib/ffi-gobject/base.rb +23 -23
- data/lib/ffi-gobject/object.rb +7 -3
- data/lib/ffi-gobject/value.rb +6 -1
- data/lib/ffi-gobject.rb +9 -6
- data/lib/ffi-gobject_introspection/i_base_info.rb +3 -3
- data/lib/ffi-gobject_introspection/i_constant_info.rb +1 -1
- data/lib/ffi-gobject_introspection/i_repository.rb +4 -1
- data/lib/ffi-gobject_introspection/i_type_info.rb +1 -1
- data/lib/ffi-gobject_introspection/i_unresolved_info.rb +7 -0
- data/lib/ffi-gobject_introspection/lib.rb +1 -1
- data/lib/gir_ffi/builders/argument_builder.rb +1 -1
- data/lib/gir_ffi/builders/c_to_ruby_convertor.rb +37 -29
- data/lib/gir_ffi/builders/callback_argument_builder.rb +57 -27
- data/lib/gir_ffi/builders/closure_convertor.rb +12 -8
- data/lib/gir_ffi/builders/closure_to_pointer_convertor.rb +12 -8
- data/lib/gir_ffi/builders/constructor_result_convertor.rb +11 -7
- data/lib/gir_ffi/builders/field_builder.rb +1 -1
- data/lib/gir_ffi/builders/function_builder.rb +1 -1
- data/lib/gir_ffi/builders/mapping_method_builder.rb +1 -1
- data/lib/gir_ffi/builders/marshalling_method_builder.rb +2 -2
- data/lib/gir_ffi/builders/method_template.rb +1 -1
- data/lib/gir_ffi/builders/null_convertor.rb +11 -7
- data/lib/gir_ffi/builders/property_builder.rb +1 -1
- data/lib/gir_ffi/builders/ruby_to_c_convertor.rb +17 -13
- data/lib/gir_ffi/error_argument_info.rb +1 -1
- data/lib/gir_ffi/ffi_ext/pointer.rb +1 -1
- data/lib/gir_ffi/info_ext/i_unresolved_info.rb +12 -0
- data/lib/gir_ffi/info_ext/safe_constant_name.rb +2 -2
- data/lib/gir_ffi/info_ext/safe_function_name.rb +1 -1
- data/lib/gir_ffi/info_ext.rb +1 -0
- data/lib/gir_ffi/module_base.rb +1 -1
- data/lib/gir_ffi/receiver_argument_info.rb +15 -12
- data/lib/gir_ffi/user_data_argument_info.rb +17 -15
- data/lib/gir_ffi/user_data_type_info.rb +14 -12
- data/lib/gir_ffi/version.rb +1 -1
- data/lib/gir_ffi-base/gobject/lib.rb +1 -1
- data/test/base_test_helper.rb +15 -15
- data/test/ffi-glib/array_test.rb +38 -38
- data/test/ffi-glib/byte_array_test.rb +6 -7
- data/test/ffi-glib/bytes_test.rb +9 -9
- data/test/ffi-glib/hash_table_test.rb +26 -23
- data/test/ffi-glib/iconv_test.rb +5 -5
- data/test/ffi-glib/list_test.rb +16 -16
- data/test/ffi-glib/main_loop_test.rb +6 -6
- data/test/ffi-glib/ptr_array_test.rb +45 -45
- data/test/ffi-glib/ruby_closure_test.rb +6 -6
- data/test/ffi-glib/s_list_test.rb +15 -15
- data/test/ffi-glib/strv_test.rb +21 -21
- data/test/ffi-glib/variant_test.rb +4 -4
- data/test/ffi-gobject/gobject_test.rb +35 -35
- data/test/ffi-gobject/object_class_test.rb +1 -1
- data/test/ffi-gobject/object_test.rb +29 -6
- data/test/ffi-gobject/value_test.rb +66 -52
- data/test/ffi-gobject_introspection/i_base_info_test.rb +10 -11
- data/test/ffi-gobject_introspection/i_constant_info_test.rb +6 -6
- data/test/ffi-gobject_introspection/i_enum_info_test.rb +4 -5
- data/test/ffi-gobject_introspection/i_function_info_test.rb +0 -2
- data/test/ffi-gobject_introspection/i_object_info_test.rb +5 -5
- data/test/ffi-gobject_introspection/i_registered_type_info_test.rb +9 -8
- data/test/ffi-gobject_introspection/i_repository_test.rb +16 -16
- data/test/ffi-gobject_introspection/i_type_info_test.rb +16 -2
- data/test/ffi-gobject_introspection/lib_test.rb +2 -2
- data/test/ffi-gobject_test.rb +50 -40
- data/test/gir_ffi/arg_helper_test.rb +5 -5
- data/test/gir_ffi/builder_test.rb +41 -41
- data/test/gir_ffi/builders/argument_builder_test.rb +240 -207
- data/test/gir_ffi/builders/base_argument_builder_test.rb +0 -1
- data/test/gir_ffi/builders/callback_argument_builder_test.rb +81 -15
- data/test/gir_ffi/builders/callback_builder_test.rb +39 -14
- data/test/gir_ffi/builders/callback_return_value_builder_test.rb +41 -33
- data/test/gir_ffi/builders/enum_builder_test.rb +3 -3
- data/test/gir_ffi/builders/field_builder_test.rb +17 -17
- data/test/gir_ffi/builders/function_builder_test.rb +16 -16
- data/test/gir_ffi/builders/interface_builder_test.rb +9 -7
- data/test/gir_ffi/builders/module_builder_test.rb +5 -6
- data/test/gir_ffi/builders/object_builder_test.rb +24 -19
- data/test/gir_ffi/builders/property_builder_test.rb +25 -23
- data/test/gir_ffi/builders/registered_type_builder_test.rb +11 -11
- data/test/gir_ffi/builders/return_value_builder_test.rb +237 -197
- data/test/gir_ffi/builders/signal_closure_builder_test.rb +29 -22
- data/test/gir_ffi/builders/struct_builder_test.rb +10 -10
- data/test/gir_ffi/builders/unintrospectable_builder_test.rb +8 -8
- data/test/gir_ffi/builders/union_builder_test.rb +5 -6
- data/test/gir_ffi/builders/user_defined_builder_test.rb +42 -33
- data/test/gir_ffi/builders/vfunc_builder_test.rb +37 -30
- data/test/gir_ffi/callback_base_test.rb +4 -5
- data/test/gir_ffi/class_base_test.rb +35 -28
- data/test/gir_ffi/error_type_info_test.rb +14 -14
- data/test/gir_ffi/ffi_ext/pointer_test.rb +4 -4
- data/test/gir_ffi/g_type_test.rb +6 -6
- data/test/gir_ffi/in_out_pointer_test.rb +27 -27
- data/test/gir_ffi/in_pointer_test.rb +54 -50
- data/test/gir_ffi/info_ext/i_callable_info_test.rb +8 -7
- data/test/gir_ffi/info_ext/i_callback_info_test.rb +7 -7
- data/test/gir_ffi/info_ext/i_field_info_test.rb +10 -8
- data/test/gir_ffi/info_ext/i_function_info_test.rb +17 -15
- data/test/gir_ffi/info_ext/i_signal_info_test.rb +10 -8
- data/test/gir_ffi/info_ext/i_type_info_test.rb +158 -155
- data/test/gir_ffi/info_ext/i_unresolved_info_test.rb +17 -0
- data/test/gir_ffi/info_ext/safe_constant_name_test.rb +12 -10
- data/test/gir_ffi/info_ext/safe_function_name_test.rb +12 -10
- data/test/gir_ffi/interface_base_test.rb +6 -6
- data/test/gir_ffi/method_stubber_test.rb +16 -13
- data/test/gir_ffi/object_base_test.rb +6 -6
- data/test/gir_ffi/sized_array_test.rb +23 -23
- data/test/gir_ffi/type_map_test.rb +3 -3
- data/test/gir_ffi/unintrospectable_type_info_test.rb +18 -18
- data/test/gir_ffi/user_defined_property_info_test.rb +4 -4
- data/test/gir_ffi/user_defined_type_info_test.rb +16 -16
- data/test/gir_ffi/variable_name_generator_test.rb +6 -6
- data/test/gir_ffi/version_test.rb +1 -1
- data/test/gir_ffi/zero_terminated_test.rb +16 -17
- data/test/gir_ffi-base/glib/boolean_test.rb +13 -13
- data/test/gir_ffi-base/glib/strv_test.rb +11 -11
- data/test/gir_ffi_test.rb +18 -18
- data/test/gir_ffi_test_helper.rb +13 -18
- data/test/integration/derived_classes_test.rb +8 -8
- data/test/integration/generated_gimarshallingtests_test.rb +794 -792
- data/test/integration/generated_gio_test.rb +25 -26
- data/test/integration/generated_glib_test.rb +8 -2
- data/test/integration/generated_gobject_test.rb +16 -9
- data/test/integration/generated_pango_ft2_test.rb +1 -2
- data/test/integration/generated_pango_test.rb +2 -2
- data/test/integration/generated_regress_test.rb +785 -705
- data/test/integration/generated_secret_test.rb +5 -5
- data/test/integration/method_lookup_test.rb +5 -5
- data/test/introspection_test_helper.rb +3 -1
- data/test/minitest/stats_plugin.rb +3 -3
- metadata +6 -3
| @@ -6,54 +6,69 @@ GirFFI.setup :Regress | |
| 6 6 | 
             
            # Tests generated methods and functions in the Regress namespace.
         | 
| 7 7 | 
             
            describe Regress do
         | 
| 8 8 | 
             
              describe Regress::Lib do
         | 
| 9 | 
            -
                it  | 
| 9 | 
            +
                it 'extends FFI::Library' do
         | 
| 10 10 | 
             
                  class << Regress::Lib
         | 
| 11 | 
            -
                     | 
| 11 | 
            +
                    must_be :include?, FFI::Library
         | 
| 12 12 | 
             
                  end
         | 
| 13 13 | 
             
                end
         | 
| 14 14 | 
             
              end
         | 
| 15 | 
            -
              describe  | 
| 15 | 
            +
              describe 'Regress::ATestError' do
         | 
| 16 16 | 
             
                before do
         | 
| 17 17 | 
             
                  skip unless get_introspection_data 'Regress', 'ATestError'
         | 
| 18 18 | 
             
                end
         | 
| 19 19 |  | 
| 20 | 
            -
                it  | 
| 20 | 
            +
                it 'has the member :code0' do
         | 
| 21 21 | 
             
                  Regress::ATestError[:code0].must_equal 0
         | 
| 22 22 | 
             
                end
         | 
| 23 23 |  | 
| 24 | 
            -
                it  | 
| 24 | 
            +
                it 'has the member :code1' do
         | 
| 25 25 | 
             
                  Regress::ATestError[:code1].must_equal 1
         | 
| 26 26 | 
             
                end
         | 
| 27 27 |  | 
| 28 | 
            -
                it  | 
| 28 | 
            +
                it 'has the member :code2' do
         | 
| 29 29 | 
             
                  Regress::ATestError[:code2].must_equal 2
         | 
| 30 30 | 
             
                end
         | 
| 31 31 | 
             
              end
         | 
| 32 32 |  | 
| 33 | 
            -
              it  | 
| 33 | 
            +
              it 'has the constant BOOL_CONSTANT' do
         | 
| 34 | 
            +
                skip unless get_introspection_data 'Regress', 'BOOL_CONSTANT'
         | 
| 35 | 
            +
                Regress::BOOL_CONSTANT.must_equal true
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
              it 'has the constant DOUBLE_CONSTANT' do
         | 
| 34 39 | 
             
                assert_equal 44.22, Regress::DOUBLE_CONSTANT
         | 
| 35 40 | 
             
              end
         | 
| 36 41 |  | 
| 37 | 
            -
              it  | 
| 42 | 
            +
              it 'has the constant GI_SCANNER_ELSE' do
         | 
| 43 | 
            +
                skip unless get_introspection_data 'Regress', 'GI_SCANNER_ELSE'
         | 
| 44 | 
            +
                Regress::GI_SCANNER_ELSE.must_equal 3
         | 
| 45 | 
            +
              end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
              it 'has the constant GI_SCANNER_IFDEF' do
         | 
| 48 | 
            +
                skip unless get_introspection_data 'Regress', 'GI_SCANNER_IFDEF'
         | 
| 49 | 
            +
                Regress::GI_SCANNER_IFDEF.must_equal 3
         | 
| 50 | 
            +
              end
         | 
| 51 | 
            +
             | 
| 52 | 
            +
              it 'has the constant GUINT64_CONSTANT' do
         | 
| 38 53 | 
             
                skip unless get_introspection_data 'Regress', 'GUINT64_CONSTANT'
         | 
| 39 | 
            -
                Regress::GUINT64_CONSTANT.must_equal  | 
| 54 | 
            +
                Regress::GUINT64_CONSTANT.must_equal 18_446_744_073_709_551_615
         | 
| 40 55 | 
             
              end
         | 
| 41 56 |  | 
| 42 | 
            -
              it  | 
| 57 | 
            +
              it 'has the constant GUINT64_CONSTANTA' do
         | 
| 43 58 | 
             
                skip unless get_introspection_data 'Regress', 'GUINT64_CONSTANTA'
         | 
| 44 | 
            -
                Regress::GUINT64_CONSTANTA.must_equal  | 
| 59 | 
            +
                Regress::GUINT64_CONSTANTA.must_equal 18_446_744_073_709_551_615
         | 
| 45 60 | 
             
              end
         | 
| 46 61 |  | 
| 47 | 
            -
              it  | 
| 62 | 
            +
              it 'has the constant G_GINT64_CONSTANT' do
         | 
| 48 63 | 
             
                skip unless get_introspection_data 'Regress', 'G_GINT64_CONSTANT'
         | 
| 49 64 | 
             
                Regress::G_GINT64_CONSTANT.must_equal 1000
         | 
| 50 65 | 
             
              end
         | 
| 51 66 |  | 
| 52 | 
            -
              it  | 
| 67 | 
            +
              it 'has the constant INT_CONSTANT' do
         | 
| 53 68 | 
             
                assert_equal 4422, Regress::INT_CONSTANT
         | 
| 54 69 | 
             
              end
         | 
| 55 70 |  | 
| 56 | 
            -
              it  | 
| 71 | 
            +
              it 'has the constant LONG_STRING_CONSTANT' do
         | 
| 57 72 | 
             
                Regress::LONG_STRING_CONSTANT.must_equal %w(TYPE VALUE ENCODING CHARSET
         | 
| 58 73 | 
             
                                                            LANGUAGE DOM INTL POSTAL PARCEL
         | 
| 59 74 | 
             
                                                            HOME WORK PREF VOICE FAX MSG
         | 
| @@ -64,122 +79,122 @@ describe Regress do | |
| 64 79 | 
             
                                                            CGM WMF BMP MET PMB DIB PICT
         | 
| 65 80 | 
             
                                                            TIFF PDF PS JPEG QTIME MPEG
         | 
| 66 81 | 
             
                                                            MPEG2 AVI WAVE AIFF PCM X509
         | 
| 67 | 
            -
                                                            PGP).join( | 
| 82 | 
            +
                                                            PGP).join(',')
         | 
| 68 83 | 
             
              end
         | 
| 69 84 |  | 
| 70 | 
            -
              describe  | 
| 85 | 
            +
              describe 'Regress::LikeGnomeKeyringPasswordSchema' do
         | 
| 71 86 | 
             
                before do
         | 
| 72 87 | 
             
                  skip unless get_introspection_data 'Regress', 'LikeGnomeKeyringPasswordSchema'
         | 
| 73 88 | 
             
                end
         | 
| 74 | 
            -
                it  | 
| 89 | 
            +
                it 'creates an instance using #new' do
         | 
| 75 90 | 
             
                  obj = Regress::LikeGnomeKeyringPasswordSchema.new
         | 
| 76 91 | 
             
                  obj.must_be_instance_of Regress::LikeGnomeKeyringPasswordSchema
         | 
| 77 92 | 
             
                end
         | 
| 78 93 |  | 
| 79 94 | 
             
                let(:instance) { Regress::LikeGnomeKeyringPasswordSchema.new }
         | 
| 80 95 |  | 
| 81 | 
            -
                it  | 
| 96 | 
            +
                it 'has a writable field dummy' do
         | 
| 82 97 | 
             
                  instance.dummy.must_equal 0
         | 
| 83 98 | 
             
                  instance.dummy = 42
         | 
| 84 99 | 
             
                  instance.dummy.must_equal 42
         | 
| 85 100 | 
             
                end
         | 
| 86 101 |  | 
| 87 | 
            -
                it  | 
| 88 | 
            -
                  skip  | 
| 102 | 
            +
                it 'has a writable field attributes' do
         | 
| 103 | 
            +
                  skip 'Introspection data cannot deal with type of this field yet'
         | 
| 89 104 | 
             
                end
         | 
| 90 105 |  | 
| 91 | 
            -
                it  | 
| 106 | 
            +
                it 'has a writable field dummy2' do
         | 
| 92 107 | 
             
                  instance.dummy2.must_equal 0.0
         | 
| 93 108 | 
             
                  instance.dummy2 = 42.42
         | 
| 94 109 | 
             
                  instance.dummy2.must_equal 42.42
         | 
| 95 110 | 
             
                end
         | 
| 96 111 | 
             
              end
         | 
| 97 112 |  | 
| 98 | 
            -
              describe  | 
| 113 | 
            +
              describe 'Regress::LikeXklConfigItem' do
         | 
| 99 114 | 
             
                before do
         | 
| 100 115 | 
             
                  skip unless get_introspection_data 'Regress', 'LikeXklConfigItem'
         | 
| 101 116 | 
             
                end
         | 
| 102 117 |  | 
| 103 118 | 
             
                let(:instance) { Regress::LikeXklConfigItem.new }
         | 
| 104 | 
            -
                let(:name_array) {  | 
| 119 | 
            +
                let(:name_array) { 'foo'.bytes.to_a + [0] * 29 }
         | 
| 105 120 |  | 
| 106 | 
            -
                it  | 
| 121 | 
            +
                it 'has a writable field name' do
         | 
| 107 122 | 
             
                  # TODO: Should an array of gint8 be more string-like?
         | 
| 108 123 | 
             
                  instance.name.to_a.must_equal [0] * 32
         | 
| 109 124 | 
             
                  instance.name = name_array
         | 
| 110 125 | 
             
                  instance.name.to_a.must_equal name_array
         | 
| 111 126 | 
             
                end
         | 
| 112 127 |  | 
| 113 | 
            -
                it  | 
| 114 | 
            -
                  instance.set_name  | 
| 128 | 
            +
                it 'has a working method #set_name' do
         | 
| 129 | 
            +
                  instance.set_name 'foo'
         | 
| 115 130 | 
             
                  instance.name.to_a.must_equal name_array
         | 
| 116 131 | 
             
                end
         | 
| 117 132 | 
             
              end
         | 
| 118 133 |  | 
| 119 | 
            -
              it  | 
| 134 | 
            +
              it 'has the constant MAXUINT64' do
         | 
| 120 135 | 
             
                skip unless get_introspection_data 'Regress', 'MAXUINT64'
         | 
| 121 136 | 
             
                Regress::MAXUINT64.must_equal 0xffff_ffff_ffff_ffff
         | 
| 122 137 | 
             
              end
         | 
| 123 138 |  | 
| 124 | 
            -
              it  | 
| 139 | 
            +
              it 'has the constant MININT64' do
         | 
| 125 140 | 
             
                skip unless get_introspection_data 'Regress', 'MININT64'
         | 
| 126 141 | 
             
                Regress::MININT64.must_equal(-0x8000_0000_0000_0000)
         | 
| 127 142 | 
             
              end
         | 
| 128 143 |  | 
| 129 | 
            -
              it  | 
| 144 | 
            +
              it 'has the constant Mixed_Case_Constant' do
         | 
| 130 145 | 
             
                assert_equal 4423, Regress::Mixed_Case_Constant
         | 
| 131 146 | 
             
              end
         | 
| 132 147 |  | 
| 133 | 
            -
              it  | 
| 148 | 
            +
              it 'has the constant NEGATIVE_INT_CONSTANT' do
         | 
| 134 149 | 
             
                skip unless get_introspection_data 'Regress', 'NEGATIVE_INT_CONSTANT'
         | 
| 135 150 | 
             
                Regress::NEGATIVE_INT_CONSTANT.must_equal(-42)
         | 
| 136 151 | 
             
              end
         | 
| 137 152 |  | 
| 138 | 
            -
              it  | 
| 139 | 
            -
                assert_equal  | 
| 153 | 
            +
              it 'has the constant STRING_CONSTANT' do
         | 
| 154 | 
            +
                assert_equal 'Some String', Regress::STRING_CONSTANT
         | 
| 140 155 | 
             
              end
         | 
| 141 156 |  | 
| 142 | 
            -
              describe  | 
| 157 | 
            +
              describe 'Regress::TestABCError' do
         | 
| 143 158 | 
             
                before do
         | 
| 144 159 | 
             
                  skip unless get_introspection_data 'Regress', 'TestABCError'
         | 
| 145 160 | 
             
                end
         | 
| 146 161 |  | 
| 147 | 
            -
                it  | 
| 162 | 
            +
                it 'has the member :code1' do
         | 
| 148 163 | 
             
                  Regress::TestABCError[:code1].must_equal 1
         | 
| 149 164 | 
             
                end
         | 
| 150 165 |  | 
| 151 | 
            -
                it  | 
| 166 | 
            +
                it 'has the member :code2' do
         | 
| 152 167 | 
             
                  Regress::TestABCError[:code2].must_equal 2
         | 
| 153 168 | 
             
                end
         | 
| 154 169 |  | 
| 155 | 
            -
                it  | 
| 170 | 
            +
                it 'has the member :code3' do
         | 
| 156 171 | 
             
                  Regress::TestABCError[:code3].must_equal 3
         | 
| 157 172 | 
             
                end
         | 
| 158 173 |  | 
| 159 | 
            -
                it  | 
| 174 | 
            +
                it 'has a working function #quark' do
         | 
| 160 175 | 
             
                  quark = Regress::TestABCError.quark
         | 
| 161 | 
            -
                  GLib.quark_to_string(quark).must_equal  | 
| 176 | 
            +
                  GLib.quark_to_string(quark).must_equal 'regress-test-abc-error'
         | 
| 162 177 | 
             
                end
         | 
| 163 178 | 
             
              end
         | 
| 164 179 |  | 
| 165 | 
            -
              describe  | 
| 180 | 
            +
              describe 'Regress::TestBoxed' do
         | 
| 166 181 | 
             
                let(:instance) { Regress::TestBoxed.new_alternative_constructor1 123 }
         | 
| 167 182 |  | 
| 168 | 
            -
                it  | 
| 183 | 
            +
                it 'has a writable field some_int8' do
         | 
| 169 184 | 
             
                  instance.some_int8.must_equal 123
         | 
| 170 185 | 
             
                  instance.some_int8 = -43
         | 
| 171 186 | 
             
                  instance.some_int8.must_equal(-43)
         | 
| 172 187 | 
             
                end
         | 
| 173 188 |  | 
| 174 | 
            -
                it  | 
| 189 | 
            +
                it 'has a writable field nested_a' do
         | 
| 175 190 | 
             
                  instance.nested_a.some_int.must_equal 0
         | 
| 176 191 | 
             
                  nested = Regress::TestSimpleBoxedA.new
         | 
| 177 | 
            -
                  nested.some_int =  | 
| 192 | 
            +
                  nested.some_int = 12_345
         | 
| 178 193 | 
             
                  instance.nested_a = nested
         | 
| 179 | 
            -
                  instance.nested_a.some_int.must_equal  | 
| 194 | 
            +
                  instance.nested_a.some_int.must_equal 12_345
         | 
| 180 195 | 
             
                end
         | 
| 181 196 |  | 
| 182 | 
            -
                it  | 
| 197 | 
            +
                it 'has a writable field priv' do
         | 
| 183 198 | 
             
                  instance.priv.wont_be_nil
         | 
| 184 199 | 
             
                  other = Regress::TestBoxed.new
         | 
| 185 200 | 
             
                  instance.priv.wont_equal other.priv
         | 
| @@ -187,34 +202,42 @@ describe Regress do | |
| 187 202 | 
             
                  instance.priv.must_equal other.priv
         | 
| 188 203 | 
             
                end
         | 
| 189 204 |  | 
| 190 | 
            -
                it  | 
| 205 | 
            +
                it 'creates an instance using #new' do
         | 
| 191 206 | 
             
                  tb = Regress::TestBoxed.new
         | 
| 192 207 | 
             
                  assert_instance_of Regress::TestBoxed, tb
         | 
| 193 208 | 
             
                end
         | 
| 194 209 |  | 
| 195 | 
            -
                it  | 
| 210 | 
            +
                it 'creates an instance using #new_alternative_constructor1' do
         | 
| 196 211 | 
             
                  tb = Regress::TestBoxed.new_alternative_constructor1 1
         | 
| 197 212 | 
             
                  assert_instance_of Regress::TestBoxed, tb
         | 
| 198 213 | 
             
                  assert_equal 1, tb.some_int8
         | 
| 199 214 | 
             
                end
         | 
| 200 215 |  | 
| 201 | 
            -
                it  | 
| 216 | 
            +
                it 'creates an instance using #new_alternative_constructor2' do
         | 
| 202 217 | 
             
                  tb = Regress::TestBoxed.new_alternative_constructor2 1, 2
         | 
| 203 218 | 
             
                  assert_instance_of Regress::TestBoxed, tb
         | 
| 204 219 | 
             
                  assert_equal 1 + 2, tb.some_int8
         | 
| 205 220 | 
             
                end
         | 
| 206 221 |  | 
| 207 | 
            -
                it  | 
| 208 | 
            -
                  tb = Regress::TestBoxed.new_alternative_constructor3  | 
| 222 | 
            +
                it 'creates an instance using #new_alternative_constructor3' do
         | 
| 223 | 
            +
                  tb = Regress::TestBoxed.new_alternative_constructor3 '54'
         | 
| 209 224 | 
             
                  assert_instance_of Regress::TestBoxed, tb
         | 
| 210 225 | 
             
                  assert_equal 54, tb.some_int8
         | 
| 211 226 | 
             
                end
         | 
| 212 227 |  | 
| 213 | 
            -
                it  | 
| 228 | 
            +
                it 'has non-zero positive result for #get_gtype' do
         | 
| 214 229 | 
             
                  assert Regress::TestBoxed.get_gtype > 0
         | 
| 215 230 | 
             
                end
         | 
| 216 231 |  | 
| 217 | 
            -
                it  | 
| 232 | 
            +
                it 'has a working method #_not_a_method' do
         | 
| 233 | 
            +
                  skip unless get_method_introspection_data('Regress', 'TestBoxed', '_not_a_method')
         | 
| 234 | 
            +
                  # FIXME: This method has been moved to a function. Should we still expose
         | 
| 235 | 
            +
                  # it as a method?
         | 
| 236 | 
            +
                  instance._not_a_method
         | 
| 237 | 
            +
                  pass
         | 
| 238 | 
            +
                end
         | 
| 239 | 
            +
             | 
| 240 | 
            +
                it 'has a working method #copy' do
         | 
| 218 241 | 
             
                  tb2 = instance.copy
         | 
| 219 242 | 
             
                  assert_instance_of Regress::TestBoxed, tb2
         | 
| 220 243 | 
             
                  assert_equal 123, tb2.some_int8
         | 
| @@ -222,33 +245,33 @@ describe Regress do | |
| 222 245 | 
             
                  assert_equal 123, tb2.some_int8
         | 
| 223 246 | 
             
                end
         | 
| 224 247 |  | 
| 225 | 
            -
                it  | 
| 248 | 
            +
                it 'has a working method #equals' do
         | 
| 226 249 | 
             
                  tb2 = Regress::TestBoxed.new_alternative_constructor2 120, 3
         | 
| 227 250 | 
             
                  assert_equal true, instance.equals(tb2)
         | 
| 228 251 | 
             
                end
         | 
| 229 252 | 
             
              end
         | 
| 230 253 |  | 
| 231 | 
            -
              describe  | 
| 254 | 
            +
              describe 'Regress::TestBoxedB' do
         | 
| 232 255 | 
             
                let(:instance) { Regress::TestBoxedB.new 8, 42 }
         | 
| 233 256 |  | 
| 234 | 
            -
                it  | 
| 257 | 
            +
                it 'has a writable field some_int8' do
         | 
| 235 258 | 
             
                  instance.some_int8.must_equal 8
         | 
| 236 259 | 
             
                  instance.some_int8 = -43
         | 
| 237 260 | 
             
                  instance.some_int8.must_equal(-43)
         | 
| 238 261 | 
             
                end
         | 
| 239 262 |  | 
| 240 | 
            -
                it  | 
| 263 | 
            +
                it 'has a writable field some_long' do
         | 
| 241 264 | 
             
                  instance.some_long.must_equal 42
         | 
| 242 265 | 
             
                  instance.some_long = -4342
         | 
| 243 266 | 
             
                  instance.some_long.must_equal(-4342)
         | 
| 244 267 | 
             
                end
         | 
| 245 268 |  | 
| 246 | 
            -
                it  | 
| 269 | 
            +
                it 'creates an instance using #new' do
         | 
| 247 270 | 
             
                  tb = Regress::TestBoxedB.new 8, 42
         | 
| 248 271 | 
             
                  assert_instance_of Regress::TestBoxedB, tb
         | 
| 249 272 | 
             
                end
         | 
| 250 273 |  | 
| 251 | 
            -
                it  | 
| 274 | 
            +
                it 'has a working method #copy' do
         | 
| 252 275 | 
             
                  cp = instance.copy
         | 
| 253 276 | 
             
                  cp.must_be_instance_of Regress::TestBoxedB
         | 
| 254 277 | 
             
                  cp.some_int8.must_equal 8
         | 
| @@ -258,229 +281,229 @@ describe Regress do | |
| 258 281 | 
             
                end
         | 
| 259 282 | 
             
              end
         | 
| 260 283 |  | 
| 261 | 
            -
              describe  | 
| 284 | 
            +
              describe 'Regress::TestBoxedC' do
         | 
| 262 285 | 
             
                before do
         | 
| 263 286 | 
             
                  skip unless get_introspection_data 'Regress', 'TestBoxedC'
         | 
| 264 287 | 
             
                end
         | 
| 265 288 |  | 
| 266 289 | 
             
                let(:instance) { Regress::TestBoxedC.new }
         | 
| 267 290 |  | 
| 268 | 
            -
                it  | 
| 291 | 
            +
                it 'has a writable field refcount' do
         | 
| 269 292 | 
             
                  instance.refcount.must_equal 1
         | 
| 270 293 | 
             
                  instance.refcount = 2
         | 
| 271 294 | 
             
                  instance.refcount.must_equal 2
         | 
| 272 295 | 
             
                end
         | 
| 273 296 |  | 
| 274 | 
            -
                it  | 
| 297 | 
            +
                it 'has a writable field another_thing' do
         | 
| 275 298 | 
             
                  instance.another_thing.must_equal 42
         | 
| 276 299 | 
             
                  instance.another_thing = 4342
         | 
| 277 300 | 
             
                  instance.another_thing.must_equal 4342
         | 
| 278 301 | 
             
                end
         | 
| 279 302 |  | 
| 280 | 
            -
                it  | 
| 303 | 
            +
                it 'creates an instance using #new' do
         | 
| 281 304 | 
             
                  tb = Regress::TestBoxedC.new
         | 
| 282 305 | 
             
                  assert_instance_of Regress::TestBoxedC, tb
         | 
| 283 306 | 
             
                end
         | 
| 284 307 | 
             
              end
         | 
| 285 308 |  | 
| 286 | 
            -
              describe  | 
| 309 | 
            +
              describe 'Regress::TestBoxedD' do
         | 
| 287 310 | 
             
                before do
         | 
| 288 311 | 
             
                  skip unless get_introspection_data 'Regress', 'TestBoxedD'
         | 
| 289 312 | 
             
                end
         | 
| 290 313 |  | 
| 291 | 
            -
                it  | 
| 292 | 
            -
                  instance = Regress::TestBoxedD.new  | 
| 314 | 
            +
                it 'creates an instance using #new' do
         | 
| 315 | 
            +
                  instance = Regress::TestBoxedD.new 'foo', 42
         | 
| 293 316 | 
             
                  instance.must_be_instance_of Regress::TestBoxedD
         | 
| 294 317 | 
             
                end
         | 
| 295 318 |  | 
| 296 | 
            -
                it  | 
| 297 | 
            -
                  instance = Regress::TestBoxedD.new  | 
| 319 | 
            +
                it 'has a working method #copy' do
         | 
| 320 | 
            +
                  instance = Regress::TestBoxedD.new 'foo', 42
         | 
| 298 321 | 
             
                  copy = instance.copy
         | 
| 299 322 | 
             
                  copy.must_be_instance_of Regress::TestBoxedD
         | 
| 300 323 | 
             
                  instance.get_magic.must_equal copy.get_magic
         | 
| 301 324 | 
             
                  instance.wont_equal copy
         | 
| 302 325 | 
             
                end
         | 
| 303 326 |  | 
| 304 | 
            -
                it  | 
| 305 | 
            -
                  instance = Regress::TestBoxedD.new  | 
| 327 | 
            +
                it 'has a working method #free' do
         | 
| 328 | 
            +
                  instance = Regress::TestBoxedD.new 'foo', 42
         | 
| 306 329 | 
             
                  instance.free
         | 
| 307 330 | 
             
                  pass
         | 
| 308 331 | 
             
                end
         | 
| 309 332 |  | 
| 310 | 
            -
                it  | 
| 311 | 
            -
                  instance = Regress::TestBoxedD.new  | 
| 312 | 
            -
                  instance.get_magic.must_equal  | 
| 333 | 
            +
                it 'has a working method #get_magic' do
         | 
| 334 | 
            +
                  instance = Regress::TestBoxedD.new 'foo', 42
         | 
| 335 | 
            +
                  instance.get_magic.must_equal 'foo'.length + 42
         | 
| 313 336 | 
             
                end
         | 
| 314 337 | 
             
              end
         | 
| 315 338 |  | 
| 316 | 
            -
              describe  | 
| 339 | 
            +
              describe 'Regress::TestDEFError' do
         | 
| 317 340 | 
             
                before do
         | 
| 318 341 | 
             
                  skip unless get_introspection_data 'Regress', 'TestDEFError'
         | 
| 319 342 | 
             
                end
         | 
| 320 | 
            -
                it  | 
| 343 | 
            +
                it 'has the member :code0' do
         | 
| 321 344 | 
             
                  Regress::TestDEFError[:code0].must_equal 0
         | 
| 322 345 | 
             
                end
         | 
| 323 346 |  | 
| 324 | 
            -
                it  | 
| 347 | 
            +
                it 'has the member :code1' do
         | 
| 325 348 | 
             
                  Regress::TestDEFError[:code1].must_equal 1
         | 
| 326 349 | 
             
                end
         | 
| 327 350 |  | 
| 328 | 
            -
                it  | 
| 351 | 
            +
                it 'has the member :code2' do
         | 
| 329 352 | 
             
                  Regress::TestDEFError[:code2].must_equal 2
         | 
| 330 353 | 
             
                end
         | 
| 331 354 | 
             
              end
         | 
| 332 355 |  | 
| 333 | 
            -
              describe  | 
| 334 | 
            -
                it  | 
| 356 | 
            +
              describe 'Regress::TestEnum' do
         | 
| 357 | 
            +
                it 'has the member :value1' do
         | 
| 335 358 | 
             
                  Regress::TestEnum[:value1].must_equal 0
         | 
| 336 359 | 
             
                end
         | 
| 337 360 |  | 
| 338 | 
            -
                it  | 
| 361 | 
            +
                it 'has the member :value2' do
         | 
| 339 362 | 
             
                  Regress::TestEnum[:value2].must_equal 1
         | 
| 340 363 | 
             
                end
         | 
| 341 364 |  | 
| 342 | 
            -
                it  | 
| 365 | 
            +
                it 'has the member :value3' do
         | 
| 343 366 | 
             
                  Regress::TestEnum[:value3].must_equal(-1)
         | 
| 344 367 | 
             
                end
         | 
| 345 368 |  | 
| 346 | 
            -
                it  | 
| 369 | 
            +
                it 'has the member :value4' do
         | 
| 347 370 | 
             
                  Regress::TestEnum[:value4].must_equal 48
         | 
| 348 371 | 
             
                end
         | 
| 349 372 |  | 
| 350 | 
            -
                it  | 
| 351 | 
            -
                  Regress::TestEnum.param(:value1).must_equal( | 
| 352 | 
            -
                  Regress::TestEnum.param(:value2).must_equal( | 
| 353 | 
            -
                  Regress::TestEnum.param(:value3).must_equal( | 
| 354 | 
            -
                  Regress::TestEnum.param(:value4).must_equal( | 
| 355 | 
            -
                  Regress::TestEnum.param(0).must_equal( | 
| 356 | 
            -
                  Regress::TestEnum.param(1).must_equal( | 
| 357 | 
            -
                  Regress::TestEnum.param(-1).must_equal( | 
| 358 | 
            -
                  Regress::TestEnum.param(48).must_equal( | 
| 373 | 
            +
                it 'has a working function #param' do
         | 
| 374 | 
            +
                  Regress::TestEnum.param(:value1).must_equal('value1')
         | 
| 375 | 
            +
                  Regress::TestEnum.param(:value2).must_equal('value2')
         | 
| 376 | 
            +
                  Regress::TestEnum.param(:value3).must_equal('value3')
         | 
| 377 | 
            +
                  Regress::TestEnum.param(:value4).must_equal('value4')
         | 
| 378 | 
            +
                  Regress::TestEnum.param(0).must_equal('value1')
         | 
| 379 | 
            +
                  Regress::TestEnum.param(1).must_equal('value2')
         | 
| 380 | 
            +
                  Regress::TestEnum.param(-1).must_equal('value3')
         | 
| 381 | 
            +
                  Regress::TestEnum.param(48).must_equal('value4')
         | 
| 359 382 | 
             
                end
         | 
| 360 383 | 
             
              end
         | 
| 361 384 |  | 
| 362 | 
            -
              describe  | 
| 363 | 
            -
                it  | 
| 385 | 
            +
              describe 'Regress::TestEnumNoGEnum' do
         | 
| 386 | 
            +
                it 'has the member :evalue1' do
         | 
| 364 387 | 
             
                  Regress::TestEnumNoGEnum[:evalue1].must_equal 0
         | 
| 365 388 | 
             
                end
         | 
| 366 389 |  | 
| 367 | 
            -
                it  | 
| 390 | 
            +
                it 'has the member :evalue2' do
         | 
| 368 391 | 
             
                  Regress::TestEnumNoGEnum[:evalue2].must_equal 42
         | 
| 369 392 | 
             
                end
         | 
| 370 393 |  | 
| 371 | 
            -
                it  | 
| 394 | 
            +
                it 'has the member :evalue3' do
         | 
| 372 395 | 
             
                  Regress::TestEnumNoGEnum[:evalue3].must_equal 48
         | 
| 373 396 | 
             
                end
         | 
| 374 397 | 
             
              end
         | 
| 375 398 |  | 
| 376 | 
            -
              describe  | 
| 377 | 
            -
                it  | 
| 399 | 
            +
              describe 'Regress::TestEnumUnsigned' do
         | 
| 400 | 
            +
                it 'has the member :value1' do
         | 
| 378 401 | 
             
                  Regress::TestEnumUnsigned[:value1].must_equal 1
         | 
| 379 402 | 
             
                end
         | 
| 380 403 |  | 
| 381 404 | 
             
                # NOTE In c, the positive and negative values are not distinguished
         | 
| 382 | 
            -
                it  | 
| 383 | 
            -
                  Regress::TestEnumUnsigned[:value2].must_equal(- | 
| 405 | 
            +
                it 'has the member :value2' do
         | 
| 406 | 
            +
                  Regress::TestEnumUnsigned[:value2].must_equal(-2_147_483_648)
         | 
| 384 407 | 
             
                end
         | 
| 385 408 | 
             
              end
         | 
| 386 409 |  | 
| 387 | 
            -
              describe  | 
| 410 | 
            +
              describe 'Regress::TestError' do
         | 
| 388 411 | 
             
                before do
         | 
| 389 412 | 
             
                  skip unless get_introspection_data 'Regress', 'TestError'
         | 
| 390 413 | 
             
                end
         | 
| 391 414 |  | 
| 392 | 
            -
                it  | 
| 415 | 
            +
                it 'has the member :code1' do
         | 
| 393 416 | 
             
                  Regress::TestError[:code1].must_equal 1
         | 
| 394 417 | 
             
                end
         | 
| 395 418 |  | 
| 396 | 
            -
                it  | 
| 419 | 
            +
                it 'has the member :code2' do
         | 
| 397 420 | 
             
                  Regress::TestError[:code2].must_equal 2
         | 
| 398 421 | 
             
                end
         | 
| 399 422 |  | 
| 400 | 
            -
                it  | 
| 423 | 
            +
                it 'has the member :code3' do
         | 
| 401 424 | 
             
                  Regress::TestError[:code3].must_equal 3
         | 
| 402 425 | 
             
                end
         | 
| 403 426 |  | 
| 404 | 
            -
                it  | 
| 427 | 
            +
                it 'has a working function #quark' do
         | 
| 405 428 | 
             
                  quark = Regress::TestError.quark
         | 
| 406 | 
            -
                  GLib.quark_to_string(quark).must_equal  | 
| 429 | 
            +
                  GLib.quark_to_string(quark).must_equal 'regress-test-error'
         | 
| 407 430 | 
             
                end
         | 
| 408 431 | 
             
              end
         | 
| 409 432 |  | 
| 410 | 
            -
              describe  | 
| 411 | 
            -
                it  | 
| 433 | 
            +
              describe 'Regress::TestFlags' do
         | 
| 434 | 
            +
                it 'has the member :flag1' do
         | 
| 412 435 | 
             
                  assert_equal 1, Regress::TestFlags[:flag1]
         | 
| 413 436 | 
             
                end
         | 
| 414 | 
            -
                it  | 
| 437 | 
            +
                it 'has the member :flag2' do
         | 
| 415 438 | 
             
                  assert_equal 2, Regress::TestFlags[:flag2]
         | 
| 416 439 | 
             
                end
         | 
| 417 | 
            -
                it  | 
| 440 | 
            +
                it 'has the member :flag3' do
         | 
| 418 441 | 
             
                  assert_equal 4, Regress::TestFlags[:flag3]
         | 
| 419 442 | 
             
                end
         | 
| 420 443 | 
             
              end
         | 
| 421 444 |  | 
| 422 | 
            -
              describe  | 
| 423 | 
            -
                it  | 
| 445 | 
            +
              describe 'Regress::TestFloating' do
         | 
| 446 | 
            +
                it 'creates an instance using #new' do
         | 
| 424 447 | 
             
                  o = Regress::TestFloating.new
         | 
| 425 448 | 
             
                  o.must_be_instance_of Regress::TestFloating
         | 
| 426 449 | 
             
                end
         | 
| 427 450 |  | 
| 428 | 
            -
                describe  | 
| 451 | 
            +
                describe 'an instance' do
         | 
| 429 452 | 
             
                  before do
         | 
| 430 453 | 
             
                    @o = Regress::TestFloating.new
         | 
| 431 454 | 
             
                  end
         | 
| 432 455 |  | 
| 433 | 
            -
                  it  | 
| 456 | 
            +
                  it 'has a reference count of 1' do
         | 
| 434 457 | 
             
                    assert_equal 1, ref_count(@o)
         | 
| 435 458 | 
             
                  end
         | 
| 436 459 |  | 
| 437 | 
            -
                  it  | 
| 460 | 
            +
                  it 'has been sunk' do
         | 
| 438 461 | 
             
                    @o.wont_be :floating?
         | 
| 439 462 | 
             
                  end
         | 
| 440 463 | 
             
                end
         | 
| 441 464 | 
             
              end
         | 
| 442 465 |  | 
| 443 | 
            -
              describe  | 
| 444 | 
            -
                it  | 
| 466 | 
            +
              describe 'Regress::TestFundamentalObject' do
         | 
| 467 | 
            +
                it 'does not have GObject::Object as an ancestor' do
         | 
| 445 468 | 
             
                  refute_includes Regress::TestFundamentalObject.ancestors,
         | 
| 446 469 | 
             
                    GObject::Object
         | 
| 447 470 | 
             
                end
         | 
| 448 471 |  | 
| 449 | 
            -
                it  | 
| 472 | 
            +
                it 'cannot be instantiated' do
         | 
| 450 473 | 
             
                  proc { Regress::TestFundamentalObject.new }.must_raise NoMethodError
         | 
| 451 474 | 
             
                end
         | 
| 452 475 |  | 
| 453 476 | 
             
                # NOTE: Instance methods can only be tested on the subclass, since
         | 
| 454 477 | 
             
                # TestFundamentalObject is an abstract class.
         | 
| 455 | 
            -
                let(:instance) { Regress::TestFundamentalSubObject.new  | 
| 478 | 
            +
                let(:instance) { Regress::TestFundamentalSubObject.new 'foo' }
         | 
| 456 479 |  | 
| 457 | 
            -
                it  | 
| 480 | 
            +
                it 'has a working method #ref' do
         | 
| 458 481 | 
             
                  instance.refcount.must_equal 1
         | 
| 459 482 | 
             
                  instance.ref
         | 
| 460 483 | 
             
                  instance.refcount.must_equal 2
         | 
| 461 484 | 
             
                end
         | 
| 462 485 |  | 
| 463 | 
            -
                it  | 
| 486 | 
            +
                it 'has a working method #unref' do
         | 
| 464 487 | 
             
                  instance.refcount.must_equal 1
         | 
| 465 488 | 
             
                  instance.unref
         | 
| 466 489 | 
             
                  instance.refcount.must_equal 0
         | 
| 467 490 | 
             
                end
         | 
| 468 491 | 
             
              end
         | 
| 469 492 |  | 
| 470 | 
            -
              describe  | 
| 471 | 
            -
                it  | 
| 472 | 
            -
                  obj = Regress::TestFundamentalSubObject.new  | 
| 493 | 
            +
              describe 'Regress::TestFundamentalSubObject' do
         | 
| 494 | 
            +
                it 'creates an instance using #new' do
         | 
| 495 | 
            +
                  obj = Regress::TestFundamentalSubObject.new 'foo'
         | 
| 473 496 | 
             
                  obj.must_be_instance_of Regress::TestFundamentalSubObject
         | 
| 474 497 | 
             
                end
         | 
| 475 498 |  | 
| 476 | 
            -
                let(:instance) { Regress::TestFundamentalSubObject.new  | 
| 499 | 
            +
                let(:instance) { Regress::TestFundamentalSubObject.new 'foo' }
         | 
| 477 500 |  | 
| 478 | 
            -
                it  | 
| 501 | 
            +
                it 'is a subclass of TestFundamentalObject' do
         | 
| 479 502 | 
             
                  assert_kind_of Regress::TestFundamentalObject, instance
         | 
| 480 503 | 
             
                end
         | 
| 481 504 |  | 
| 482 | 
            -
                it  | 
| 483 | 
            -
                  assert_equal  | 
| 505 | 
            +
                it 'has a field :data storing the constructor parameter' do
         | 
| 506 | 
            +
                  assert_equal 'foo', instance.data
         | 
| 484 507 | 
             
                end
         | 
| 485 508 |  | 
| 486 509 | 
             
                it "can access its parent class' fields directly" do
         | 
| @@ -488,36 +511,36 @@ describe Regress do | |
| 488 511 | 
             
                end
         | 
| 489 512 | 
             
              end
         | 
| 490 513 |  | 
| 491 | 
            -
              describe  | 
| 492 | 
            -
                it  | 
| 514 | 
            +
              describe 'Regress::TestInterface' do
         | 
| 515 | 
            +
                it 'is a module' do
         | 
| 493 516 | 
             
                  assert_instance_of Module, Regress::TestInterface
         | 
| 494 517 | 
             
                end
         | 
| 495 518 |  | 
| 496 | 
            -
                it  | 
| 519 | 
            +
                it 'extends InterfaceBase' do
         | 
| 497 520 | 
             
                  metaclass = class << Regress::TestInterface; self; end
         | 
| 498 521 | 
             
                  assert_includes metaclass.ancestors, GirFFI::InterfaceBase
         | 
| 499 522 | 
             
                end
         | 
| 500 523 |  | 
| 501 | 
            -
                it  | 
| 524 | 
            +
                it 'has non-zero positive result for #get_gtype' do
         | 
| 502 525 | 
             
                  Regress::TestInterface.get_gtype.must_be :>, 0
         | 
| 503 526 | 
             
                end
         | 
| 504 527 | 
             
              end
         | 
| 505 528 |  | 
| 506 | 
            -
              describe  | 
| 507 | 
            -
                it  | 
| 529 | 
            +
              describe 'Regress::TestObj' do
         | 
| 530 | 
            +
                it 'creates an instance using #constructor' do
         | 
| 508 531 | 
             
                  obj = Regress::TestObj.constructor
         | 
| 509 532 | 
             
                  obj.must_be_instance_of Regress::TestObj
         | 
| 510 533 | 
             
                end
         | 
| 511 534 |  | 
| 512 | 
            -
                it  | 
| 535 | 
            +
                it 'creates an instance using #new' do
         | 
| 513 536 | 
             
                  o1 = Regress::TestObj.constructor
         | 
| 514 537 | 
             
                  o2 = Regress::TestObj.new o1
         | 
| 515 538 | 
             
                  o2.must_be_instance_of Regress::TestObj
         | 
| 516 539 | 
             
                end
         | 
| 517 540 |  | 
| 518 | 
            -
                it  | 
| 541 | 
            +
                it 'creates an instance using #new_callback' do
         | 
| 519 542 | 
             
                  a = 1
         | 
| 520 | 
            -
                  o = Regress::TestObj.new_callback  | 
| 543 | 
            +
                  o = Regress::TestObj.new_callback proc { a = 2 }, nil, nil
         | 
| 521 544 | 
             
                  assert_instance_of Regress::TestObj, o
         | 
| 522 545 | 
             
                  a.must_equal 2
         | 
| 523 546 |  | 
| @@ -528,58 +551,58 @@ describe Regress do | |
| 528 551 | 
             
                  result.must_equal 2
         | 
| 529 552 | 
             
                end
         | 
| 530 553 |  | 
| 531 | 
            -
                it  | 
| 532 | 
            -
                  o = Regress::TestObj.new_from_file( | 
| 554 | 
            +
                it 'creates an instance using #new_from_file' do
         | 
| 555 | 
            +
                  o = Regress::TestObj.new_from_file('foo')
         | 
| 533 556 | 
             
                  assert_instance_of Regress::TestObj, o
         | 
| 534 557 | 
             
                end
         | 
| 535 558 |  | 
| 536 | 
            -
                it  | 
| 559 | 
            +
                it 'has a working function #null_out' do
         | 
| 537 560 | 
             
                  obj = Regress::TestObj.null_out
         | 
| 538 561 | 
             
                  obj.must_be_nil
         | 
| 539 562 | 
             
                end
         | 
| 540 563 |  | 
| 541 | 
            -
                it  | 
| 564 | 
            +
                it 'has a working function #static_method' do
         | 
| 542 565 | 
             
                  rv = Regress::TestObj.static_method 623
         | 
| 543 566 | 
             
                  assert_equal 623.0, rv
         | 
| 544 567 | 
             
                end
         | 
| 545 568 |  | 
| 546 | 
            -
                it  | 
| 569 | 
            +
                it 'has a working function #static_method_callback' do
         | 
| 547 570 | 
             
                  a = 1
         | 
| 548 | 
            -
                  Regress::TestObj.static_method_callback  | 
| 571 | 
            +
                  Regress::TestObj.static_method_callback proc { a = 2 }
         | 
| 549 572 | 
             
                  assert_equal 2, a
         | 
| 550 573 | 
             
                end
         | 
| 551 574 |  | 
| 552 | 
            -
                let(:instance) { Regress::TestObj.new_from_file( | 
| 575 | 
            +
                let(:instance) { Regress::TestObj.new_from_file('foo') }
         | 
| 553 576 |  | 
| 554 | 
            -
                describe  | 
| 555 | 
            -
                  it  | 
| 577 | 
            +
                describe 'its gtype' do
         | 
| 578 | 
            +
                  it 'can be found through get_gtype and GObject.type_from_instance' do
         | 
| 556 579 | 
             
                    gtype = Regress::TestObj.get_gtype
         | 
| 557 580 | 
             
                    r = GObject.type_from_instance instance
         | 
| 558 581 | 
             
                    assert_equal gtype, r
         | 
| 559 582 | 
             
                  end
         | 
| 560 583 | 
             
                end
         | 
| 561 584 |  | 
| 562 | 
            -
                it  | 
| 585 | 
            +
                it 'has a reference count of 1' do
         | 
| 563 586 | 
             
                  assert_equal 1, ref_count(instance)
         | 
| 564 587 | 
             
                end
         | 
| 565 588 |  | 
| 566 | 
            -
                it  | 
| 589 | 
            +
                it 'does not float' do
         | 
| 567 590 | 
             
                  instance.wont_be :floating?
         | 
| 568 591 | 
             
                end
         | 
| 569 592 |  | 
| 570 | 
            -
                it  | 
| 571 | 
            -
                  instance.matrix( | 
| 593 | 
            +
                it 'has a working method #matrix' do
         | 
| 594 | 
            +
                  instance.matrix('bar').must_equal 42
         | 
| 572 595 | 
             
                end
         | 
| 573 596 |  | 
| 574 | 
            -
                it  | 
| 575 | 
            -
                  instance.do_matrix( | 
| 597 | 
            +
                it 'has a working method #do_matrix' do
         | 
| 598 | 
            +
                  instance.do_matrix('bar').must_equal 42
         | 
| 576 599 | 
             
                end
         | 
| 577 600 |  | 
| 578 | 
            -
                it  | 
| 601 | 
            +
                it 'has a working method #emit_sig_with_foreign_struct' do
         | 
| 579 602 | 
             
                  skip unless get_method_introspection_data('Regress', 'TestObj',
         | 
| 580 603 | 
             
                                                            'emit_sig_with_foreign_struct')
         | 
| 581 604 | 
             
                  has_fired = false
         | 
| 582 | 
            -
                  instance.signal_connect  | 
| 605 | 
            +
                  instance.signal_connect 'sig-with-foreign-struct' do |_obj, cr|
         | 
| 583 606 | 
             
                    has_fired = true
         | 
| 584 607 | 
             
                    cr.must_be_instance_of Cairo::Context
         | 
| 585 608 | 
             
                  end
         | 
| @@ -587,17 +610,17 @@ describe Regress do | |
| 587 610 | 
             
                  assert has_fired
         | 
| 588 611 | 
             
                end
         | 
| 589 612 |  | 
| 590 | 
            -
                it  | 
| 591 | 
            -
                  skip unless get_signal_introspection_data  | 
| 592 | 
            -
                  instance.signal_connect  | 
| 613 | 
            +
                it 'has a working method #emit_sig_with_int64' do
         | 
| 614 | 
            +
                  skip unless get_signal_introspection_data 'Regress', 'TestObj', 'sig-with-int64-prop'
         | 
| 615 | 
            +
                  instance.signal_connect 'sig-with-int64-prop' do |_obj, i, _ud|
         | 
| 593 616 | 
             
                    i
         | 
| 594 617 | 
             
                  end
         | 
| 595 618 | 
             
                  instance.emit_sig_with_int64
         | 
| 596 619 | 
             
                end
         | 
| 597 620 |  | 
| 598 | 
            -
                it  | 
| 621 | 
            +
                it 'has a working method #emit_sig_with_obj' do
         | 
| 599 622 | 
             
                  has_fired = false
         | 
| 600 | 
            -
                  instance.signal_connect  | 
| 623 | 
            +
                  instance.signal_connect 'sig-with-obj' do |_it, obj|
         | 
| 601 624 | 
             
                    has_fired = true
         | 
| 602 625 | 
             
                    obj.int.must_equal 3
         | 
| 603 626 | 
             
                  end
         | 
| @@ -605,37 +628,45 @@ describe Regress do | |
| 605 628 | 
             
                  assert has_fired
         | 
| 606 629 | 
             
                end
         | 
| 607 630 |  | 
| 608 | 
            -
                it  | 
| 609 | 
            -
                  skip unless get_signal_introspection_data  | 
| 610 | 
            -
                  instance.signal_connect  | 
| 631 | 
            +
                it 'has a working method #emit_sig_with_uint64' do
         | 
| 632 | 
            +
                  skip unless get_signal_introspection_data 'Regress', 'TestObj', 'sig-with-uint64-prop'
         | 
| 633 | 
            +
                  instance.signal_connect 'sig-with-uint64-prop' do |_obj, i, _ud|
         | 
| 611 634 | 
             
                    i
         | 
| 612 635 | 
             
                  end
         | 
| 613 636 | 
             
                  instance.emit_sig_with_uint64
         | 
| 614 637 | 
             
                end
         | 
| 615 638 |  | 
| 616 | 
            -
                it  | 
| 639 | 
            +
                it 'has a working method #forced_method' do
         | 
| 617 640 | 
             
                  instance.forced_method
         | 
| 618 641 | 
             
                  pass
         | 
| 619 642 | 
             
                end
         | 
| 620 643 |  | 
| 621 | 
            -
                it  | 
| 644 | 
            +
                it 'has a working method #instance_method' do
         | 
| 622 645 | 
             
                  rv = instance.instance_method
         | 
| 623 646 | 
             
                  assert_equal(-1, rv)
         | 
| 624 647 | 
             
                end
         | 
| 625 648 |  | 
| 626 | 
            -
                it  | 
| 649 | 
            +
                it 'has a working method #instance_method_callback' do
         | 
| 627 650 | 
             
                  a = 1
         | 
| 628 | 
            -
                  instance.instance_method_callback  | 
| 651 | 
            +
                  instance.instance_method_callback proc { a = 2 }
         | 
| 629 652 | 
             
                  assert_equal 2, a
         | 
| 630 653 | 
             
                end
         | 
| 631 654 |  | 
| 632 | 
            -
                it  | 
| 633 | 
            -
                   | 
| 655 | 
            +
                it 'has a working method #instance_method_full' do
         | 
| 656 | 
            +
                  skip unless get_method_introspection_data('Regress', 'TestObj', 'instance_method_full')
         | 
| 657 | 
            +
                  instance.instance_method_full
         | 
| 658 | 
            +
                  # FIXME: Is this the behavior we want, or do we want to increase the
         | 
| 659 | 
            +
                  # refcount beforehand?
         | 
| 660 | 
            +
                  ref_count(instance).must_equal 0
         | 
| 661 | 
            +
                end
         | 
| 662 | 
            +
             | 
| 663 | 
            +
                it 'has a working method #set_bare' do
         | 
| 664 | 
            +
                  obj = Regress::TestObj.new_from_file('bar')
         | 
| 634 665 | 
             
                  instance.set_bare obj
         | 
| 635 666 | 
             
                  instance.bare.must_equal obj
         | 
| 636 667 | 
             
                end
         | 
| 637 668 |  | 
| 638 | 
            -
                it  | 
| 669 | 
            +
                it 'has a working method #skip_inout_param' do
         | 
| 639 670 | 
             
                  a = 1
         | 
| 640 671 | 
             
                  c = 2.0
         | 
| 641 672 | 
             
                  num1 = 3
         | 
| @@ -646,7 +677,7 @@ describe Regress do | |
| 646 677 | 
             
                  sum.must_equal num1 + 10 * num2
         | 
| 647 678 | 
             
                end
         | 
| 648 679 |  | 
| 649 | 
            -
                it  | 
| 680 | 
            +
                it 'has a working method #skip_out_param' do
         | 
| 650 681 | 
             
                  a = 1
         | 
| 651 682 | 
             
                  c = 2.0
         | 
| 652 683 | 
             
                  d = 3
         | 
| @@ -658,7 +689,7 @@ describe Regress do | |
| 658 689 | 
             
                  sum.must_equal num1 + 10 * num2
         | 
| 659 690 | 
             
                end
         | 
| 660 691 |  | 
| 661 | 
            -
                it  | 
| 692 | 
            +
                it 'has a working method #skip_param' do
         | 
| 662 693 | 
             
                  a = 1
         | 
| 663 694 | 
             
                  d = 3
         | 
| 664 695 | 
             
                  num1 = 4
         | 
| @@ -670,7 +701,7 @@ describe Regress do | |
| 670 701 | 
             
                  sum.must_equal num1 + 10 * num2
         | 
| 671 702 | 
             
                end
         | 
| 672 703 |  | 
| 673 | 
            -
                it  | 
| 704 | 
            +
                it 'has a working method #skip_return_val' do
         | 
| 674 705 | 
             
                  a = 1
         | 
| 675 706 | 
             
                  c = 2.0
         | 
| 676 707 | 
             
                  d = 3
         | 
| @@ -682,324 +713,350 @@ describe Regress do | |
| 682 713 | 
             
                  out_sum.must_equal num1 + 10 * num2
         | 
| 683 714 | 
             
                end
         | 
| 684 715 |  | 
| 685 | 
            -
                it  | 
| 716 | 
            +
                it 'has a working method #skip_return_val_no_out' do
         | 
| 686 717 | 
             
                  result = instance.skip_return_val_no_out 1
         | 
| 687 718 | 
             
                  result.must_be_nil
         | 
| 688 719 |  | 
| 689 720 | 
             
                  proc { instance.skip_return_val_no_out 0 }.must_raise GirFFI::GLibError
         | 
| 690 721 | 
             
                end
         | 
| 691 722 |  | 
| 692 | 
            -
                it  | 
| 693 | 
            -
                  y, z, q = instance.torture_signature_0(-21,  | 
| 694 | 
            -
                  assert_equal [-21, 2 * -21,  | 
| 723 | 
            +
                it 'has a working method #torture_signature_0' do
         | 
| 724 | 
            +
                  y, z, q = instance.torture_signature_0(-21, 'hello', 13)
         | 
| 725 | 
            +
                  assert_equal [-21, 2 * -21, 'hello'.length + 13],
         | 
| 695 726 | 
             
                    [y, z, q]
         | 
| 696 727 | 
             
                end
         | 
| 697 728 |  | 
| 698 | 
            -
                it  | 
| 699 | 
            -
                  ret, y, z, q = instance.torture_signature_1(-21,  | 
| 700 | 
            -
                  [ret, y, z, q].must_equal [true, -21, 2 * -21,  | 
| 729 | 
            +
                it 'has a working method #torture_signature_1' do
         | 
| 730 | 
            +
                  ret, y, z, q = instance.torture_signature_1(-21, 'hello', 12)
         | 
| 731 | 
            +
                  [ret, y, z, q].must_equal [true, -21, 2 * -21, 'hello'.length + 12]
         | 
| 701 732 |  | 
| 702 | 
            -
                  proc { instance.torture_signature_1(-21,  | 
| 733 | 
            +
                  proc { instance.torture_signature_1(-21, 'hello', 11) }.
         | 
| 703 734 | 
             
                    must_raise GirFFI::GLibError
         | 
| 704 735 | 
             
                end
         | 
| 705 736 |  | 
| 706 737 | 
             
                describe "its 'bare' property" do
         | 
| 707 | 
            -
                  it  | 
| 708 | 
            -
                    instance.get_property( | 
| 738 | 
            +
                  it 'can be retrieved with #get_property' do
         | 
| 739 | 
            +
                    instance.get_property('bare').get_value.must_be_nil
         | 
| 709 740 | 
             
                  end
         | 
| 710 741 |  | 
| 711 | 
            -
                  it  | 
| 742 | 
            +
                  it 'can be retrieved with #bare' do
         | 
| 712 743 | 
             
                    instance.bare.must_be_nil
         | 
| 713 744 | 
             
                  end
         | 
| 714 745 |  | 
| 715 | 
            -
                  it  | 
| 716 | 
            -
                    obj = Regress::TestObj.new_from_file( | 
| 717 | 
            -
                    instance.set_property  | 
| 718 | 
            -
                    instance.get_property( | 
| 746 | 
            +
                  it 'can be set with #set_property' do
         | 
| 747 | 
            +
                    obj = Regress::TestObj.new_from_file('bar')
         | 
| 748 | 
            +
                    instance.set_property 'bare', obj
         | 
| 749 | 
            +
                    instance.get_property('bare').get_value.must_equal obj
         | 
| 719 750 | 
             
                  end
         | 
| 720 751 |  | 
| 721 | 
            -
                  it  | 
| 722 | 
            -
                    obj = Regress::TestObj.new_from_file( | 
| 752 | 
            +
                  it 'can be set with #bare=' do
         | 
| 753 | 
            +
                    obj = Regress::TestObj.new_from_file('bar')
         | 
| 723 754 | 
             
                    instance.bare = obj
         | 
| 724 755 |  | 
| 725 756 | 
             
                    instance.bare.must_equal obj
         | 
| 726 | 
            -
                    instance.get_property( | 
| 757 | 
            +
                    instance.get_property('bare').get_value.must_equal obj
         | 
| 727 758 | 
             
                  end
         | 
| 728 759 | 
             
                end
         | 
| 729 760 |  | 
| 730 761 | 
             
                describe "its 'boxed' property" do
         | 
| 731 | 
            -
                  it  | 
| 732 | 
            -
                    instance.get_property( | 
| 762 | 
            +
                  it 'can be retrieved with #get_property' do
         | 
| 763 | 
            +
                    instance.get_property('boxed').get_value.must_be_nil
         | 
| 733 764 | 
             
                  end
         | 
| 734 765 |  | 
| 735 | 
            -
                  it  | 
| 766 | 
            +
                  it 'can be retrieved with #boxed' do
         | 
| 736 767 | 
             
                    instance.boxed.must_be_nil
         | 
| 737 768 | 
             
                  end
         | 
| 738 769 |  | 
| 739 | 
            -
                  it  | 
| 770 | 
            +
                  it 'can be set with #set_property' do
         | 
| 740 771 | 
             
                    tb = Regress::TestBoxed.new_alternative_constructor1 75
         | 
| 741 | 
            -
                    instance.set_property  | 
| 742 | 
            -
                    instance.get_property( | 
| 772 | 
            +
                    instance.set_property 'boxed', tb
         | 
| 773 | 
            +
                    instance.get_property('boxed').get_value.some_int8.must_equal 75
         | 
| 743 774 | 
             
                  end
         | 
| 744 775 |  | 
| 745 | 
            -
                  it  | 
| 776 | 
            +
                  it 'can be set with #boxed=' do
         | 
| 746 777 | 
             
                    tb = Regress::TestBoxed.new_alternative_constructor1 75
         | 
| 747 778 | 
             
                    instance.boxed = tb
         | 
| 748 779 | 
             
                    instance.boxed.some_int8.must_equal tb.some_int8
         | 
| 749 | 
            -
                    instance.get_property( | 
| 780 | 
            +
                    instance.get_property('boxed').get_value.some_int8.must_equal tb.some_int8
         | 
| 750 781 | 
             
                  end
         | 
| 751 782 | 
             
                end
         | 
| 752 783 |  | 
| 753 784 | 
             
                describe "its 'double' property" do
         | 
| 754 | 
            -
                  it  | 
| 755 | 
            -
                    instance.get_property( | 
| 785 | 
            +
                  it 'can be retrieved with #get_property' do
         | 
| 786 | 
            +
                    instance.get_property('double').get_value.must_equal 0.0
         | 
| 756 787 | 
             
                  end
         | 
| 757 788 |  | 
| 758 | 
            -
                  it  | 
| 789 | 
            +
                  it 'can be retrieved with #double' do
         | 
| 759 790 | 
             
                    instance.double.must_equal 0.0
         | 
| 760 791 | 
             
                  end
         | 
| 761 792 |  | 
| 762 | 
            -
                  it  | 
| 763 | 
            -
                    instance.set_property  | 
| 764 | 
            -
                    instance.get_property( | 
| 793 | 
            +
                  it 'can be set with #set_property' do
         | 
| 794 | 
            +
                    instance.set_property 'double', 3.14
         | 
| 795 | 
            +
                    instance.get_property('double').get_value.must_equal 3.14
         | 
| 765 796 | 
             
                  end
         | 
| 766 797 |  | 
| 767 | 
            -
                  it  | 
| 798 | 
            +
                  it 'can be set with #double=' do
         | 
| 768 799 | 
             
                    instance.double = 3.14
         | 
| 769 800 | 
             
                    instance.double.must_equal 3.14
         | 
| 770 | 
            -
                    instance.get_property( | 
| 801 | 
            +
                    instance.get_property('double').get_value.must_equal 3.14
         | 
| 771 802 | 
             
                  end
         | 
| 772 803 | 
             
                end
         | 
| 773 804 |  | 
| 774 805 | 
             
                describe "its 'float' property" do
         | 
| 775 | 
            -
                  it  | 
| 776 | 
            -
                    instance.get_property( | 
| 806 | 
            +
                  it 'can be retrieved with #get_property' do
         | 
| 807 | 
            +
                    instance.get_property('float').get_value.must_equal 0.0
         | 
| 777 808 | 
             
                  end
         | 
| 778 809 |  | 
| 779 | 
            -
                  it  | 
| 810 | 
            +
                  it 'can be retrieved with #float' do
         | 
| 780 811 | 
             
                    instance.float.must_equal 0.0
         | 
| 781 812 | 
             
                  end
         | 
| 782 813 |  | 
| 783 | 
            -
                  it  | 
| 784 | 
            -
                    instance.set_property  | 
| 785 | 
            -
                    instance.get_property( | 
| 814 | 
            +
                  it 'can be set with #set_property' do
         | 
| 815 | 
            +
                    instance.set_property 'float', 3.14
         | 
| 816 | 
            +
                    instance.get_property('float').get_value.must_be_close_to 3.14
         | 
| 786 817 | 
             
                  end
         | 
| 787 818 |  | 
| 788 | 
            -
                  it  | 
| 819 | 
            +
                  it 'can be set with #float=' do
         | 
| 789 820 | 
             
                    instance.float = 3.14
         | 
| 790 821 | 
             
                    instance.float.must_be_close_to 3.14
         | 
| 791 | 
            -
                    instance.get_property( | 
| 822 | 
            +
                    instance.get_property('float').get_value.must_be_close_to 3.14
         | 
| 792 823 | 
             
                  end
         | 
| 793 824 | 
             
                end
         | 
| 794 825 |  | 
| 795 826 | 
             
                describe "its 'gtype' property" do
         | 
| 796 827 | 
             
                  before do
         | 
| 797 | 
            -
                    skip unless get_property_introspection_data( | 
| 828 | 
            +
                    skip unless get_property_introspection_data('Regress', 'TestObj', 'gtype')
         | 
| 798 829 | 
             
                  end
         | 
| 799 830 |  | 
| 800 | 
            -
                  it  | 
| 801 | 
            -
                    instance.get_property( | 
| 831 | 
            +
                  it 'can be retrieved with #get_property' do
         | 
| 832 | 
            +
                    instance.get_property('gtype').get_value.must_equal 0
         | 
| 802 833 | 
             
                  end
         | 
| 803 834 |  | 
| 804 | 
            -
                  it  | 
| 835 | 
            +
                  it 'can be retrieved with #gtype' do
         | 
| 805 836 | 
             
                    instance.gtype.must_equal 0
         | 
| 806 837 | 
             
                  end
         | 
| 807 838 |  | 
| 808 | 
            -
                  it  | 
| 809 | 
            -
                    instance.set_property  | 
| 810 | 
            -
                    instance.get_property( | 
| 839 | 
            +
                  it 'can be set with #set_property' do
         | 
| 840 | 
            +
                    instance.set_property 'gtype', GObject::TYPE_INT64
         | 
| 841 | 
            +
                    instance.get_property('gtype').get_value.must_equal GObject::TYPE_INT64
         | 
| 811 842 | 
             
                  end
         | 
| 812 843 |  | 
| 813 | 
            -
                  it  | 
| 844 | 
            +
                  it 'can be set with #gtype=' do
         | 
| 814 845 | 
             
                    instance.gtype = GObject::TYPE_STRING
         | 
| 815 846 | 
             
                    instance.gtype.must_equal GObject::TYPE_STRING
         | 
| 816 | 
            -
                    instance.get_property( | 
| 847 | 
            +
                    instance.get_property('gtype').get_value.must_equal GObject::TYPE_STRING
         | 
| 817 848 | 
             
                  end
         | 
| 818 849 | 
             
                end
         | 
| 819 850 |  | 
| 820 851 | 
             
                describe "its 'hash-table' property" do
         | 
| 821 | 
            -
                  it  | 
| 822 | 
            -
                    instance.get_property( | 
| 852 | 
            +
                  it 'can be retrieved with #get_property' do
         | 
| 853 | 
            +
                    instance.get_property('hash-table').get_value.must_be_nil
         | 
| 823 854 | 
             
                  end
         | 
| 824 855 |  | 
| 825 | 
            -
                  it  | 
| 856 | 
            +
                  it 'can be retrieved with #hash_table' do
         | 
| 826 857 | 
             
                    instance.hash_table.must_be_nil
         | 
| 827 858 | 
             
                  end
         | 
| 828 859 |  | 
| 829 | 
            -
                  it  | 
| 830 | 
            -
                    instance.set_property_extended  | 
| 831 | 
            -
                    instance.hash_table.to_hash.must_equal( | 
| 860 | 
            +
                  it 'can be set with #set_property_extended' do
         | 
| 861 | 
            +
                    instance.set_property_extended 'hash-table', 'foo' => -4, 'bar' => 83
         | 
| 862 | 
            +
                    instance.hash_table.to_hash.must_equal('foo' => -4, 'bar' => 83)
         | 
| 832 863 | 
             
                  end
         | 
| 833 864 |  | 
| 834 | 
            -
                  it  | 
| 835 | 
            -
                    instance.hash_table = { | 
| 836 | 
            -
                    instance.hash_table.to_hash.must_equal( | 
| 837 | 
            -
                    instance.get_property_extended( | 
| 838 | 
            -
             | 
| 865 | 
            +
                  it 'can be set with #hash_table=' do
         | 
| 866 | 
            +
                    instance.hash_table = { 'foo' => -4, 'bar' => 83 }
         | 
| 867 | 
            +
                    instance.hash_table.to_hash.must_equal('foo' => -4, 'bar' => 83)
         | 
| 868 | 
            +
                    instance.get_property_extended('hash-table').to_hash.must_equal('foo' => -4,
         | 
| 869 | 
            +
                                                                                    'bar' => 83)
         | 
| 839 870 | 
             
                  end
         | 
| 840 871 | 
             
                end
         | 
| 841 872 |  | 
| 842 873 | 
             
                describe "its 'hash-table-old' property" do
         | 
| 843 | 
            -
                  it  | 
| 844 | 
            -
                    instance.get_property( | 
| 874 | 
            +
                  it 'can be retrieved with #get_property' do
         | 
| 875 | 
            +
                    instance.get_property('hash-table-old').get_value.must_be_nil
         | 
| 845 876 | 
             
                  end
         | 
| 846 877 |  | 
| 847 | 
            -
                  it  | 
| 878 | 
            +
                  it 'can be retrieved with #hash_table_old' do
         | 
| 848 879 | 
             
                    instance.hash_table_old.must_be_nil
         | 
| 849 880 | 
             
                  end
         | 
| 850 881 |  | 
| 851 | 
            -
                  it  | 
| 852 | 
            -
                    instance.set_property_extended  | 
| 853 | 
            -
                    instance.hash_table_old.to_hash.must_equal( | 
| 882 | 
            +
                  it 'can be set with #set_property_extended' do
         | 
| 883 | 
            +
                    instance.set_property_extended 'hash-table-old', 'foo' => 34, 'bar' => -3
         | 
| 884 | 
            +
                    instance.hash_table_old.to_hash.must_equal('foo' => 34, 'bar' => -3)
         | 
| 854 885 | 
             
                  end
         | 
| 855 886 |  | 
| 856 | 
            -
                  it  | 
| 857 | 
            -
                    instance.hash_table_old = { | 
| 858 | 
            -
                    instance.hash_table_old.to_hash.must_equal( | 
| 859 | 
            -
                    instance.get_property_extended( | 
| 860 | 
            -
             | 
| 887 | 
            +
                  it 'can be set with #hash_table_old=' do
         | 
| 888 | 
            +
                    instance.hash_table_old = { 'foo' => 34, 'bar' => -3 }
         | 
| 889 | 
            +
                    instance.hash_table_old.to_hash.must_equal('foo' => 34, 'bar' => -3)
         | 
| 890 | 
            +
                    instance.get_property_extended('hash-table-old').to_hash.must_equal('foo' => 34,
         | 
| 891 | 
            +
                                                                                        'bar' => -3)
         | 
| 861 892 | 
             
                  end
         | 
| 862 893 | 
             
                end
         | 
| 863 894 |  | 
| 864 895 | 
             
                describe "its 'int' property" do
         | 
| 865 | 
            -
                  it  | 
| 866 | 
            -
                    assert_equal 0, instance.get_property( | 
| 896 | 
            +
                  it 'can be retrieved with #get_property' do
         | 
| 897 | 
            +
                    assert_equal 0, instance.get_property('int').get_value
         | 
| 867 898 | 
             
                  end
         | 
| 868 899 |  | 
| 869 | 
            -
                  it  | 
| 900 | 
            +
                  it 'can be retrieved with #int' do
         | 
| 870 901 | 
             
                    assert_equal 0, instance.int
         | 
| 871 902 | 
             
                  end
         | 
| 872 903 |  | 
| 873 | 
            -
                  it  | 
| 874 | 
            -
                    instance.set_property  | 
| 875 | 
            -
                    assert_equal 42, instance.get_property( | 
| 904 | 
            +
                  it 'can be set with #set_property' do
         | 
| 905 | 
            +
                    instance.set_property 'int', 42
         | 
| 906 | 
            +
                    assert_equal 42, instance.get_property('int').get_value
         | 
| 876 907 | 
             
                  end
         | 
| 877 908 |  | 
| 878 | 
            -
                  it  | 
| 909 | 
            +
                  it 'can be set with #int=' do
         | 
| 879 910 | 
             
                    instance.int = 41
         | 
| 880 | 
            -
                    assert_equal 41, instance.get_property( | 
| 911 | 
            +
                    assert_equal 41, instance.get_property('int').get_value
         | 
| 881 912 | 
             
                    assert_equal 41, instance.int
         | 
| 882 913 | 
             
                  end
         | 
| 883 914 | 
             
                end
         | 
| 884 915 |  | 
| 885 916 | 
             
                describe "its 'list' property" do
         | 
| 886 | 
            -
                  it  | 
| 887 | 
            -
                    instance.get_property_extended( | 
| 917 | 
            +
                  it 'can be retrieved with #get_property_extended' do
         | 
| 918 | 
            +
                    instance.get_property_extended('list').must_be_nil
         | 
| 888 919 | 
             
                  end
         | 
| 889 920 |  | 
| 890 | 
            -
                  it  | 
| 921 | 
            +
                  it 'can be retrieved with #list' do
         | 
| 891 922 | 
             
                    instance.list.must_be_nil
         | 
| 892 923 | 
             
                  end
         | 
| 893 924 |  | 
| 894 | 
            -
                  it  | 
| 895 | 
            -
                    instance.set_property_extended  | 
| 896 | 
            -
                    instance.list.to_a.must_equal  | 
| 925 | 
            +
                  it 'can be set with #set_property_extended' do
         | 
| 926 | 
            +
                    instance.set_property_extended 'list', %w(foo bar)
         | 
| 927 | 
            +
                    instance.list.to_a.must_equal %w(foo bar)
         | 
| 897 928 | 
             
                  end
         | 
| 898 929 |  | 
| 899 | 
            -
                  it  | 
| 900 | 
            -
                    instance.list =  | 
| 901 | 
            -
                    instance.list.to_a.must_equal  | 
| 902 | 
            -
                    instance.get_property_extended( | 
| 930 | 
            +
                  it 'can be set with #list=' do
         | 
| 931 | 
            +
                    instance.list = %w(foo bar)
         | 
| 932 | 
            +
                    instance.list.to_a.must_equal %w(foo bar)
         | 
| 933 | 
            +
                    instance.get_property_extended('list').must_be :==, %w(foo bar)
         | 
| 903 934 | 
             
                  end
         | 
| 904 935 | 
             
                end
         | 
| 905 936 |  | 
| 906 937 | 
             
                describe "its 'list-old' property" do
         | 
| 907 | 
            -
                  it  | 
| 908 | 
            -
                    instance.get_property_extended( | 
| 938 | 
            +
                  it 'can be retrieved with #get_property' do
         | 
| 939 | 
            +
                    instance.get_property_extended('list-old').must_be_nil
         | 
| 909 940 | 
             
                  end
         | 
| 910 941 |  | 
| 911 | 
            -
                  it  | 
| 942 | 
            +
                  it 'can be retrieved with #list_old' do
         | 
| 912 943 | 
             
                    instance.list_old.must_be_nil
         | 
| 913 944 | 
             
                  end
         | 
| 914 945 |  | 
| 915 | 
            -
                  it  | 
| 916 | 
            -
                    instance.set_property_extended  | 
| 917 | 
            -
                    instance.list_old.must_be :==,  | 
| 946 | 
            +
                  it 'can be set with #set_property_extended' do
         | 
| 947 | 
            +
                    instance.set_property_extended 'list-old', %w(foo bar)
         | 
| 948 | 
            +
                    instance.list_old.must_be :==, %w(foo bar)
         | 
| 918 949 | 
             
                  end
         | 
| 919 950 |  | 
| 920 | 
            -
                  it  | 
| 921 | 
            -
                    instance.list_old =  | 
| 922 | 
            -
                    instance.list_old.must_be :==,  | 
| 923 | 
            -
                    instance.get_property_extended( | 
| 951 | 
            +
                  it 'can be set with #list_old=' do
         | 
| 952 | 
            +
                    instance.list_old = %w(foo bar)
         | 
| 953 | 
            +
                    instance.list_old.must_be :==, %w(foo bar)
         | 
| 954 | 
            +
                    instance.get_property_extended('list-old').must_be :==, %w(foo bar)
         | 
| 924 955 | 
             
                  end
         | 
| 925 956 | 
             
                end
         | 
| 926 957 |  | 
| 958 | 
            +
                describe "its 'pptrarray' property" do
         | 
| 959 | 
            +
                  it 'can be retrieved with #get_property' do
         | 
| 960 | 
            +
                    skip 'pptrarray is not implemented properly'
         | 
| 961 | 
            +
                    instance.get_property('pptrarray').must_be_nil
         | 
| 962 | 
            +
                  end
         | 
| 963 | 
            +
             | 
| 964 | 
            +
                  it 'can be retrieved with #pptrarray' do
         | 
| 965 | 
            +
                    skip 'pptrarray is not implemented properly'
         | 
| 966 | 
            +
                    instance.pptrarray.must_be_nil
         | 
| 967 | 
            +
                  end
         | 
| 968 | 
            +
             | 
| 969 | 
            +
                  it 'can be set with #set_property' do
         | 
| 970 | 
            +
                    skip 'pptrarray is not implemented properly'
         | 
| 971 | 
            +
                    arr = Regress.test_garray_container_return
         | 
| 972 | 
            +
                    instance.set_property 'pptrarray', arr
         | 
| 973 | 
            +
                    instance.pptrarray.must_be :==, arr
         | 
| 974 | 
            +
                  end
         | 
| 975 | 
            +
             | 
| 976 | 
            +
                  it 'can be set with #pptrarray=' do
         | 
| 977 | 
            +
                    skip 'pptrarray is not implemented properly'
         | 
| 978 | 
            +
                    arr = Regress.test_garray_container_return
         | 
| 979 | 
            +
                    instance.pptrarray = arr
         | 
| 980 | 
            +
                    instance.pptrarray.must_be :==, arr
         | 
| 981 | 
            +
                    instance.get_property('pptrarray').must_be :==, arr
         | 
| 982 | 
            +
                  end
         | 
| 983 | 
            +
                end
         | 
| 927 984 | 
             
                describe "its 'string' property" do
         | 
| 928 | 
            -
                  it  | 
| 929 | 
            -
                    assert_nil instance.get_property( | 
| 985 | 
            +
                  it 'can be retrieved with #get_property' do
         | 
| 986 | 
            +
                    assert_nil instance.get_property('string').get_value
         | 
| 930 987 | 
             
                  end
         | 
| 931 988 |  | 
| 932 | 
            -
                  it  | 
| 989 | 
            +
                  it 'can be retrieved with #string' do
         | 
| 933 990 | 
             
                    assert_nil instance.string
         | 
| 934 991 | 
             
                  end
         | 
| 935 992 |  | 
| 936 | 
            -
                  it  | 
| 937 | 
            -
                    instance.set_property  | 
| 938 | 
            -
                    assert_equal  | 
| 993 | 
            +
                  it 'can be set with #set_property' do
         | 
| 994 | 
            +
                    instance.set_property 'string', 'foobar'
         | 
| 995 | 
            +
                    assert_equal 'foobar', instance.get_property('string').get_value
         | 
| 939 996 | 
             
                  end
         | 
| 940 997 |  | 
| 941 | 
            -
                  it  | 
| 942 | 
            -
                    instance.string =  | 
| 943 | 
            -
                    assert_equal  | 
| 944 | 
            -
                    assert_equal  | 
| 998 | 
            +
                  it 'can be set with #string=' do
         | 
| 999 | 
            +
                    instance.string = 'foobar'
         | 
| 1000 | 
            +
                    assert_equal 'foobar', instance.string
         | 
| 1001 | 
            +
                    assert_equal 'foobar', instance.get_property('string').get_value
         | 
| 945 1002 | 
             
                  end
         | 
| 946 1003 | 
             
                end
         | 
| 947 1004 |  | 
| 948 1005 | 
             
                it "handles the 'all' signal" do
         | 
| 949 1006 | 
             
                  a = nil
         | 
| 950 | 
            -
                  GObject.signal_connect(instance,  | 
| 951 | 
            -
                  GObject.signal_emit instance,  | 
| 1007 | 
            +
                  GObject.signal_connect(instance, 'all') { a = 4 }
         | 
| 1008 | 
            +
                  GObject.signal_emit instance, 'all'
         | 
| 952 1009 | 
             
                  a.must_equal 4
         | 
| 953 1010 | 
             
                end
         | 
| 954 1011 |  | 
| 955 1012 | 
             
                it "handles the 'cleanup' signal" do
         | 
| 956 1013 | 
             
                  a = nil
         | 
| 957 | 
            -
                  GObject.signal_connect(instance,  | 
| 958 | 
            -
                  GObject.signal_emit instance,  | 
| 1014 | 
            +
                  GObject.signal_connect(instance, 'cleanup') { a = 4 }
         | 
| 1015 | 
            +
                  GObject.signal_emit instance, 'cleanup'
         | 
| 959 1016 | 
             
                  a.must_equal 4
         | 
| 960 1017 | 
             
                end
         | 
| 961 1018 |  | 
| 962 1019 | 
             
                it "handles the 'first' signal" do
         | 
| 963 1020 | 
             
                  a = nil
         | 
| 964 | 
            -
                  GObject.signal_connect(instance,  | 
| 965 | 
            -
                  GObject.signal_emit instance,  | 
| 1021 | 
            +
                  GObject.signal_connect(instance, 'first') { a = 4 }
         | 
| 1022 | 
            +
                  GObject.signal_emit instance, 'first'
         | 
| 966 1023 | 
             
                  a.must_equal 4
         | 
| 967 1024 | 
             
                end
         | 
| 968 1025 |  | 
| 969 1026 | 
             
                it "handles the 'sig-with-array-len-prop' signal" do
         | 
| 970 | 
            -
                  skip unless get_signal_introspection_data  | 
| 1027 | 
            +
                  skip unless get_signal_introspection_data 'Regress', 'TestObj', 'sig-with-array-len-prop'
         | 
| 971 1028 |  | 
| 972 1029 | 
             
                  a = nil
         | 
| 973 1030 |  | 
| 974 | 
            -
                  GObject.signal_connect(instance,  | 
| 1031 | 
            +
                  GObject.signal_connect(instance, 'sig-with-array-len-prop') do |_obj, arr, _user_data|
         | 
| 975 1032 | 
             
                    a = arr
         | 
| 976 1033 | 
             
                  end
         | 
| 977 1034 |  | 
| 978 1035 | 
             
                  arr = GirFFI::InPointer.from_array(:uint, [1, 2, 3])
         | 
| 979 | 
            -
                  GObject.signal_emit instance,  | 
| 1036 | 
            +
                  GObject.signal_emit instance, 'sig-with-array-len-prop', arr, 3
         | 
| 980 1037 |  | 
| 981 1038 | 
             
                  a.to_a.must_equal [1, 2, 3]
         | 
| 982 1039 | 
             
                end
         | 
| 983 1040 |  | 
| 984 1041 | 
             
                it "handles the 'sig-with-array-prop' signal" do
         | 
| 985 1042 | 
             
                  a = nil
         | 
| 986 | 
            -
                  GObject.signal_connect(instance,  | 
| 987 | 
            -
                  GObject.signal_emit instance,  | 
| 1043 | 
            +
                  GObject.signal_connect(instance, 'sig-with-array-prop') { |_, arr, _| a = arr }
         | 
| 1044 | 
            +
                  GObject.signal_emit instance, 'sig-with-array-prop',
         | 
| 988 1045 | 
             
                    GLib::Array.from(:uint, [1, 2, 3])
         | 
| 989 1046 | 
             
                  a.to_a.must_equal [1, 2, 3]
         | 
| 990 1047 | 
             
                end
         | 
| 991 1048 |  | 
| 992 1049 | 
             
                it "handles the 'sig-with-foreign-struct' signal" do
         | 
| 993 | 
            -
                  skip unless get_signal_introspection_data  | 
| 1050 | 
            +
                  skip unless get_signal_introspection_data 'Regress', 'TestObj', 'sig-with-foreign-struct'
         | 
| 994 1051 |  | 
| 995 1052 | 
             
                  a = nil
         | 
| 996 | 
            -
                  instance.signal_connect  | 
| 1053 | 
            +
                  instance.signal_connect 'sig-with-foreign-struct' do |_obj, ct|
         | 
| 997 1054 | 
             
                    a = ct
         | 
| 998 1055 | 
             
                  end
         | 
| 999 1056 |  | 
| 1000 1057 | 
             
                  cairo_context = Regress.test_cairo_context_full_return
         | 
| 1001 1058 |  | 
| 1002 | 
            -
                  GObject.signal_emit instance,  | 
| 1059 | 
            +
                  GObject.signal_emit instance, 'sig-with-foreign-struct', cairo_context
         | 
| 1003 1060 |  | 
| 1004 1061 | 
             
                  a.must_be_instance_of Cairo::Context
         | 
| 1005 1062 | 
             
                  a.must_equal cairo_context
         | 
| @@ -1008,45 +1065,45 @@ describe Regress do | |
| 1008 1065 | 
             
                it "handles the 'sig-with-hash-prop' signal" do
         | 
| 1009 1066 | 
             
                  a = nil
         | 
| 1010 1067 |  | 
| 1011 | 
            -
                  GObject.signal_connect(instance,  | 
| 1068 | 
            +
                  GObject.signal_connect(instance, 'sig-with-hash-prop') do |_, ghash, _|
         | 
| 1012 1069 | 
             
                    a = ghash.to_hash
         | 
| 1013 1070 | 
             
                  end
         | 
| 1014 1071 |  | 
| 1015 1072 | 
             
                  g_hash_table = GLib::HashTable.from([:utf8, GObject::Value],
         | 
| 1016 | 
            -
                                                       | 
| 1073 | 
            +
                                                      'foo' => GObject::Value.from('bar'))
         | 
| 1017 1074 |  | 
| 1018 | 
            -
                  GObject.signal_emit instance,  | 
| 1075 | 
            +
                  GObject.signal_emit instance, 'sig-with-hash-prop', g_hash_table
         | 
| 1019 1076 |  | 
| 1020 | 
            -
                  a[ | 
| 1021 | 
            -
                  a[ | 
| 1077 | 
            +
                  a['foo'].must_be_instance_of GObject::Value
         | 
| 1078 | 
            +
                  a['foo'].get_value.must_equal 'bar'
         | 
| 1022 1079 | 
             
                end
         | 
| 1023 1080 |  | 
| 1024 1081 | 
             
                it "handles the 'sig-with-int64-prop' signal" do
         | 
| 1025 | 
            -
                  skip unless get_signal_introspection_data  | 
| 1082 | 
            +
                  skip unless get_signal_introspection_data 'Regress', 'TestObj', 'sig-with-int64-prop'
         | 
| 1026 1083 |  | 
| 1027 1084 | 
             
                  a = nil
         | 
| 1028 1085 |  | 
| 1029 | 
            -
                  GObject.signal_connect(instance,  | 
| 1086 | 
            +
                  GObject.signal_connect(instance, 'sig-with-int64-prop') do |_obj, int64, _user_data|
         | 
| 1030 1087 | 
             
                    a = int64
         | 
| 1031 1088 | 
             
                  end
         | 
| 1032 1089 |  | 
| 1033 | 
            -
                  result = GObject.signal_emit instance,  | 
| 1090 | 
            +
                  result = GObject.signal_emit instance, 'sig-with-int64-prop', 0x7fff_ffff_ffff_ffff
         | 
| 1034 1091 |  | 
| 1035 1092 | 
             
                  a.must_equal 0x7fff_ffff_ffff_ffff
         | 
| 1036 1093 | 
             
                  result.get_value.must_equal 0x7fff_ffff_ffff_ffff
         | 
| 1037 1094 | 
             
                end
         | 
| 1038 1095 |  | 
| 1039 1096 | 
             
                it "handles the 'sig-with-intarray-ret' signal" do
         | 
| 1040 | 
            -
                  skip unless get_signal_introspection_data  | 
| 1097 | 
            +
                  skip unless get_signal_introspection_data 'Regress', 'TestObj', 'sig-with-intarray-ret'
         | 
| 1041 1098 |  | 
| 1042 1099 | 
             
                  a = nil
         | 
| 1043 1100 |  | 
| 1044 | 
            -
                  GObject.signal_connect(instance,  | 
| 1101 | 
            +
                  GObject.signal_connect(instance, 'sig-with-intarray-ret') do |_, i, _|
         | 
| 1045 1102 | 
             
                    a = i
         | 
| 1046 1103 | 
             
                    [3, 2, 1]
         | 
| 1047 1104 | 
             
                  end
         | 
| 1048 1105 |  | 
| 1049 | 
            -
                  result = GObject.signal_emit instance,  | 
| 1106 | 
            +
                  result = GObject.signal_emit instance, 'sig-with-intarray-ret', 3
         | 
| 1050 1107 |  | 
| 1051 1108 | 
             
                  a.must_equal 3
         | 
| 1052 1109 |  | 
| @@ -1057,12 +1114,12 @@ describe Regress do | |
| 1057 1114 | 
             
                it "handles the 'sig-with-obj' signal" do
         | 
| 1058 1115 | 
             
                  a = nil
         | 
| 1059 1116 |  | 
| 1060 | 
            -
                  GObject.signal_connect(instance,  | 
| 1117 | 
            +
                  GObject.signal_connect(instance, 'sig-with-obj') do |_, obj, _|
         | 
| 1061 1118 | 
             
                    a = obj
         | 
| 1062 1119 | 
             
                  end
         | 
| 1063 1120 |  | 
| 1064 1121 | 
             
                  object = Regress::TestObj.constructor
         | 
| 1065 | 
            -
                  GObject.signal_emit instance,  | 
| 1122 | 
            +
                  GObject.signal_emit instance, 'sig-with-obj', object
         | 
| 1066 1123 |  | 
| 1067 1124 | 
             
                  a.must_equal object
         | 
| 1068 1125 | 
             
                end
         | 
| @@ -1070,25 +1127,25 @@ describe Regress do | |
| 1070 1127 | 
             
                it "handles the 'sig-with-strv' signal" do
         | 
| 1071 1128 | 
             
                  a = nil
         | 
| 1072 1129 |  | 
| 1073 | 
            -
                  GObject.signal_connect(instance,  | 
| 1130 | 
            +
                  GObject.signal_connect(instance, 'sig-with-strv') do |_, strs, _|
         | 
| 1074 1131 | 
             
                    a = strs
         | 
| 1075 1132 | 
             
                  end
         | 
| 1076 1133 |  | 
| 1077 | 
            -
                  GObject.signal_emit instance,  | 
| 1134 | 
            +
                  GObject.signal_emit instance, 'sig-with-strv', GLib::Strv.from(%w(foo bar))
         | 
| 1078 1135 |  | 
| 1079 | 
            -
                  a.to_a.must_equal  | 
| 1136 | 
            +
                  a.to_a.must_equal %w(foo bar)
         | 
| 1080 1137 | 
             
                end
         | 
| 1081 1138 |  | 
| 1082 1139 | 
             
                it "handles the 'sig-with-uint64-prop' signal" do
         | 
| 1083 | 
            -
                  skip unless get_signal_introspection_data  | 
| 1140 | 
            +
                  skip unless get_signal_introspection_data 'Regress', 'TestObj', 'sig-with-uint64-prop'
         | 
| 1084 1141 |  | 
| 1085 1142 | 
             
                  a = nil
         | 
| 1086 1143 |  | 
| 1087 | 
            -
                  GObject.signal_connect(instance,  | 
| 1144 | 
            +
                  GObject.signal_connect(instance, 'sig-with-uint64-prop') do |_, uint64, _|
         | 
| 1088 1145 | 
             
                    a = uint64
         | 
| 1089 1146 | 
             
                  end
         | 
| 1090 1147 |  | 
| 1091 | 
            -
                  result = GObject.signal_emit instance,  | 
| 1148 | 
            +
                  result = GObject.signal_emit instance, 'sig-with-uint64-prop', 0xffff_ffff_ffff_ffff
         | 
| 1092 1149 |  | 
| 1093 1150 | 
             
                  a.must_equal 0xffff_ffff_ffff_ffff
         | 
| 1094 1151 | 
             
                  result.get_value.must_equal 0xffff_ffff_ffff_ffff
         | 
| @@ -1097,140 +1154,140 @@ describe Regress do | |
| 1097 1154 | 
             
                it "handles the 'test' signal" do
         | 
| 1098 1155 | 
             
                  a = b = nil
         | 
| 1099 1156 | 
             
                  o = Regress::TestSubObj.new
         | 
| 1100 | 
            -
                  GObject.signal_connect(o,  | 
| 1101 | 
            -
                  GObject.signal_emit o,  | 
| 1157 | 
            +
                  GObject.signal_connect(o, 'test', 2) { |i, d| a = d; b = i }
         | 
| 1158 | 
            +
                  GObject.signal_emit o, 'test'
         | 
| 1102 1159 | 
             
                  assert_equal [2, o], [a, b]
         | 
| 1103 1160 | 
             
                end
         | 
| 1104 1161 |  | 
| 1105 1162 | 
             
                it "handles the 'test-with-static-scope-arg' signal" do
         | 
| 1106 1163 | 
             
                  a = nil
         | 
| 1107 1164 |  | 
| 1108 | 
            -
                  GObject.signal_connect(instance,  | 
| 1165 | 
            +
                  GObject.signal_connect(instance, 'test-with-static-scope-arg') do |_, obj, _|
         | 
| 1109 1166 | 
             
                    a = obj
         | 
| 1110 1167 | 
             
                  end
         | 
| 1111 1168 |  | 
| 1112 1169 | 
             
                  arg = Regress::TestSimpleBoxedA.new
         | 
| 1113 | 
            -
                  arg.some_int =  | 
| 1114 | 
            -
                  GObject.signal_emit instance,  | 
| 1170 | 
            +
                  arg.some_int = 12_345
         | 
| 1171 | 
            +
                  GObject.signal_emit instance, 'test-with-static-scope-arg', arg
         | 
| 1115 1172 |  | 
| 1116 | 
            -
                  a.some_int.must_equal  | 
| 1173 | 
            +
                  a.some_int.must_equal 12_345
         | 
| 1117 1174 | 
             
                end
         | 
| 1118 1175 | 
             
              end
         | 
| 1119 1176 |  | 
| 1120 | 
            -
              describe  | 
| 1177 | 
            +
              describe 'Regress::TestOtherError' do
         | 
| 1121 1178 | 
             
                before do
         | 
| 1122 1179 | 
             
                  skip unless get_introspection_data 'Regress', 'TestOtherError'
         | 
| 1123 1180 | 
             
                end
         | 
| 1124 1181 |  | 
| 1125 | 
            -
                it  | 
| 1182 | 
            +
                it 'has the member :code1' do
         | 
| 1126 1183 | 
             
                  Regress::TestOtherError[:code1].must_equal 1
         | 
| 1127 1184 | 
             
                end
         | 
| 1128 1185 |  | 
| 1129 | 
            -
                it  | 
| 1186 | 
            +
                it 'has the member :code2' do
         | 
| 1130 1187 | 
             
                  Regress::TestOtherError[:code2].must_equal 2
         | 
| 1131 1188 | 
             
                end
         | 
| 1132 1189 |  | 
| 1133 | 
            -
                it  | 
| 1190 | 
            +
                it 'has the member :code3' do
         | 
| 1134 1191 | 
             
                  Regress::TestOtherError[:code3].must_equal 3
         | 
| 1135 1192 | 
             
                end
         | 
| 1136 1193 |  | 
| 1137 | 
            -
                it  | 
| 1194 | 
            +
                it 'has a working function #quark' do
         | 
| 1138 1195 | 
             
                  quark = Regress::TestOtherError.quark
         | 
| 1139 | 
            -
                  GLib.quark_to_string(quark).must_equal  | 
| 1196 | 
            +
                  GLib.quark_to_string(quark).must_equal 'regress-test-other-error'
         | 
| 1140 1197 | 
             
                end
         | 
| 1141 1198 | 
             
              end
         | 
| 1142 1199 |  | 
| 1143 | 
            -
              describe  | 
| 1144 | 
            -
                it  | 
| 1200 | 
            +
              describe 'Regress::TestPrivateEnum' do
         | 
| 1201 | 
            +
                it 'has the member :public_enum_before' do
         | 
| 1145 1202 | 
             
                  Regress::TestPrivateEnum[:public_enum_before].must_equal 1
         | 
| 1146 1203 | 
             
                end
         | 
| 1147 | 
            -
                it  | 
| 1204 | 
            +
                it 'does not have the member :private' do
         | 
| 1148 1205 | 
             
                  Regress::TestPrivateEnum[:private].must_equal nil
         | 
| 1149 1206 | 
             
                end
         | 
| 1150 | 
            -
                it  | 
| 1207 | 
            +
                it 'has the member :public_enum_after' do
         | 
| 1151 1208 | 
             
                  Regress::TestPrivateEnum[:public_enum_after].must_equal 4
         | 
| 1152 1209 | 
             
                end
         | 
| 1153 1210 | 
             
              end
         | 
| 1154 1211 |  | 
| 1155 | 
            -
              describe  | 
| 1212 | 
            +
              describe 'Regress::TestPrivateStruct' do
         | 
| 1156 1213 | 
             
                let(:instance) { Regress::TestPrivateStruct.new }
         | 
| 1157 1214 |  | 
| 1158 | 
            -
                it  | 
| 1215 | 
            +
                it 'has a writable field this_is_public_before' do
         | 
| 1159 1216 | 
             
                  instance.this_is_public_before.must_equal 0
         | 
| 1160 1217 | 
             
                  instance.this_is_public_before = 42
         | 
| 1161 1218 | 
             
                  instance.this_is_public_before.must_equal 42
         | 
| 1162 1219 | 
             
                end
         | 
| 1163 1220 |  | 
| 1164 | 
            -
                it  | 
| 1165 | 
            -
                  skip  | 
| 1221 | 
            +
                it 'has a private field this_is_private' do
         | 
| 1222 | 
            +
                  skip 'This field is identified as readable in the typelib'
         | 
| 1166 1223 | 
             
                  proc { instance.this_is_private }.must_raise NoMethodError
         | 
| 1167 1224 | 
             
                  proc { instance.this_is_private = 42 }.must_raise NoMethodError
         | 
| 1168 1225 | 
             
                end
         | 
| 1169 1226 |  | 
| 1170 | 
            -
                it  | 
| 1227 | 
            +
                it 'has a writable field this_is_public_after' do
         | 
| 1171 1228 | 
             
                  instance.this_is_public_after.must_equal 0
         | 
| 1172 1229 | 
             
                  instance.this_is_public_after = 42
         | 
| 1173 1230 | 
             
                  instance.this_is_public_after.must_equal 42
         | 
| 1174 1231 | 
             
                end
         | 
| 1175 1232 | 
             
              end
         | 
| 1176 1233 |  | 
| 1177 | 
            -
              describe  | 
| 1234 | 
            +
              describe 'Regress::TestReferenceEnum' do
         | 
| 1178 1235 | 
             
                before do
         | 
| 1179 1236 | 
             
                  skip unless get_introspection_data 'Regress', 'TestReferenceEnum'
         | 
| 1180 1237 | 
             
                end
         | 
| 1181 | 
            -
                it  | 
| 1238 | 
            +
                it 'has the member :0' do
         | 
| 1182 1239 | 
             
                  Regress::TestReferenceEnum[:"0"].must_equal 4
         | 
| 1183 1240 | 
             
                end
         | 
| 1184 | 
            -
                it  | 
| 1241 | 
            +
                it 'has the member :1' do
         | 
| 1185 1242 | 
             
                  Regress::TestReferenceEnum[:"1"].must_equal 2
         | 
| 1186 1243 | 
             
                end
         | 
| 1187 | 
            -
                it  | 
| 1244 | 
            +
                it 'has the member :2' do
         | 
| 1188 1245 | 
             
                  Regress::TestReferenceEnum[:"2"].must_equal 54
         | 
| 1189 1246 | 
             
                end
         | 
| 1190 | 
            -
                it  | 
| 1247 | 
            +
                it 'has the member :3' do
         | 
| 1191 1248 | 
             
                  Regress::TestReferenceEnum[:"3"].must_equal 4
         | 
| 1192 1249 | 
             
                end
         | 
| 1193 | 
            -
                it  | 
| 1250 | 
            +
                it 'has the member :4' do
         | 
| 1194 1251 | 
             
                  Regress::TestReferenceEnum[:"4"].must_equal 216
         | 
| 1195 1252 | 
             
                end
         | 
| 1196 | 
            -
                it  | 
| 1253 | 
            +
                it 'has the member :5' do
         | 
| 1197 1254 | 
             
                  Regress::TestReferenceEnum[:"5"].must_equal(-217)
         | 
| 1198 1255 | 
             
                end
         | 
| 1199 1256 | 
             
              end
         | 
| 1200 1257 |  | 
| 1201 | 
            -
              describe  | 
| 1202 | 
            -
                it  | 
| 1258 | 
            +
              describe 'Regress::TestSimpleBoxedA' do
         | 
| 1259 | 
            +
                it 'creates an instance using #new' do
         | 
| 1203 1260 | 
             
                  obj = Regress::TestSimpleBoxedA.new
         | 
| 1204 1261 | 
             
                  assert_instance_of Regress::TestSimpleBoxedA, obj
         | 
| 1205 1262 | 
             
                end
         | 
| 1206 1263 |  | 
| 1207 1264 | 
             
                let(:instance) { Regress::TestSimpleBoxedA.new }
         | 
| 1208 1265 |  | 
| 1209 | 
            -
                it  | 
| 1266 | 
            +
                it 'has a writable field some_int' do
         | 
| 1210 1267 | 
             
                  instance.some_int.must_equal 0
         | 
| 1211 1268 | 
             
                  instance.some_int = 42
         | 
| 1212 1269 | 
             
                  instance.some_int.must_equal 42
         | 
| 1213 1270 | 
             
                end
         | 
| 1214 1271 |  | 
| 1215 | 
            -
                it  | 
| 1272 | 
            +
                it 'has a writable field some_int8' do
         | 
| 1216 1273 | 
             
                  instance.some_int8.must_equal 0
         | 
| 1217 1274 | 
             
                  instance.some_int8 = 42
         | 
| 1218 1275 | 
             
                  instance.some_int8.must_equal 42
         | 
| 1219 1276 | 
             
                end
         | 
| 1220 1277 |  | 
| 1221 | 
            -
                it  | 
| 1278 | 
            +
                it 'has a writable field some_double' do
         | 
| 1222 1279 | 
             
                  instance.some_double.must_equal 0.0
         | 
| 1223 1280 | 
             
                  instance.some_double = 42.0
         | 
| 1224 1281 | 
             
                  instance.some_double.must_equal 42.0
         | 
| 1225 1282 | 
             
                end
         | 
| 1226 1283 |  | 
| 1227 | 
            -
                it  | 
| 1284 | 
            +
                it 'has a writable field some_enum' do
         | 
| 1228 1285 | 
             
                  instance.some_enum.must_equal :value1
         | 
| 1229 1286 | 
             
                  instance.some_enum = :value4
         | 
| 1230 1287 | 
             
                  instance.some_enum.must_equal :value4
         | 
| 1231 1288 | 
             
                end
         | 
| 1232 1289 |  | 
| 1233 | 
            -
                it  | 
| 1290 | 
            +
                it 'has a working method #copy' do
         | 
| 1234 1291 | 
             
                  instance.some_int = 4236
         | 
| 1235 1292 |  | 
| 1236 1293 | 
             
                  obj2 = instance.copy
         | 
| @@ -1241,7 +1298,7 @@ describe Regress do | |
| 1241 1298 | 
             
                  obj2.some_int.wont_equal instance.some_int
         | 
| 1242 1299 | 
             
                end
         | 
| 1243 1300 |  | 
| 1244 | 
            -
                it  | 
| 1301 | 
            +
                it 'has a working method #equals' do
         | 
| 1245 1302 | 
             
                  instance.some_int = 4236
         | 
| 1246 1303 |  | 
| 1247 1304 | 
             
                  ob2 = Regress::TestSimpleBoxedA.new
         | 
| @@ -1253,27 +1310,27 @@ describe Regress do | |
| 1253 1310 | 
             
                  ob2.equals(instance).wont_equal true
         | 
| 1254 1311 | 
             
                end
         | 
| 1255 1312 |  | 
| 1256 | 
            -
                it  | 
| 1313 | 
            +
                it 'has a working function #const_return' do
         | 
| 1257 1314 | 
             
                  result = Regress::TestSimpleBoxedA.const_return
         | 
| 1258 1315 | 
             
                  [result.some_int, result.some_int8, result.some_double].must_equal [5, 6, 7.0]
         | 
| 1259 1316 | 
             
                end
         | 
| 1260 1317 | 
             
              end
         | 
| 1261 1318 |  | 
| 1262 | 
            -
              describe  | 
| 1319 | 
            +
              describe 'Regress::TestSimpleBoxedB' do
         | 
| 1263 1320 | 
             
                let(:instance) { Regress::TestSimpleBoxedB.new }
         | 
| 1264 | 
            -
                it  | 
| 1321 | 
            +
                it 'has a writable field some_int8' do
         | 
| 1265 1322 | 
             
                  instance.some_int8.must_equal 0
         | 
| 1266 1323 | 
             
                  instance.some_int8 = 42
         | 
| 1267 1324 | 
             
                  instance.some_int8.must_equal 42
         | 
| 1268 1325 | 
             
                end
         | 
| 1269 1326 |  | 
| 1270 | 
            -
                it  | 
| 1327 | 
            +
                it 'has a writable field nested_a' do
         | 
| 1271 1328 | 
             
                  instance.nested_a.some_int.must_equal 0
         | 
| 1272 1329 | 
             
                  instance.nested_a = Regress::TestSimpleBoxedA.const_return
         | 
| 1273 1330 | 
             
                  instance.nested_a.some_int.must_equal 5
         | 
| 1274 1331 | 
             
                end
         | 
| 1275 1332 |  | 
| 1276 | 
            -
                it  | 
| 1333 | 
            +
                it 'has a working method #copy' do
         | 
| 1277 1334 | 
             
                  instance.some_int8 = -42
         | 
| 1278 1335 | 
             
                  instance.nested_a.some_int = 4242
         | 
| 1279 1336 |  | 
| @@ -1285,33 +1342,33 @@ describe Regress do | |
| 1285 1342 | 
             
                end
         | 
| 1286 1343 | 
             
              end
         | 
| 1287 1344 |  | 
| 1288 | 
            -
              describe  | 
| 1345 | 
            +
              describe 'Regress::TestStructA' do
         | 
| 1289 1346 | 
             
                let(:instance) { Regress::TestStructA.new }
         | 
| 1290 | 
            -
                it  | 
| 1347 | 
            +
                it 'has a writable field some_int' do
         | 
| 1291 1348 | 
             
                  instance.some_int.must_equal 0
         | 
| 1292 1349 | 
             
                  instance.some_int = 2556
         | 
| 1293 1350 | 
             
                  instance.some_int.must_equal 2556
         | 
| 1294 1351 | 
             
                end
         | 
| 1295 1352 |  | 
| 1296 | 
            -
                it  | 
| 1353 | 
            +
                it 'has a writable field some_int8' do
         | 
| 1297 1354 | 
             
                  instance.some_int8.must_equal 0
         | 
| 1298 1355 | 
             
                  instance.some_int8 = -10
         | 
| 1299 1356 | 
             
                  instance.some_int8.must_equal(-10)
         | 
| 1300 1357 | 
             
                end
         | 
| 1301 1358 |  | 
| 1302 | 
            -
                it  | 
| 1359 | 
            +
                it 'has a writable field some_double' do
         | 
| 1303 1360 | 
             
                  instance.some_double.must_equal 0.0
         | 
| 1304 1361 | 
             
                  instance.some_double = 1.03455e20
         | 
| 1305 1362 | 
             
                  instance.some_double.must_equal 1.03455e20
         | 
| 1306 1363 | 
             
                end
         | 
| 1307 1364 |  | 
| 1308 | 
            -
                it  | 
| 1365 | 
            +
                it 'has a writable field some_enum' do
         | 
| 1309 1366 | 
             
                  instance.some_enum.must_equal :value1
         | 
| 1310 1367 | 
             
                  instance.some_enum = :value2
         | 
| 1311 1368 | 
             
                  instance.some_enum.must_equal :value2
         | 
| 1312 1369 | 
             
                end
         | 
| 1313 1370 |  | 
| 1314 | 
            -
                it  | 
| 1371 | 
            +
                it 'has a working method #clone' do
         | 
| 1315 1372 | 
             
                  a = Regress::TestStructA.new
         | 
| 1316 1373 | 
             
                  a.some_int = 2556
         | 
| 1317 1374 | 
             
                  a.some_int8 = -10
         | 
| @@ -1326,22 +1383,22 @@ describe Regress do | |
| 1326 1383 | 
             
                  assert_equal :value2, b.some_enum
         | 
| 1327 1384 | 
             
                end
         | 
| 1328 1385 |  | 
| 1329 | 
            -
                it  | 
| 1386 | 
            +
                it 'has a working function #parse' do
         | 
| 1330 1387 | 
             
                  skip unless get_method_introspection_data 'Regress', 'TestStructA', 'parse'
         | 
| 1331 | 
            -
                  a = Regress::TestStructA.parse( | 
| 1388 | 
            +
                  a = Regress::TestStructA.parse('this string is actually ignored')
         | 
| 1332 1389 | 
             
                  a.some_int.must_equal 23
         | 
| 1333 1390 | 
             
                end
         | 
| 1334 1391 | 
             
              end
         | 
| 1335 1392 |  | 
| 1336 | 
            -
              describe  | 
| 1393 | 
            +
              describe 'Regress::TestStructB' do
         | 
| 1337 1394 | 
             
                let(:instance) { Regress::TestStructB.new }
         | 
| 1338 | 
            -
                it  | 
| 1395 | 
            +
                it 'has a writable field some_int8' do
         | 
| 1339 1396 | 
             
                  instance.some_int8.must_equal 0
         | 
| 1340 1397 | 
             
                  instance.some_int8 = 42
         | 
| 1341 1398 | 
             
                  instance.some_int8.must_equal 42
         | 
| 1342 1399 | 
             
                end
         | 
| 1343 1400 |  | 
| 1344 | 
            -
                it  | 
| 1401 | 
            +
                it 'has a writable field nested_a' do
         | 
| 1345 1402 | 
             
                  instance.nested_a.some_int.must_equal 0
         | 
| 1346 1403 |  | 
| 1347 1404 | 
             
                  nested = Regress::TestStructA.new
         | 
| @@ -1351,7 +1408,7 @@ describe Regress do | |
| 1351 1408 | 
             
                  instance.nested_a.some_int.must_equal(-4321)
         | 
| 1352 1409 | 
             
                end
         | 
| 1353 1410 |  | 
| 1354 | 
            -
                it  | 
| 1411 | 
            +
                it 'has a working method #clone' do
         | 
| 1355 1412 | 
             
                  a = Regress::TestStructB.new
         | 
| 1356 1413 | 
             
                  a.some_int8 = 42
         | 
| 1357 1414 | 
             
                  a.nested_a.some_int = 2556
         | 
| @@ -1369,15 +1426,15 @@ describe Regress do | |
| 1369 1426 | 
             
                end
         | 
| 1370 1427 | 
             
              end
         | 
| 1371 1428 |  | 
| 1372 | 
            -
              describe  | 
| 1429 | 
            +
              describe 'Regress::TestStructC' do
         | 
| 1373 1430 | 
             
                let(:instance) { Regress::TestStructC.new }
         | 
| 1374 | 
            -
                it  | 
| 1431 | 
            +
                it 'has a writable field another_int' do
         | 
| 1375 1432 | 
             
                  instance.another_int.must_equal 0
         | 
| 1376 1433 | 
             
                  instance.another_int = 42
         | 
| 1377 1434 | 
             
                  instance.another_int.must_equal 42
         | 
| 1378 1435 | 
             
                end
         | 
| 1379 1436 |  | 
| 1380 | 
            -
                it  | 
| 1437 | 
            +
                it 'has a writable field obj' do
         | 
| 1381 1438 | 
             
                  o = Regress::TestSubObj.new
         | 
| 1382 1439 | 
             
                  instance.obj.must_equal nil
         | 
| 1383 1440 | 
             
                  instance.obj = o
         | 
| @@ -1385,37 +1442,37 @@ describe Regress do | |
| 1385 1442 | 
             
                end
         | 
| 1386 1443 | 
             
              end
         | 
| 1387 1444 |  | 
| 1388 | 
            -
              describe  | 
| 1445 | 
            +
              describe 'Regress::TestStructD' do
         | 
| 1389 1446 | 
             
                let(:instance) { Regress::TestStructD.new }
         | 
| 1390 | 
            -
                it  | 
| 1447 | 
            +
                it 'has a writable field array1' do
         | 
| 1391 1448 | 
             
                  instance.array1.must_be :==, []
         | 
| 1392 1449 | 
             
                  struct = Regress::TestStructA.new
         | 
| 1393 1450 | 
             
                  instance.array1 = [struct]
         | 
| 1394 1451 | 
             
                  instance.array1.must_be :==, [struct]
         | 
| 1395 1452 | 
             
                end
         | 
| 1396 1453 |  | 
| 1397 | 
            -
                it  | 
| 1454 | 
            +
                it 'has a writable field array2' do
         | 
| 1398 1455 | 
             
                  instance.array2.must_be :==, []
         | 
| 1399 1456 | 
             
                  o = Regress::TestSubObj.new
         | 
| 1400 1457 | 
             
                  instance.array2 = [o]
         | 
| 1401 1458 | 
             
                  instance.array2.must_be :==, [o]
         | 
| 1402 1459 | 
             
                end
         | 
| 1403 1460 |  | 
| 1404 | 
            -
                it  | 
| 1461 | 
            +
                it 'has a writable field field' do
         | 
| 1405 1462 | 
             
                  instance.field.must_equal nil
         | 
| 1406 1463 | 
             
                  o = Regress::TestSubObj.new
         | 
| 1407 1464 | 
             
                  instance.field = o
         | 
| 1408 1465 | 
             
                  instance.field.must_equal o
         | 
| 1409 1466 | 
             
                end
         | 
| 1410 1467 |  | 
| 1411 | 
            -
                it  | 
| 1468 | 
            +
                it 'has a writable field list' do
         | 
| 1412 1469 | 
             
                  instance.list.must_be_nil
         | 
| 1413 1470 | 
             
                  o = Regress::TestSubObj.new
         | 
| 1414 1471 | 
             
                  instance.list = [o]
         | 
| 1415 1472 | 
             
                  instance.list.must_be :==, [o]
         | 
| 1416 1473 | 
             
                end
         | 
| 1417 1474 |  | 
| 1418 | 
            -
                it  | 
| 1475 | 
            +
                it 'has a writable field garray' do
         | 
| 1419 1476 | 
             
                  instance.garray.must_be_nil
         | 
| 1420 1477 | 
             
                  o = Regress::TestSubObj.new
         | 
| 1421 1478 | 
             
                  instance.garray = [o]
         | 
| @@ -1423,15 +1480,15 @@ describe Regress do | |
| 1423 1480 | 
             
                end
         | 
| 1424 1481 | 
             
              end
         | 
| 1425 1482 |  | 
| 1426 | 
            -
              describe  | 
| 1483 | 
            +
              describe 'Regress::TestStructE' do
         | 
| 1427 1484 | 
             
                let(:instance) { Regress::TestStructE.new }
         | 
| 1428 | 
            -
                it  | 
| 1485 | 
            +
                it 'has a writable field some_type' do
         | 
| 1429 1486 | 
             
                  instance.some_type.must_equal 0
         | 
| 1430 1487 | 
             
                  instance.some_type = GObject::TYPE_STRING
         | 
| 1431 1488 | 
             
                  instance.some_type.must_equal GObject::TYPE_STRING
         | 
| 1432 1489 | 
             
                end
         | 
| 1433 1490 |  | 
| 1434 | 
            -
                it  | 
| 1491 | 
            +
                it 'has a writable field some_union' do
         | 
| 1435 1492 | 
             
                  instance.some_union.map(&:v_int).must_equal [0, 0]
         | 
| 1436 1493 |  | 
| 1437 1494 | 
             
                  union1 = Regress::TestStructE__some_union__union.new
         | 
| @@ -1444,161 +1501,161 @@ describe Regress do | |
| 1444 1501 | 
             
                  instance.some_union.map(&:v_int).must_equal [42, 84]
         | 
| 1445 1502 | 
             
                end
         | 
| 1446 1503 | 
             
              end
         | 
| 1447 | 
            -
              describe  | 
| 1504 | 
            +
              describe 'Regress::TestStructE__some_union__union' do
         | 
| 1448 1505 | 
             
                let(:instance) { Regress::TestStructE__some_union__union.new }
         | 
| 1449 | 
            -
                it  | 
| 1506 | 
            +
                it 'has a writable field v_int' do
         | 
| 1450 1507 | 
             
                  instance.v_int.must_equal 0
         | 
| 1451 | 
            -
                  instance.v_int = - | 
| 1452 | 
            -
                  instance.v_int.must_equal(- | 
| 1508 | 
            +
                  instance.v_int = -54_321
         | 
| 1509 | 
            +
                  instance.v_int.must_equal(-54_321)
         | 
| 1453 1510 | 
             
                end
         | 
| 1454 1511 |  | 
| 1455 | 
            -
                it  | 
| 1512 | 
            +
                it 'has a writable field v_uint' do
         | 
| 1456 1513 | 
             
                  instance.v_uint.must_equal 0
         | 
| 1457 | 
            -
                  instance.v_uint =  | 
| 1458 | 
            -
                  instance.v_uint.must_equal  | 
| 1514 | 
            +
                  instance.v_uint = 54_321
         | 
| 1515 | 
            +
                  instance.v_uint.must_equal 54_321
         | 
| 1459 1516 | 
             
                end
         | 
| 1460 1517 |  | 
| 1461 | 
            -
                it  | 
| 1518 | 
            +
                it 'has a writable field v_long' do
         | 
| 1462 1519 | 
             
                  instance.v_long.must_equal 0
         | 
| 1463 | 
            -
                  instance.v_long = - | 
| 1464 | 
            -
                  instance.v_long.must_equal(- | 
| 1520 | 
            +
                  instance.v_long = -54_321
         | 
| 1521 | 
            +
                  instance.v_long.must_equal(-54_321)
         | 
| 1465 1522 | 
             
                end
         | 
| 1466 1523 |  | 
| 1467 | 
            -
                it  | 
| 1524 | 
            +
                it 'has a writable field v_ulong' do
         | 
| 1468 1525 | 
             
                  instance.v_long.must_equal 0
         | 
| 1469 | 
            -
                  instance.v_long =  | 
| 1470 | 
            -
                  instance.v_long.must_equal  | 
| 1526 | 
            +
                  instance.v_long = 54_321
         | 
| 1527 | 
            +
                  instance.v_long.must_equal 54_321
         | 
| 1471 1528 | 
             
                end
         | 
| 1472 1529 |  | 
| 1473 | 
            -
                it  | 
| 1530 | 
            +
                it 'has a writable field v_int64' do
         | 
| 1474 1531 | 
             
                  instance.v_int64.must_equal 0
         | 
| 1475 1532 | 
             
                  instance.v_int64 = -54_321_000_000_000
         | 
| 1476 1533 | 
             
                  instance.v_int64.must_equal(-54_321_000_000_000)
         | 
| 1477 1534 | 
             
                end
         | 
| 1478 | 
            -
                it  | 
| 1535 | 
            +
                it 'has a writable field v_uint64' do
         | 
| 1479 1536 | 
             
                  instance.v_uint64.must_equal 0
         | 
| 1480 1537 | 
             
                  instance.v_uint64 = 54_321_000_000_000
         | 
| 1481 1538 | 
             
                  instance.v_uint64.must_equal 54_321_000_000_000
         | 
| 1482 1539 | 
             
                end
         | 
| 1483 | 
            -
                it  | 
| 1540 | 
            +
                it 'has a writable field v_float' do
         | 
| 1484 1541 | 
             
                  instance.v_float.must_equal 0
         | 
| 1485 1542 | 
             
                  instance.v_float = 3.1415
         | 
| 1486 1543 | 
             
                  instance.v_float.must_be_close_to 3.1415
         | 
| 1487 1544 | 
             
                end
         | 
| 1488 | 
            -
                it  | 
| 1545 | 
            +
                it 'has a writable field v_double' do
         | 
| 1489 1546 | 
             
                  instance.v_double.must_equal 0
         | 
| 1490 1547 | 
             
                  instance.v_double = 3.1415
         | 
| 1491 1548 | 
             
                  instance.v_double.must_equal 3.1415
         | 
| 1492 1549 | 
             
                end
         | 
| 1493 | 
            -
                it  | 
| 1550 | 
            +
                it 'has a writable field v_pointer' do
         | 
| 1494 1551 | 
             
                  instance.v_pointer.must_be :null?
         | 
| 1495 | 
            -
                  instance.v_pointer = FFI::Pointer.new  | 
| 1496 | 
            -
                  instance.v_pointer.address.must_equal  | 
| 1552 | 
            +
                  instance.v_pointer = FFI::Pointer.new 54_321
         | 
| 1553 | 
            +
                  instance.v_pointer.address.must_equal 54_321
         | 
| 1497 1554 | 
             
                end
         | 
| 1498 1555 | 
             
              end
         | 
| 1499 | 
            -
              describe  | 
| 1556 | 
            +
              describe 'Regress::TestStructF' do
         | 
| 1500 1557 | 
             
                before do
         | 
| 1501 1558 | 
             
                  skip unless get_introspection_data 'Regress', 'TestStructF'
         | 
| 1502 1559 | 
             
                end
         | 
| 1503 1560 |  | 
| 1504 1561 | 
             
                let(:instance) { Regress::TestStructF.new }
         | 
| 1505 1562 |  | 
| 1506 | 
            -
                it  | 
| 1563 | 
            +
                it 'has a writable field ref_count' do
         | 
| 1507 1564 | 
             
                  instance.ref_count.must_equal 0
         | 
| 1508 1565 | 
             
                  instance.ref_count = 1
         | 
| 1509 1566 | 
             
                  instance.ref_count.must_equal 1
         | 
| 1510 1567 | 
             
                end
         | 
| 1511 1568 |  | 
| 1512 | 
            -
                it  | 
| 1569 | 
            +
                it 'has a writable field data1' do
         | 
| 1513 1570 | 
             
                  instance.data1.must_be :null?
         | 
| 1514 1571 | 
             
                  instance.data1 = GirFFI::InOutPointer.from(:gint32, 42)
         | 
| 1515 1572 | 
             
                  instance.data1.read_int.must_equal 42
         | 
| 1516 1573 | 
             
                end
         | 
| 1517 1574 |  | 
| 1518 1575 | 
             
                # TODO: Check what gobject-introspection should/will do with these fields.
         | 
| 1519 | 
            -
                it  | 
| 1520 | 
            -
                  skip  | 
| 1576 | 
            +
                it 'has a writable field data2' do
         | 
| 1577 | 
            +
                  skip 'Introspection data cannot deal with type of this field yet'
         | 
| 1521 1578 | 
             
                end
         | 
| 1522 1579 |  | 
| 1523 | 
            -
                it  | 
| 1524 | 
            -
                  skip  | 
| 1580 | 
            +
                it 'has a writable field data3' do
         | 
| 1581 | 
            +
                  skip 'Introspection data cannot deal with type of this field yet'
         | 
| 1525 1582 | 
             
                end
         | 
| 1526 1583 |  | 
| 1527 | 
            -
                it  | 
| 1528 | 
            -
                  skip  | 
| 1584 | 
            +
                it 'has a writable field data4' do
         | 
| 1585 | 
            +
                  skip 'Introspection data cannot deal with type of this field yet'
         | 
| 1529 1586 | 
             
                end
         | 
| 1530 1587 |  | 
| 1531 | 
            -
                it  | 
| 1532 | 
            -
                  skip  | 
| 1588 | 
            +
                it 'has a writable field data5' do
         | 
| 1589 | 
            +
                  skip 'Introspection data cannot deal with type of this field yet'
         | 
| 1533 1590 | 
             
                end
         | 
| 1534 1591 |  | 
| 1535 | 
            -
                it  | 
| 1536 | 
            -
                  skip  | 
| 1592 | 
            +
                it 'has a writable field data6' do
         | 
| 1593 | 
            +
                  skip 'Introspection data cannot deal with type of this field yet'
         | 
| 1537 1594 | 
             
                end
         | 
| 1538 1595 | 
             
              end
         | 
| 1539 1596 |  | 
| 1540 | 
            -
              describe  | 
| 1597 | 
            +
              describe 'Regress::TestStructFixedArray' do
         | 
| 1541 1598 | 
             
                let(:instance) { Regress::TestStructFixedArray.new }
         | 
| 1542 | 
            -
                it  | 
| 1599 | 
            +
                it 'has a writable field just_int' do
         | 
| 1543 1600 | 
             
                  instance.just_int.must_equal 0
         | 
| 1544 1601 | 
             
                  instance.just_int = 42
         | 
| 1545 1602 | 
             
                  instance.just_int.must_equal 42
         | 
| 1546 1603 | 
             
                end
         | 
| 1547 1604 |  | 
| 1548 | 
            -
                it  | 
| 1605 | 
            +
                it 'has a writable field array' do
         | 
| 1549 1606 | 
             
                  instance.array.must_be :==, [0] * 10
         | 
| 1550 1607 | 
             
                  instance.array = (1..10).to_a
         | 
| 1551 1608 | 
             
                  instance.array.must_be :==, (1..10).to_a
         | 
| 1552 1609 | 
             
                end
         | 
| 1553 1610 |  | 
| 1554 | 
            -
                it  | 
| 1611 | 
            +
                it 'has a working method #frob' do
         | 
| 1555 1612 | 
             
                  instance.array = (0..9).to_a
         | 
| 1556 1613 | 
             
                  instance.frob
         | 
| 1557 | 
            -
                  instance.array.must_be :==, (42..42+9).to_a
         | 
| 1614 | 
            +
                  instance.array.must_be :==, (42..42 + 9).to_a
         | 
| 1558 1615 | 
             
                  instance.just_int.must_equal 7
         | 
| 1559 1616 | 
             
                end
         | 
| 1560 1617 | 
             
              end
         | 
| 1561 1618 |  | 
| 1562 | 
            -
              describe  | 
| 1563 | 
            -
                it  | 
| 1619 | 
            +
              describe 'Regress::TestSubObj' do
         | 
| 1620 | 
            +
                it 'creates an instance using #new' do
         | 
| 1564 1621 | 
             
                  tso = Regress::TestSubObj.new
         | 
| 1565 1622 | 
             
                  assert_instance_of Regress::TestSubObj, tso
         | 
| 1566 1623 | 
             
                end
         | 
| 1567 1624 |  | 
| 1568 1625 | 
             
                let(:instance) { Regress::TestSubObj.new }
         | 
| 1569 1626 |  | 
| 1570 | 
            -
                it  | 
| 1627 | 
            +
                it 'has a working method #instance_method' do
         | 
| 1571 1628 | 
             
                  res = instance.instance_method
         | 
| 1572 1629 | 
             
                  assert_equal 0, res
         | 
| 1573 1630 | 
             
                end
         | 
| 1574 1631 |  | 
| 1575 | 
            -
                it  | 
| 1632 | 
            +
                it 'has a working method #unset_bare' do
         | 
| 1576 1633 | 
             
                  instance.unset_bare
         | 
| 1577 1634 | 
             
                  pass
         | 
| 1578 1635 | 
             
                end
         | 
| 1579 1636 |  | 
| 1580 | 
            -
                it  | 
| 1637 | 
            +
                it 'does not have a field parent_instance' do
         | 
| 1581 1638 | 
             
                  assert_raises(NoMethodError) { instance.parent_instance }
         | 
| 1582 1639 | 
             
                end
         | 
| 1583 1640 | 
             
              end
         | 
| 1584 1641 |  | 
| 1585 | 
            -
              describe  | 
| 1586 | 
            -
                it  | 
| 1642 | 
            +
              describe 'Regress::TestWi8021x' do
         | 
| 1643 | 
            +
                it 'creates an instance using #new' do
         | 
| 1587 1644 | 
             
                  o = Regress::TestWi8021x.new
         | 
| 1588 1645 | 
             
                  assert_instance_of Regress::TestWi8021x, o
         | 
| 1589 1646 | 
             
                end
         | 
| 1590 1647 |  | 
| 1591 | 
            -
                it  | 
| 1648 | 
            +
                it 'has a working function #static_method' do
         | 
| 1592 1649 | 
             
                  assert_equal(-84, Regress::TestWi8021x.static_method(-42))
         | 
| 1593 1650 | 
             
                end
         | 
| 1594 1651 |  | 
| 1595 1652 | 
             
                let(:instance) { Regress::TestWi8021x.new }
         | 
| 1596 1653 |  | 
| 1597 | 
            -
                it  | 
| 1654 | 
            +
                it 'has a working method #get_testbool' do
         | 
| 1598 1655 | 
             
                  instance.get_testbool.must_equal true
         | 
| 1599 1656 | 
             
                end
         | 
| 1600 1657 |  | 
| 1601 | 
            -
                it  | 
| 1658 | 
            +
                it 'has a working method #set_testbool' do
         | 
| 1602 1659 | 
             
                  instance.set_testbool true
         | 
| 1603 1660 | 
             
                  instance.get_testbool.must_equal true
         | 
| 1604 1661 | 
             
                  instance.set_testbool false
         | 
| @@ -1606,89 +1663,89 @@ describe Regress do | |
| 1606 1663 | 
             
                end
         | 
| 1607 1664 |  | 
| 1608 1665 | 
             
                describe "its 'testbool' property" do
         | 
| 1609 | 
            -
                  it  | 
| 1610 | 
            -
                    instance.get_property( | 
| 1666 | 
            +
                  it 'can be retrieved with #get_property' do
         | 
| 1667 | 
            +
                    instance.get_property('testbool').get_value.must_equal true
         | 
| 1611 1668 | 
             
                  end
         | 
| 1612 1669 |  | 
| 1613 | 
            -
                  it  | 
| 1670 | 
            +
                  it 'can be retrieved with #testbool' do
         | 
| 1614 1671 | 
             
                    instance.testbool.must_equal true
         | 
| 1615 1672 | 
             
                  end
         | 
| 1616 1673 |  | 
| 1617 | 
            -
                  it  | 
| 1618 | 
            -
                    instance.set_property  | 
| 1674 | 
            +
                  it 'can be set with #set_property' do
         | 
| 1675 | 
            +
                    instance.set_property 'testbool', true
         | 
| 1619 1676 | 
             
                    instance.get_testbool.must_equal true
         | 
| 1620 | 
            -
                    instance.get_property( | 
| 1677 | 
            +
                    instance.get_property('testbool').get_value.must_equal true
         | 
| 1621 1678 |  | 
| 1622 | 
            -
                    instance.set_property  | 
| 1679 | 
            +
                    instance.set_property 'testbool', false
         | 
| 1623 1680 | 
             
                    instance.get_testbool.must_equal false
         | 
| 1624 | 
            -
                    instance.get_property( | 
| 1681 | 
            +
                    instance.get_property('testbool').get_value.must_equal false
         | 
| 1625 1682 | 
             
                  end
         | 
| 1626 1683 |  | 
| 1627 | 
            -
                  it  | 
| 1684 | 
            +
                  it 'can be set with #testbool=' do
         | 
| 1628 1685 | 
             
                    instance.testbool = true
         | 
| 1629 1686 | 
             
                    instance.testbool.must_equal true
         | 
| 1630 1687 | 
             
                    instance.get_testbool.must_equal true
         | 
| 1631 | 
            -
                    instance.get_property( | 
| 1688 | 
            +
                    instance.get_property('testbool').get_value.must_equal true
         | 
| 1632 1689 |  | 
| 1633 1690 | 
             
                    instance.testbool = false
         | 
| 1634 1691 | 
             
                    instance.testbool.must_equal false
         | 
| 1635 1692 | 
             
                    instance.get_testbool.must_equal false
         | 
| 1636 | 
            -
                    instance.get_property( | 
| 1693 | 
            +
                    instance.get_property('testbool').get_value.must_equal false
         | 
| 1637 1694 | 
             
                  end
         | 
| 1638 1695 | 
             
                end
         | 
| 1639 1696 | 
             
              end
         | 
| 1640 1697 |  | 
| 1641 | 
            -
              it  | 
| 1642 | 
            -
                assert_equal  | 
| 1698 | 
            +
              it 'has the constant UTF8_CONSTANT' do
         | 
| 1699 | 
            +
                assert_equal 'const ♥ utf8', Regress::UTF8_CONSTANT
         | 
| 1643 1700 | 
             
              end
         | 
| 1644 1701 |  | 
| 1645 | 
            -
              it  | 
| 1702 | 
            +
              it 'has a working function #aliased_caller_alloc' do
         | 
| 1646 1703 | 
             
                result = Regress.aliased_caller_alloc
         | 
| 1647 1704 | 
             
                result.must_be_instance_of Regress::TestBoxed
         | 
| 1648 1705 | 
             
              end
         | 
| 1649 1706 |  | 
| 1650 | 
            -
              it  | 
| 1707 | 
            +
              it 'has a working function #atest_error_quark' do
         | 
| 1651 1708 | 
             
                skip unless get_introspection_data 'Regress', 'atest_error_quark'
         | 
| 1652 1709 | 
             
                result = Regress.atest_error_quark
         | 
| 1653 | 
            -
                GLib.quark_to_string(result).must_equal  | 
| 1710 | 
            +
                GLib.quark_to_string(result).must_equal 'regress-atest-error'
         | 
| 1654 1711 | 
             
              end
         | 
| 1655 1712 |  | 
| 1656 | 
            -
              it  | 
| 1713 | 
            +
              it 'has a working function #func_obj_null_in' do
         | 
| 1657 1714 | 
             
                Regress.func_obj_null_in nil
         | 
| 1658 1715 | 
             
                Regress.func_obj_null_in Regress::TestObj.constructor
         | 
| 1659 1716 | 
             
                pass
         | 
| 1660 1717 | 
             
              end
         | 
| 1661 1718 |  | 
| 1662 | 
            -
              it  | 
| 1719 | 
            +
              it 'has a working function #global_get_flags_out' do
         | 
| 1663 1720 | 
             
                result = Regress.global_get_flags_out
         | 
| 1664 1721 | 
             
                result.must_equal Regress::TestFlags[:flag1] | Regress::TestFlags[:flag3]
         | 
| 1665 1722 | 
             
              end
         | 
| 1666 1723 |  | 
| 1667 | 
            -
              it  | 
| 1724 | 
            +
              it 'has a working function #has_parameter_named_attrs' do
         | 
| 1668 1725 | 
             
                skip unless get_introspection_data 'Regress', 'has_parameter_named_attrs'
         | 
| 1669 1726 | 
             
                Regress.has_parameter_named_attrs 42, [23] * 32
         | 
| 1670 1727 | 
             
                pass
         | 
| 1671 1728 | 
             
              end
         | 
| 1672 1729 |  | 
| 1673 | 
            -
              it  | 
| 1730 | 
            +
              it 'has a working function #introspectable_via_alias' do
         | 
| 1674 1731 | 
             
                Regress.introspectable_via_alias []
         | 
| 1675 1732 | 
             
                pass
         | 
| 1676 1733 | 
             
              end
         | 
| 1677 1734 |  | 
| 1678 | 
            -
              it  | 
| 1735 | 
            +
              it 'has a working function #set_abort_on_error' do
         | 
| 1679 1736 | 
             
                Regress.set_abort_on_error false
         | 
| 1680 1737 | 
             
                Regress.set_abort_on_error true
         | 
| 1681 1738 | 
             
                pass
         | 
| 1682 1739 | 
             
              end
         | 
| 1683 1740 |  | 
| 1684 | 
            -
              it  | 
| 1741 | 
            +
              it 'has a working function #test_abc_error_quark' do
         | 
| 1685 1742 | 
             
                skip unless get_introspection_data 'Regress', 'test_abc_error_quark'
         | 
| 1686 1743 |  | 
| 1687 1744 | 
             
                quark = Regress.test_abc_error_quark
         | 
| 1688 | 
            -
                GLib.quark_to_string(quark).must_equal  | 
| 1745 | 
            +
                GLib.quark_to_string(quark).must_equal 'regress-test-abc-error'
         | 
| 1689 1746 | 
             
              end
         | 
| 1690 1747 |  | 
| 1691 | 
            -
              it  | 
| 1748 | 
            +
              it 'has a working function #test_array_callback' do
         | 
| 1692 1749 | 
             
                a = nil
         | 
| 1693 1750 | 
             
                b = nil
         | 
| 1694 1751 | 
             
                c = 95
         | 
| @@ -1703,10 +1760,10 @@ describe Regress do | |
| 1703 1760 |  | 
| 1704 1761 | 
             
                result.must_equal 2 * c
         | 
| 1705 1762 | 
             
                a.to_a.must_equal [-1, 0, 1, 2]
         | 
| 1706 | 
            -
                b.to_a.must_equal  | 
| 1763 | 
            +
                b.to_a.must_equal %w(one two three)
         | 
| 1707 1764 | 
             
              end
         | 
| 1708 1765 |  | 
| 1709 | 
            -
              it  | 
| 1766 | 
            +
              it 'has a working function #test_array_fixed_out_objects' do
         | 
| 1710 1767 | 
             
                result = Regress.test_array_fixed_out_objects
         | 
| 1711 1768 | 
             
                gtype = Regress::TestObj.get_gtype
         | 
| 1712 1769 |  | 
| @@ -1718,82 +1775,92 @@ describe Regress do | |
| 1718 1775 | 
             
                }
         | 
| 1719 1776 | 
             
              end
         | 
| 1720 1777 |  | 
| 1721 | 
            -
              it  | 
| 1778 | 
            +
              it 'has a working function #test_array_fixed_size_int_in' do
         | 
| 1722 1779 | 
             
                assert_equal 5 + 4 + 3 + 2 + 1, Regress.test_array_fixed_size_int_in([5, 4, 3, 2, 1])
         | 
| 1723 1780 | 
             
              end
         | 
| 1724 1781 |  | 
| 1725 | 
            -
              describe  | 
| 1726 | 
            -
                it  | 
| 1782 | 
            +
              describe '#test_array_fixed_size_int_in' do
         | 
| 1783 | 
            +
                it 'raises an error when called with the wrong number of arguments' do
         | 
| 1727 1784 | 
             
                  assert_raises ArgumentError do
         | 
| 1728 1785 | 
             
                    Regress.test_array_fixed_size_int_in [2]
         | 
| 1729 1786 | 
             
                  end
         | 
| 1730 1787 | 
             
                end
         | 
| 1731 1788 | 
             
              end
         | 
| 1732 1789 |  | 
| 1733 | 
            -
              it  | 
| 1790 | 
            +
              it 'has a working function #test_array_fixed_size_int_out' do
         | 
| 1734 1791 | 
             
                Regress.test_array_fixed_size_int_out.must_be :==, [0, 1, 2, 3, 4]
         | 
| 1735 1792 | 
             
              end
         | 
| 1736 1793 |  | 
| 1737 | 
            -
              it  | 
| 1794 | 
            +
              it 'has a working function #test_array_fixed_size_int_return' do
         | 
| 1738 1795 | 
             
                Regress.test_array_fixed_size_int_return.must_be :==, [0, 1, 2, 3, 4]
         | 
| 1739 1796 | 
             
              end
         | 
| 1740 1797 |  | 
| 1741 | 
            -
              it  | 
| 1798 | 
            +
              it 'has a working function #test_array_gint16_in' do
         | 
| 1742 1799 | 
             
                assert_equal 5 + 4 + 3, Regress.test_array_gint16_in([5, 4, 3])
         | 
| 1743 1800 | 
             
              end
         | 
| 1744 1801 |  | 
| 1745 | 
            -
              it  | 
| 1802 | 
            +
              it 'has a working function #test_array_gint32_in' do
         | 
| 1746 1803 | 
             
                assert_equal 5 + 4 + 3, Regress.test_array_gint32_in([5, 4, 3])
         | 
| 1747 1804 | 
             
              end
         | 
| 1748 1805 |  | 
| 1749 | 
            -
              it  | 
| 1806 | 
            +
              it 'has a working function #test_array_gint64_in' do
         | 
| 1750 1807 | 
             
                assert_equal 5 + 4 + 3, Regress.test_array_gint64_in([5, 4, 3])
         | 
| 1751 1808 | 
             
              end
         | 
| 1752 1809 |  | 
| 1753 | 
            -
              it  | 
| 1810 | 
            +
              it 'has a working function #test_array_gint8_in' do
         | 
| 1754 1811 | 
             
                assert_equal 5 + 4 + 3, Regress.test_array_gint8_in([5, 4, 3])
         | 
| 1755 1812 | 
             
              end
         | 
| 1756 1813 |  | 
| 1757 | 
            -
              it  | 
| 1758 | 
            -
                t1 = GObject.type_from_name  | 
| 1759 | 
            -
                t2 = GObject.type_from_name  | 
| 1760 | 
            -
                assert_equal  | 
| 1814 | 
            +
              it 'has a working function #test_array_gtype_in' do
         | 
| 1815 | 
            +
                t1 = GObject.type_from_name 'gboolean'
         | 
| 1816 | 
            +
                t2 = GObject.type_from_name 'gint64'
         | 
| 1817 | 
            +
                assert_equal '[gboolean,gint64,]', Regress.test_array_gtype_in([t1, t2])
         | 
| 1818 | 
            +
              end
         | 
| 1819 | 
            +
             | 
| 1820 | 
            +
              it 'has a working function #test_array_inout_callback' do
         | 
| 1821 | 
            +
                skip unless get_introspection_data 'Regress', 'test_array_inout_callback'
         | 
| 1822 | 
            +
                Regress.test_array_inout_callback proc { |ints|
         | 
| 1823 | 
            +
                  arr = ints.to_a
         | 
| 1824 | 
            +
                  arr.shift
         | 
| 1825 | 
            +
                  arr
         | 
| 1826 | 
            +
                }
         | 
| 1827 | 
            +
                pass
         | 
| 1761 1828 | 
             
              end
         | 
| 1762 1829 |  | 
| 1763 | 
            -
              it  | 
| 1830 | 
            +
              it 'has a working function #test_array_int_full_out' do
         | 
| 1764 1831 | 
             
                Regress.test_array_int_full_out.must_be :==, [0, 1, 2, 3, 4]
         | 
| 1765 1832 | 
             
              end
         | 
| 1766 1833 |  | 
| 1767 | 
            -
              it  | 
| 1834 | 
            +
              it 'has a working function #test_array_int_in' do
         | 
| 1768 1835 | 
             
                assert_equal 5 + 4 + 3, Regress.test_array_int_in([5, 4, 3])
         | 
| 1769 1836 | 
             
              end
         | 
| 1770 1837 |  | 
| 1771 | 
            -
              it  | 
| 1838 | 
            +
              it 'has a working function #test_array_int_inout' do
         | 
| 1772 1839 | 
             
                Regress.test_array_int_inout([5, 2, 3]).must_be :==, [3, 4]
         | 
| 1773 1840 | 
             
              end
         | 
| 1774 1841 |  | 
| 1775 | 
            -
              it  | 
| 1842 | 
            +
              it 'has a working function #test_array_int_none_out' do
         | 
| 1776 1843 | 
             
                Regress.test_array_int_none_out.must_be :==, [1, 2, 3, 4, 5]
         | 
| 1777 1844 | 
             
              end
         | 
| 1778 1845 |  | 
| 1779 | 
            -
              it  | 
| 1846 | 
            +
              it 'has a working function #test_array_int_null_in' do
         | 
| 1780 1847 | 
             
                Regress.test_array_int_null_in nil
         | 
| 1781 1848 | 
             
                pass
         | 
| 1782 1849 | 
             
              end
         | 
| 1783 1850 |  | 
| 1784 | 
            -
              it  | 
| 1851 | 
            +
              it 'has a working function #test_array_int_null_out' do
         | 
| 1785 1852 | 
             
                assert_equal nil, Regress.test_array_int_null_out
         | 
| 1786 1853 | 
             
              end
         | 
| 1787 1854 |  | 
| 1788 | 
            -
              it  | 
| 1855 | 
            +
              it 'has a working function #test_array_int_out' do
         | 
| 1789 1856 | 
             
                Regress.test_array_int_out.must_be :==, [0, 1, 2, 3, 4]
         | 
| 1790 1857 | 
             
              end
         | 
| 1791 1858 |  | 
| 1792 | 
            -
              it  | 
| 1859 | 
            +
              it 'has a working function #test_async_ready_callback' do
         | 
| 1793 1860 | 
             
                main_loop = GLib::MainLoop.new nil, false
         | 
| 1794 1861 |  | 
| 1795 1862 | 
             
                a = 1
         | 
| 1796 | 
            -
                Regress.test_async_ready_callback  | 
| 1863 | 
            +
                Regress.test_async_ready_callback proc {
         | 
| 1797 1864 | 
             
                  main_loop.quit
         | 
| 1798 1865 | 
             
                  a = 2
         | 
| 1799 1866 | 
             
                }
         | 
| @@ -1803,57 +1870,70 @@ describe Regress do | |
| 1803 1870 | 
             
                assert_equal 2, a
         | 
| 1804 1871 | 
             
              end
         | 
| 1805 1872 |  | 
| 1806 | 
            -
              it  | 
| 1873 | 
            +
              it 'has a working function #test_boolean' do
         | 
| 1807 1874 | 
             
                assert_equal false, Regress.test_boolean(false)
         | 
| 1808 1875 | 
             
                assert_equal true, Regress.test_boolean(true)
         | 
| 1809 1876 | 
             
              end
         | 
| 1810 1877 |  | 
| 1811 | 
            -
              it  | 
| 1878 | 
            +
              it 'has a working function #test_boolean_false' do
         | 
| 1812 1879 | 
             
                assert_equal false, Regress.test_boolean_false(false)
         | 
| 1813 1880 | 
             
              end
         | 
| 1814 1881 |  | 
| 1815 | 
            -
              it  | 
| 1882 | 
            +
              it 'has a working function #test_boolean_true' do
         | 
| 1816 1883 | 
             
                assert_equal true, Regress.test_boolean_true(true)
         | 
| 1817 1884 | 
             
              end
         | 
| 1818 1885 |  | 
| 1819 | 
            -
              it  | 
| 1886 | 
            +
              it 'has a working function #test_boxeds_not_a_method' do
         | 
| 1887 | 
            +
                skip unless get_introspection_data 'Regress', 'test_boxeds_not_a_method'
         | 
| 1888 | 
            +
                boxed = Regress::TestBoxed.new_alternative_constructor1 123
         | 
| 1889 | 
            +
                Regress.test_boxeds_not_a_method boxed
         | 
| 1890 | 
            +
                pass
         | 
| 1891 | 
            +
              end
         | 
| 1892 | 
            +
             | 
| 1893 | 
            +
              it 'has a working function #test_boxeds_not_a_static' do
         | 
| 1894 | 
            +
                skip unless get_introspection_data 'Regress', 'test_boxeds_not_a_static'
         | 
| 1895 | 
            +
                Regress.test_boxeds_not_a_static
         | 
| 1896 | 
            +
                pass
         | 
| 1897 | 
            +
              end
         | 
| 1898 | 
            +
             | 
| 1899 | 
            +
              it 'has a working function #test_cairo_context_full_return' do
         | 
| 1820 1900 | 
             
                ct = Regress.test_cairo_context_full_return
         | 
| 1821 1901 | 
             
                assert_instance_of Cairo::Context, ct
         | 
| 1822 1902 | 
             
              end
         | 
| 1823 1903 |  | 
| 1824 | 
            -
              it  | 
| 1904 | 
            +
              it 'has a working function #test_cairo_context_none_in' do
         | 
| 1825 1905 | 
             
                ct = Regress.test_cairo_context_full_return
         | 
| 1826 1906 | 
             
                Regress.test_cairo_context_none_in ct
         | 
| 1827 1907 | 
             
              end
         | 
| 1828 1908 |  | 
| 1829 | 
            -
              it  | 
| 1909 | 
            +
              it 'has a working function #test_cairo_surface_full_out' do
         | 
| 1830 1910 | 
             
                cs = Regress.test_cairo_surface_full_out
         | 
| 1831 1911 | 
             
                assert_instance_of Cairo::Surface, cs
         | 
| 1832 1912 | 
             
              end
         | 
| 1833 1913 |  | 
| 1834 | 
            -
              it  | 
| 1914 | 
            +
              it 'has a working function #test_cairo_surface_full_return' do
         | 
| 1835 1915 | 
             
                cs = Regress.test_cairo_surface_full_return
         | 
| 1836 1916 | 
             
                assert_instance_of Cairo::Surface, cs
         | 
| 1837 1917 | 
             
              end
         | 
| 1838 1918 |  | 
| 1839 | 
            -
              it  | 
| 1919 | 
            +
              it 'has a working function #test_cairo_surface_none_in' do
         | 
| 1840 1920 | 
             
                cs = Regress.test_cairo_surface_full_return
         | 
| 1841 1921 | 
             
                Regress.test_cairo_surface_none_in cs
         | 
| 1842 1922 | 
             
              end
         | 
| 1843 1923 |  | 
| 1844 | 
            -
              it  | 
| 1924 | 
            +
              it 'has a working function #test_cairo_surface_none_return' do
         | 
| 1845 1925 | 
             
                cs = Regress.test_cairo_surface_none_return
         | 
| 1846 1926 | 
             
                assert_instance_of Cairo::Surface, cs
         | 
| 1847 1927 | 
             
              end
         | 
| 1848 1928 |  | 
| 1849 | 
            -
              it  | 
| 1850 | 
            -
                result = Regress.test_callback  | 
| 1929 | 
            +
              it 'has a working function #test_callback' do
         | 
| 1930 | 
            +
                result = Regress.test_callback proc { 5 }
         | 
| 1851 1931 | 
             
                assert_equal 5, result
         | 
| 1852 1932 | 
             
              end
         | 
| 1853 1933 |  | 
| 1854 | 
            -
              it  | 
| 1934 | 
            +
              it 'has a working function #test_callback_async' do
         | 
| 1855 1935 | 
             
                a = 1
         | 
| 1856 | 
            -
                Regress.test_callback_async  | 
| 1936 | 
            +
                Regress.test_callback_async proc {|b|
         | 
| 1857 1937 | 
             
                  a = 2
         | 
| 1858 1938 | 
             
                  b
         | 
| 1859 1939 | 
             
                }, 44
         | 
| @@ -1862,12 +1942,12 @@ describe Regress do | |
| 1862 1942 | 
             
                assert_equal 2, a
         | 
| 1863 1943 | 
             
              end
         | 
| 1864 1944 |  | 
| 1865 | 
            -
              it  | 
| 1945 | 
            +
              it 'has a working function #test_callback_destroy_notify' do
         | 
| 1866 1946 | 
             
                a = 1
         | 
| 1867 | 
            -
                r1 = Regress.test_callback_destroy_notify  | 
| 1947 | 
            +
                r1 = Regress.test_callback_destroy_notify proc {|b|
         | 
| 1868 1948 | 
             
                  a = 2
         | 
| 1869 1949 | 
             
                  b
         | 
| 1870 | 
            -
                }, 42,  | 
| 1950 | 
            +
                }, 42, proc { a = 3 }
         | 
| 1871 1951 | 
             
                assert_equal 2, a
         | 
| 1872 1952 | 
             
                assert_equal 42, r1
         | 
| 1873 1953 | 
             
                r2 = Regress.test_callback_thaw_notifications
         | 
| @@ -1875,20 +1955,20 @@ describe Regress do | |
| 1875 1955 | 
             
                assert_equal 42, r2
         | 
| 1876 1956 | 
             
              end
         | 
| 1877 1957 |  | 
| 1878 | 
            -
              it  | 
| 1958 | 
            +
              it 'has a working function #test_callback_destroy_notify_no_user_data' do
         | 
| 1879 1959 | 
             
                skip unless get_introspection_data 'Regress', 'test_callback_destroy_notify_no_user_data'
         | 
| 1880 1960 |  | 
| 1881 1961 | 
             
                callback_times_called = 0
         | 
| 1882 1962 | 
             
                notify_times_called = 0
         | 
| 1883 1963 | 
             
                b = :not_nil
         | 
| 1884 1964 |  | 
| 1885 | 
            -
                callback =  | 
| 1965 | 
            +
                callback = proc {|user_data|
         | 
| 1886 1966 | 
             
                  callback_times_called += 1
         | 
| 1887 1967 | 
             
                  b = user_data
         | 
| 1888 1968 | 
             
                  callback_times_called * 5
         | 
| 1889 1969 | 
             
                }
         | 
| 1890 1970 |  | 
| 1891 | 
            -
                notify =  | 
| 1971 | 
            +
                notify = proc { notify_times_called += 1 }
         | 
| 1892 1972 |  | 
| 1893 1973 | 
             
                result = Regress.test_callback_destroy_notify_no_user_data callback, notify
         | 
| 1894 1974 |  | 
| @@ -1905,39 +1985,39 @@ describe Regress do | |
| 1905 1985 | 
             
                b.must_be_nil
         | 
| 1906 1986 | 
             
              end
         | 
| 1907 1987 |  | 
| 1908 | 
            -
              it  | 
| 1988 | 
            +
              it 'has a working function #test_callback_thaw_async' do
         | 
| 1909 1989 | 
             
                invoked = []
         | 
| 1910 | 
            -
                Regress.test_callback_async  | 
| 1911 | 
            -
                Regress.test_callback_async  | 
| 1912 | 
            -
                Regress.test_callback_async  | 
| 1990 | 
            +
                Regress.test_callback_async proc { invoked << 1; 1 }, nil
         | 
| 1991 | 
            +
                Regress.test_callback_async proc { invoked << 2; 2 }, nil
         | 
| 1992 | 
            +
                Regress.test_callback_async proc { invoked << 3; 3 }, nil
         | 
| 1913 1993 | 
             
                result = Regress.test_callback_thaw_async
         | 
| 1914 1994 | 
             
                invoked.must_equal [3, 2, 1]
         | 
| 1915 1995 | 
             
                result.must_equal 1
         | 
| 1916 1996 | 
             
              end
         | 
| 1917 1997 |  | 
| 1918 | 
            -
              it  | 
| 1998 | 
            +
              it 'has a working function #test_callback_thaw_notifications' do
         | 
| 1919 1999 | 
             
                invoked = false
         | 
| 1920 | 
            -
                Regress.test_callback_destroy_notify  | 
| 1921 | 
            -
                Regress.test_callback_destroy_notify  | 
| 2000 | 
            +
                Regress.test_callback_destroy_notify proc { 42 }, nil, nil
         | 
| 2001 | 
            +
                Regress.test_callback_destroy_notify proc { 24 }, nil, proc { invoked = true }
         | 
| 1922 2002 | 
             
                result = Regress.test_callback_thaw_notifications
         | 
| 1923 2003 | 
             
                result.must_equal 66
         | 
| 1924 2004 | 
             
                invoked.must_equal true
         | 
| 1925 2005 | 
             
              end
         | 
| 1926 2006 |  | 
| 1927 | 
            -
              it  | 
| 1928 | 
            -
                a =  | 
| 1929 | 
            -
                result = Regress.test_callback_user_data  | 
| 2007 | 
            +
              it 'has a working function #test_callback_user_data' do
         | 
| 2008 | 
            +
                a = 'old-value'
         | 
| 2009 | 
            +
                result = Regress.test_callback_user_data proc {|u|
         | 
| 1930 2010 | 
             
                  a = u
         | 
| 1931 2011 | 
             
                  5
         | 
| 1932 | 
            -
                },  | 
| 1933 | 
            -
                a.must_equal  | 
| 2012 | 
            +
                }, 'new-value'
         | 
| 2013 | 
            +
                a.must_equal 'new-value'
         | 
| 1934 2014 | 
             
                result.must_equal 5
         | 
| 1935 2015 | 
             
              end
         | 
| 1936 2016 |  | 
| 1937 | 
            -
              describe  | 
| 1938 | 
            -
                it  | 
| 2017 | 
            +
              describe 'the #test_callback_user_data function' do
         | 
| 2018 | 
            +
                it 'handles boolean user_data' do
         | 
| 1939 2019 | 
             
                  a = false
         | 
| 1940 | 
            -
                  Regress.test_callback_user_data  | 
| 2020 | 
            +
                  Regress.test_callback_user_data proc {|u|
         | 
| 1941 2021 | 
             
                    a = u
         | 
| 1942 2022 | 
             
                    5
         | 
| 1943 2023 | 
             
                  }, true
         | 
| @@ -1945,28 +2025,28 @@ describe Regress do | |
| 1945 2025 | 
             
                end
         | 
| 1946 2026 | 
             
              end
         | 
| 1947 2027 |  | 
| 1948 | 
            -
              it  | 
| 2028 | 
            +
              it 'has a working function #test_closure' do
         | 
| 1949 2029 | 
             
                c = GObject::RubyClosure.new { 5235 }
         | 
| 1950 2030 | 
             
                r = Regress.test_closure c
         | 
| 1951 2031 | 
             
                assert_equal 5235, r
         | 
| 1952 2032 | 
             
              end
         | 
| 1953 2033 |  | 
| 1954 | 
            -
              it  | 
| 2034 | 
            +
              it 'has a working function #test_closure_one_arg' do
         | 
| 1955 2035 | 
             
                c = GObject::RubyClosure.new { |a| a * 2 }
         | 
| 1956 2036 | 
             
                r = Regress.test_closure_one_arg c, 2
         | 
| 1957 2037 | 
             
                assert_equal 4, r
         | 
| 1958 2038 | 
             
              end
         | 
| 1959 2039 |  | 
| 1960 | 
            -
              it  | 
| 1961 | 
            -
                arg = GLib::Variant.new_string  | 
| 2040 | 
            +
              it 'has a working function #test_closure_variant' do
         | 
| 2041 | 
            +
                arg = GLib::Variant.new_string 'foo'
         | 
| 1962 2042 |  | 
| 1963 2043 | 
             
                # TODO: Convert proc to RubyClosure automatically
         | 
| 1964 2044 | 
             
                closure = GObject::RubyClosure.new do |variant|
         | 
| 1965 2045 | 
             
                  str = variant.get_string
         | 
| 1966 | 
            -
                  if str ==  | 
| 2046 | 
            +
                  if str == 'foo'
         | 
| 1967 2047 | 
             
                    GLib::Variant.new_int32 40
         | 
| 1968 2048 | 
             
                  else
         | 
| 1969 | 
            -
                    GLib::Variant.new_string  | 
| 2049 | 
            +
                    GLib::Variant.new_string 'bar'
         | 
| 1970 2050 | 
             
                  end
         | 
| 1971 2051 | 
             
                end
         | 
| 1972 2052 |  | 
| @@ -1975,7 +2055,7 @@ describe Regress do | |
| 1975 2055 | 
             
                result.get_int32.must_equal 40
         | 
| 1976 2056 | 
             
              end
         | 
| 1977 2057 |  | 
| 1978 | 
            -
              it  | 
| 2058 | 
            +
              it 'has a working function #test_date_in_gvalue' do
         | 
| 1979 2059 | 
             
                r = Regress.test_date_in_gvalue
         | 
| 1980 2060 | 
             
                date = r.get_value
         | 
| 1981 2061 | 
             
                skip unless date.respond_to? :get_year
         | 
| @@ -1983,329 +2063,329 @@ describe Regress do | |
| 1983 2063 | 
             
                  [date.get_year, date.get_month, date.get_day]
         | 
| 1984 2064 | 
             
              end
         | 
| 1985 2065 |  | 
| 1986 | 
            -
              it  | 
| 2066 | 
            +
              it 'has a working function #test_def_error_quark' do
         | 
| 1987 2067 | 
             
                skip unless get_introspection_data 'Regress', 'test_def_error_quark'
         | 
| 1988 2068 | 
             
                quark = Regress.test_def_error_quark
         | 
| 1989 | 
            -
                GLib.quark_to_string(quark).must_equal  | 
| 2069 | 
            +
                GLib.quark_to_string(quark).must_equal 'regress-test-def-error'
         | 
| 1990 2070 | 
             
              end
         | 
| 1991 2071 |  | 
| 1992 | 
            -
              it  | 
| 2072 | 
            +
              it 'has a working function #test_double' do
         | 
| 1993 2073 | 
             
                r = Regress.test_double 5435.32
         | 
| 1994 2074 | 
             
                assert_equal 5435.32, r
         | 
| 1995 2075 | 
             
              end
         | 
| 1996 2076 |  | 
| 1997 | 
            -
              it  | 
| 2077 | 
            +
              it 'has a working function #test_enum_param' do
         | 
| 1998 2078 | 
             
                r = Regress.test_enum_param :value3
         | 
| 1999 | 
            -
                assert_equal  | 
| 2079 | 
            +
                assert_equal 'value3', r
         | 
| 2000 2080 | 
             
              end
         | 
| 2001 2081 |  | 
| 2002 | 
            -
              it  | 
| 2082 | 
            +
              it 'has a working function #test_error_quark' do
         | 
| 2003 2083 | 
             
                skip unless get_introspection_data 'Regress', 'test_error_quark'
         | 
| 2004 2084 | 
             
                quark = Regress.test_error_quark
         | 
| 2005 | 
            -
                GLib.quark_to_string(quark).must_equal  | 
| 2085 | 
            +
                GLib.quark_to_string(quark).must_equal 'regress-test-error'
         | 
| 2006 2086 | 
             
              end
         | 
| 2007 2087 |  | 
| 2008 | 
            -
              it  | 
| 2088 | 
            +
              it 'has a working function #test_filename_return' do
         | 
| 2009 2089 | 
             
                arr = Regress.test_filename_return
         | 
| 2010 | 
            -
                arr.must_be :==, [ | 
| 2090 | 
            +
                arr.must_be :==, ['åäö', '/etc/fstab']
         | 
| 2011 2091 | 
             
              end
         | 
| 2012 2092 |  | 
| 2013 | 
            -
              it  | 
| 2093 | 
            +
              it 'has a working function #test_float' do
         | 
| 2014 2094 | 
             
                r = Regress.test_float 5435.32
         | 
| 2015 2095 | 
             
                assert_in_delta 5435.32, r, 0.001
         | 
| 2016 2096 | 
             
              end
         | 
| 2017 2097 |  | 
| 2018 | 
            -
              it  | 
| 2098 | 
            +
              it 'has a working function #test_garray_container_return' do
         | 
| 2019 2099 | 
             
                arr = Regress.test_garray_container_return
         | 
| 2020 2100 | 
             
                arr.must_be_instance_of GLib::PtrArray
         | 
| 2021 2101 | 
             
                arr.len.must_equal 1
         | 
| 2022 2102 |  | 
| 2023 2103 | 
             
                ptr = arr.pdata
         | 
| 2024 2104 | 
             
                ptr2 = ptr.read_pointer
         | 
| 2025 | 
            -
                ptr2.read_string.must_be :==,  | 
| 2105 | 
            +
                ptr2.read_string.must_be :==, 'regress'
         | 
| 2026 2106 | 
             
              end
         | 
| 2027 2107 |  | 
| 2028 | 
            -
              it  | 
| 2108 | 
            +
              it 'has a working function #test_garray_full_return' do
         | 
| 2029 2109 | 
             
                result = Regress.test_garray_full_return
         | 
| 2030 | 
            -
                result.to_a.must_equal [ | 
| 2110 | 
            +
                result.to_a.must_equal ['regress']
         | 
| 2031 2111 | 
             
              end
         | 
| 2032 2112 |  | 
| 2033 | 
            -
              it  | 
| 2113 | 
            +
              it 'has a working function #test_gerror_callback' do
         | 
| 2034 2114 | 
             
                result = nil
         | 
| 2035 | 
            -
                Regress.test_gerror_callback  | 
| 2036 | 
            -
                result.must_equal  | 
| 2115 | 
            +
                Regress.test_gerror_callback proc { |err| result = err.message }
         | 
| 2116 | 
            +
                result.must_equal 'regression test error'
         | 
| 2037 2117 | 
             
              end
         | 
| 2038 2118 |  | 
| 2039 | 
            -
              it  | 
| 2119 | 
            +
              it 'has a working function #test_ghash_container_return' do
         | 
| 2040 2120 | 
             
                hash = Regress.test_ghash_container_return
         | 
| 2041 2121 | 
             
                hash.must_be_instance_of GLib::HashTable
         | 
| 2042 | 
            -
                hash.to_hash.must_equal( | 
| 2043 | 
            -
                                         | 
| 2044 | 
            -
                                         | 
| 2122 | 
            +
                hash.to_hash.must_equal('foo' => 'bar',
         | 
| 2123 | 
            +
                                        'baz' => 'bat',
         | 
| 2124 | 
            +
                                        'qux' => 'quux')
         | 
| 2045 2125 | 
             
              end
         | 
| 2046 2126 |  | 
| 2047 | 
            -
              it  | 
| 2127 | 
            +
              it 'has a working function #test_ghash_everything_return' do
         | 
| 2048 2128 | 
             
                ghash = Regress.test_ghash_everything_return
         | 
| 2049 | 
            -
                ghash.to_hash.must_be :==,  | 
| 2050 | 
            -
             | 
| 2051 | 
            -
             | 
| 2129 | 
            +
                ghash.to_hash.must_be :==, 'foo' => 'bar',
         | 
| 2130 | 
            +
                                           'baz' => 'bat',
         | 
| 2131 | 
            +
                                           'qux' => 'quux'
         | 
| 2052 2132 | 
             
              end
         | 
| 2053 2133 |  | 
| 2054 | 
            -
              it  | 
| 2134 | 
            +
              it 'has a working function #test_ghash_gvalue_in' do
         | 
| 2055 2135 | 
             
                skip unless get_introspection_data 'Regress', 'test_ghash_gvalue_in'
         | 
| 2056 2136 | 
             
                skip unless get_introspection_data 'Regress', 'test_ghash_gvalue_return'
         | 
| 2057 2137 | 
             
                hash_table = Regress.test_ghash_gvalue_return
         | 
| 2058 2138 | 
             
                Regress.test_ghash_gvalue_in hash_table
         | 
| 2059 2139 | 
             
              end
         | 
| 2060 2140 |  | 
| 2061 | 
            -
              it  | 
| 2141 | 
            +
              it 'has a working function #test_ghash_gvalue_return' do
         | 
| 2062 2142 | 
             
                skip unless get_introspection_data 'Regress', 'test_ghash_gvalue_return'
         | 
| 2063 2143 |  | 
| 2064 2144 | 
             
                result = Regress.test_ghash_gvalue_return
         | 
| 2065 2145 | 
             
                hash = result.to_hash
         | 
| 2066 2146 |  | 
| 2067 | 
            -
                has_enum_and_flag_keys = hash. | 
| 2147 | 
            +
                has_enum_and_flag_keys = hash.key?('flags')
         | 
| 2068 2148 |  | 
| 2069 | 
            -
                hash[ | 
| 2070 | 
            -
                hash[ | 
| 2071 | 
            -
                hash[ | 
| 2072 | 
            -
                hash[ | 
| 2149 | 
            +
                hash['integer'].get_value.must_equal 12
         | 
| 2150 | 
            +
                hash['boolean'].get_value.must_equal true
         | 
| 2151 | 
            +
                hash['string'].get_value.must_equal 'some text'
         | 
| 2152 | 
            +
                hash['strings'].get_value.to_a.must_equal %w(first second third)
         | 
| 2073 2153 |  | 
| 2074 2154 | 
             
                if has_enum_and_flag_keys
         | 
| 2075 | 
            -
                  hash[ | 
| 2076 | 
            -
                  hash[ | 
| 2155 | 
            +
                  hash['flags'].get_value.must_equal Regress::TestFlags[:flag1] | Regress::TestFlags[:flag3]
         | 
| 2156 | 
            +
                  hash['enum'].get_value.must_equal :value2
         | 
| 2077 2157 | 
             
                end
         | 
| 2078 2158 |  | 
| 2079 2159 | 
             
                expected_keys = if has_enum_and_flag_keys
         | 
| 2080 | 
            -
                                   | 
| 2160 | 
            +
                                  %w(boolean enum flags integer string strings)
         | 
| 2081 2161 | 
             
                                else
         | 
| 2082 | 
            -
                                   | 
| 2162 | 
            +
                                  %w(boolean integer string strings)
         | 
| 2083 2163 | 
             
                                end
         | 
| 2084 2164 |  | 
| 2085 2165 | 
             
                hash.keys.sort.must_equal expected_keys
         | 
| 2086 2166 | 
             
              end
         | 
| 2087 2167 |  | 
| 2088 | 
            -
              it  | 
| 2168 | 
            +
              it 'has a working function #test_ghash_nested_everything_return' do
         | 
| 2089 2169 | 
             
                result = Regress.test_ghash_nested_everything_return
         | 
| 2090 2170 | 
             
                hash = result.to_hash
         | 
| 2091 | 
            -
                hash.keys.must_equal [ | 
| 2092 | 
            -
                hash[ | 
| 2093 | 
            -
             | 
| 2094 | 
            -
             | 
| 2171 | 
            +
                hash.keys.must_equal ['wibble']
         | 
| 2172 | 
            +
                hash['wibble'].to_hash.must_equal('foo' => 'bar',
         | 
| 2173 | 
            +
                                                  'baz' => 'bat',
         | 
| 2174 | 
            +
                                                  'qux' => 'quux')
         | 
| 2095 2175 | 
             
              end
         | 
| 2096 2176 |  | 
| 2097 | 
            -
              it  | 
| 2177 | 
            +
              it 'has a working function #test_ghash_nested_everything_return2' do
         | 
| 2098 2178 | 
             
                result = Regress.test_ghash_nested_everything_return2
         | 
| 2099 2179 | 
             
                hash = result.to_hash
         | 
| 2100 | 
            -
                hash.keys.must_equal [ | 
| 2101 | 
            -
                hash[ | 
| 2102 | 
            -
             | 
| 2103 | 
            -
             | 
| 2180 | 
            +
                hash.keys.must_equal ['wibble']
         | 
| 2181 | 
            +
                hash['wibble'].to_hash.must_equal('foo' => 'bar',
         | 
| 2182 | 
            +
                                                  'baz' => 'bat',
         | 
| 2183 | 
            +
                                                  'qux' => 'quux')
         | 
| 2104 2184 | 
             
              end
         | 
| 2105 2185 |  | 
| 2106 | 
            -
              it  | 
| 2107 | 
            -
                Regress.test_ghash_nothing_in( | 
| 2108 | 
            -
             | 
| 2109 | 
            -
             | 
| 2186 | 
            +
              it 'has a working function #test_ghash_nothing_in' do
         | 
| 2187 | 
            +
                Regress.test_ghash_nothing_in('foo' => 'bar',
         | 
| 2188 | 
            +
                                              'baz' => 'bat',
         | 
| 2189 | 
            +
                                              'qux' => 'quux')
         | 
| 2110 2190 | 
             
              end
         | 
| 2111 2191 |  | 
| 2112 | 
            -
              it  | 
| 2113 | 
            -
                Regress.test_ghash_nothing_in2( | 
| 2114 | 
            -
             | 
| 2115 | 
            -
             | 
| 2192 | 
            +
              it 'has a working function #test_ghash_nothing_in2' do
         | 
| 2193 | 
            +
                Regress.test_ghash_nothing_in2('foo' => 'bar',
         | 
| 2194 | 
            +
                                               'baz' => 'bat',
         | 
| 2195 | 
            +
                                               'qux' => 'quux')
         | 
| 2116 2196 | 
             
              end
         | 
| 2117 2197 |  | 
| 2118 | 
            -
              it  | 
| 2198 | 
            +
              it 'has a working function #test_ghash_nothing_return' do
         | 
| 2119 2199 | 
             
                ghash = Regress.test_ghash_nothing_return
         | 
| 2120 | 
            -
                ghash.to_hash.must_be :==,  | 
| 2121 | 
            -
             | 
| 2122 | 
            -
             | 
| 2200 | 
            +
                ghash.to_hash.must_be :==, 'foo' => 'bar',
         | 
| 2201 | 
            +
                                           'baz' => 'bat',
         | 
| 2202 | 
            +
                                           'qux' => 'quux'
         | 
| 2123 2203 | 
             
              end
         | 
| 2124 2204 |  | 
| 2125 | 
            -
              it  | 
| 2205 | 
            +
              it 'has a working function #test_ghash_nothing_return2' do
         | 
| 2126 2206 | 
             
                ghash = Regress.test_ghash_nothing_return2
         | 
| 2127 | 
            -
                ghash.to_hash.must_be :==,  | 
| 2128 | 
            -
             | 
| 2129 | 
            -
             | 
| 2207 | 
            +
                ghash.to_hash.must_be :==, 'foo' => 'bar',
         | 
| 2208 | 
            +
                                           'baz' => 'bat',
         | 
| 2209 | 
            +
                                           'qux' => 'quux'
         | 
| 2130 2210 | 
             
              end
         | 
| 2131 2211 |  | 
| 2132 | 
            -
              it  | 
| 2212 | 
            +
              it 'has a working function #test_ghash_null_in' do
         | 
| 2133 2213 | 
             
                Regress.test_ghash_null_in(nil)
         | 
| 2134 2214 | 
             
              end
         | 
| 2135 2215 |  | 
| 2136 | 
            -
              it  | 
| 2216 | 
            +
              it 'has a working function #test_ghash_null_out' do
         | 
| 2137 2217 | 
             
                ghash = Regress.test_ghash_null_out
         | 
| 2138 2218 | 
             
                ghash.must_be_nil
         | 
| 2139 2219 | 
             
              end
         | 
| 2140 2220 |  | 
| 2141 | 
            -
              it  | 
| 2221 | 
            +
              it 'has a working function #test_ghash_null_return' do
         | 
| 2142 2222 | 
             
                ghash = Regress.test_ghash_null_return
         | 
| 2143 2223 | 
             
                ghash.must_be_nil
         | 
| 2144 2224 | 
             
              end
         | 
| 2145 2225 |  | 
| 2146 | 
            -
              it  | 
| 2226 | 
            +
              it 'has a working function #test_glist_container_return' do
         | 
| 2147 2227 | 
             
                list = Regress.test_glist_container_return
         | 
| 2148 2228 | 
             
                assert_instance_of GLib::List, list
         | 
| 2149 | 
            -
                list.must_be :==,  | 
| 2229 | 
            +
                list.must_be :==, %w(1 2 3)
         | 
| 2150 2230 | 
             
              end
         | 
| 2151 2231 |  | 
| 2152 | 
            -
              it  | 
| 2232 | 
            +
              it 'has a working function #test_glist_everything_return' do
         | 
| 2153 2233 | 
             
                list = Regress.test_glist_everything_return
         | 
| 2154 | 
            -
                list.must_be :==,  | 
| 2234 | 
            +
                list.must_be :==, %w(1 2 3)
         | 
| 2155 2235 | 
             
              end
         | 
| 2156 2236 |  | 
| 2157 | 
            -
              it  | 
| 2158 | 
            -
                Regress.test_glist_nothing_in  | 
| 2237 | 
            +
              it 'has a working function #test_glist_nothing_in' do
         | 
| 2238 | 
            +
                Regress.test_glist_nothing_in %w(1 2 3)
         | 
| 2159 2239 | 
             
                pass
         | 
| 2160 2240 | 
             
              end
         | 
| 2161 2241 |  | 
| 2162 | 
            -
              it  | 
| 2163 | 
            -
                Regress.test_glist_nothing_in2  | 
| 2242 | 
            +
              it 'has a working function #test_glist_nothing_in2' do
         | 
| 2243 | 
            +
                Regress.test_glist_nothing_in2 %w(1 2 3)
         | 
| 2164 2244 | 
             
                pass
         | 
| 2165 2245 | 
             
              end
         | 
| 2166 2246 |  | 
| 2167 | 
            -
              it  | 
| 2247 | 
            +
              it 'has a working function #test_glist_nothing_return' do
         | 
| 2168 2248 | 
             
                list = Regress.test_glist_nothing_return
         | 
| 2169 | 
            -
                list.must_be :==,  | 
| 2249 | 
            +
                list.must_be :==, %w(1 2 3)
         | 
| 2170 2250 | 
             
              end
         | 
| 2171 2251 |  | 
| 2172 | 
            -
              it  | 
| 2252 | 
            +
              it 'has a working function #test_glist_nothing_return2' do
         | 
| 2173 2253 | 
             
                list = Regress.test_glist_nothing_return2
         | 
| 2174 | 
            -
                list.must_be :==,  | 
| 2254 | 
            +
                list.must_be :==, %w(1 2 3)
         | 
| 2175 2255 | 
             
              end
         | 
| 2176 2256 |  | 
| 2177 | 
            -
              it  | 
| 2257 | 
            +
              it 'has a working function #test_glist_null_in' do
         | 
| 2178 2258 | 
             
                Regress.test_glist_null_in nil
         | 
| 2179 2259 | 
             
                pass
         | 
| 2180 2260 | 
             
              end
         | 
| 2181 2261 |  | 
| 2182 | 
            -
              it  | 
| 2262 | 
            +
              it 'has a working function #test_glist_null_out' do
         | 
| 2183 2263 | 
             
                result = Regress.test_glist_null_out
         | 
| 2184 2264 | 
             
                assert_equal nil, result
         | 
| 2185 2265 | 
             
              end
         | 
| 2186 2266 |  | 
| 2187 | 
            -
              it  | 
| 2267 | 
            +
              it 'has a working function #test_gslist_container_return' do
         | 
| 2188 2268 | 
             
                slist = Regress.test_gslist_container_return
         | 
| 2189 2269 | 
             
                assert_instance_of GLib::SList, slist
         | 
| 2190 | 
            -
                slist.must_be :==,  | 
| 2270 | 
            +
                slist.must_be :==, %w(1 2 3)
         | 
| 2191 2271 | 
             
              end
         | 
| 2192 2272 |  | 
| 2193 | 
            -
              it  | 
| 2273 | 
            +
              it 'has a working function #test_gslist_everything_return' do
         | 
| 2194 2274 | 
             
                slist = Regress.test_gslist_everything_return
         | 
| 2195 | 
            -
                slist.must_be :==,  | 
| 2275 | 
            +
                slist.must_be :==, %w(1 2 3)
         | 
| 2196 2276 | 
             
              end
         | 
| 2197 2277 |  | 
| 2198 | 
            -
              it  | 
| 2199 | 
            -
                Regress.test_gslist_nothing_in  | 
| 2278 | 
            +
              it 'has a working function #test_gslist_nothing_in' do
         | 
| 2279 | 
            +
                Regress.test_gslist_nothing_in %w(1 2 3)
         | 
| 2200 2280 | 
             
                pass
         | 
| 2201 2281 | 
             
              end
         | 
| 2202 2282 |  | 
| 2203 | 
            -
              it  | 
| 2204 | 
            -
                Regress.test_gslist_nothing_in2  | 
| 2283 | 
            +
              it 'has a working function #test_gslist_nothing_in2' do
         | 
| 2284 | 
            +
                Regress.test_gslist_nothing_in2 %w(1 2 3)
         | 
| 2205 2285 | 
             
                pass
         | 
| 2206 2286 | 
             
              end
         | 
| 2207 2287 |  | 
| 2208 | 
            -
              it  | 
| 2288 | 
            +
              it 'has a working function #test_gslist_nothing_return' do
         | 
| 2209 2289 | 
             
                slist = Regress.test_gslist_nothing_return
         | 
| 2210 | 
            -
                slist.must_be :==,  | 
| 2290 | 
            +
                slist.must_be :==, %w(1 2 3)
         | 
| 2211 2291 | 
             
              end
         | 
| 2212 2292 |  | 
| 2213 | 
            -
              it  | 
| 2293 | 
            +
              it 'has a working function #test_gslist_nothing_return2' do
         | 
| 2214 2294 | 
             
                slist = Regress.test_gslist_nothing_return2
         | 
| 2215 | 
            -
                slist.must_be :==,  | 
| 2295 | 
            +
                slist.must_be :==, %w(1 2 3)
         | 
| 2216 2296 | 
             
              end
         | 
| 2217 2297 |  | 
| 2218 | 
            -
              it  | 
| 2298 | 
            +
              it 'has a working function #test_gslist_null_in' do
         | 
| 2219 2299 | 
             
                Regress.test_gslist_null_in nil
         | 
| 2220 2300 | 
             
                pass
         | 
| 2221 2301 | 
             
              end
         | 
| 2222 2302 |  | 
| 2223 | 
            -
              it  | 
| 2303 | 
            +
              it 'has a working function #test_gslist_null_out' do
         | 
| 2224 2304 | 
             
                result = Regress.test_gslist_null_out
         | 
| 2225 2305 | 
             
                assert_equal nil, result
         | 
| 2226 2306 | 
             
              end
         | 
| 2227 2307 |  | 
| 2228 | 
            -
              it  | 
| 2308 | 
            +
              it 'has a working function #test_gtype' do
         | 
| 2229 2309 | 
             
                result = Regress.test_gtype 23
         | 
| 2230 2310 | 
             
                assert_equal 23, result
         | 
| 2231 2311 | 
             
              end
         | 
| 2232 2312 |  | 
| 2233 | 
            -
              it  | 
| 2234 | 
            -
                Regress.test_gvariant_as.get_strv.to_a.must_equal  | 
| 2313 | 
            +
              it 'has a working function #test_gvariant_as' do
         | 
| 2314 | 
            +
                Regress.test_gvariant_as.get_strv.to_a.must_equal %w(one two three)
         | 
| 2235 2315 | 
             
              end
         | 
| 2236 2316 |  | 
| 2237 | 
            -
              it  | 
| 2317 | 
            +
              it 'has a working function #test_gvariant_asv' do
         | 
| 2238 2318 | 
             
                result = Regress.test_gvariant_asv
         | 
| 2239 2319 | 
             
                result.n_children.must_equal 2
         | 
| 2240 | 
            -
                result.lookup_value( | 
| 2241 | 
            -
                result.lookup_value( | 
| 2320 | 
            +
                result.lookup_value('name', nil).get_string.must_equal 'foo'
         | 
| 2321 | 
            +
                result.lookup_value('timeout', nil).get_int32.must_equal 10
         | 
| 2242 2322 | 
             
              end
         | 
| 2243 2323 |  | 
| 2244 | 
            -
              it  | 
| 2324 | 
            +
              it 'has a working function #test_gvariant_i' do
         | 
| 2245 2325 | 
             
                Regress.test_gvariant_i.get_int32.must_equal 1
         | 
| 2246 2326 | 
             
              end
         | 
| 2247 2327 |  | 
| 2248 | 
            -
              it  | 
| 2249 | 
            -
                Regress.test_gvariant_s.get_string.must_equal  | 
| 2328 | 
            +
              it 'has a working function #test_gvariant_s' do
         | 
| 2329 | 
            +
                Regress.test_gvariant_s.get_string.must_equal 'one'
         | 
| 2250 2330 | 
             
              end
         | 
| 2251 2331 |  | 
| 2252 | 
            -
              it  | 
| 2253 | 
            -
                Regress.test_gvariant_v.get_variant.get_string.must_equal  | 
| 2332 | 
            +
              it 'has a working function #test_gvariant_v' do
         | 
| 2333 | 
            +
                Regress.test_gvariant_v.get_variant.get_string.must_equal 'contents'
         | 
| 2254 2334 | 
             
              end
         | 
| 2255 2335 |  | 
| 2256 | 
            -
              it  | 
| 2336 | 
            +
              it 'has a working function #test_hash_table_callback' do
         | 
| 2257 2337 | 
             
                value = nil
         | 
| 2258 | 
            -
                Regress.test_hash_table_callback({ | 
| 2259 | 
            -
                value.to_hash.must_equal( | 
| 2338 | 
            +
                Regress.test_hash_table_callback({ 'foo' => 42 }, proc { |hash| value = hash })
         | 
| 2339 | 
            +
                value.to_hash.must_equal('foo' => 42)
         | 
| 2260 2340 | 
             
              end
         | 
| 2261 2341 |  | 
| 2262 | 
            -
              it  | 
| 2342 | 
            +
              it 'has a working function #test_int' do
         | 
| 2263 2343 | 
             
                result = Regress.test_int 23
         | 
| 2264 2344 | 
             
                assert_equal 23, result
         | 
| 2265 2345 | 
             
              end
         | 
| 2266 2346 |  | 
| 2267 | 
            -
              it  | 
| 2347 | 
            +
              it 'has a working function #test_int16' do
         | 
| 2268 2348 | 
             
                result = Regress.test_int16 23
         | 
| 2269 2349 | 
             
                assert_equal 23, result
         | 
| 2270 2350 | 
             
              end
         | 
| 2271 2351 |  | 
| 2272 | 
            -
              it  | 
| 2352 | 
            +
              it 'has a working function #test_int32' do
         | 
| 2273 2353 | 
             
                result = Regress.test_int32 23
         | 
| 2274 2354 | 
             
                assert_equal 23, result
         | 
| 2275 2355 | 
             
              end
         | 
| 2276 2356 |  | 
| 2277 | 
            -
              it  | 
| 2278 | 
            -
                result = Regress.test_int64  | 
| 2279 | 
            -
                assert_equal  | 
| 2357 | 
            +
              it 'has a working function #test_int64' do
         | 
| 2358 | 
            +
                result = Regress.test_int64 2_300_000_000_000
         | 
| 2359 | 
            +
                assert_equal 2_300_000_000_000, result
         | 
| 2280 2360 | 
             
              end
         | 
| 2281 2361 |  | 
| 2282 | 
            -
              it  | 
| 2362 | 
            +
              it 'has a working function #test_int8' do
         | 
| 2283 2363 | 
             
                result = Regress.test_int8 23
         | 
| 2284 2364 | 
             
                assert_equal 23, result
         | 
| 2285 2365 | 
             
              end
         | 
| 2286 2366 |  | 
| 2287 | 
            -
              it  | 
| 2288 | 
            -
                len = Regress.test_int_out_utf8  | 
| 2367 | 
            +
              it 'has a working function #test_int_out_utf8' do
         | 
| 2368 | 
            +
                len = Regress.test_int_out_utf8 'How long?'
         | 
| 2289 2369 | 
             
                assert_equal 9, len
         | 
| 2290 2370 | 
             
              end
         | 
| 2291 2371 |  | 
| 2292 | 
            -
              it  | 
| 2372 | 
            +
              it 'has a working function #test_int_value_arg' do
         | 
| 2293 2373 | 
             
                gv = GObject::Value.new
         | 
| 2294 | 
            -
                gv.init GObject.type_from_name  | 
| 2374 | 
            +
                gv.init GObject.type_from_name 'gint'
         | 
| 2295 2375 | 
             
                gv.set_int 343
         | 
| 2296 2376 | 
             
                result = Regress.test_int_value_arg gv
         | 
| 2297 2377 | 
             
                assert_equal 343, result
         | 
| 2298 2378 | 
             
              end
         | 
| 2299 2379 |  | 
| 2300 | 
            -
              it  | 
| 2380 | 
            +
              it 'has a working function #test_long' do
         | 
| 2301 2381 | 
             
                long_val = FFI.type_size(:long) == 8 ? 2_300_000_000_000 : 2_000_000_000
         | 
| 2302 2382 | 
             
                result = Regress.test_long long_val
         | 
| 2303 2383 | 
             
                assert_equal long_val, result
         | 
| 2304 2384 | 
             
              end
         | 
| 2305 2385 |  | 
| 2306 | 
            -
              it  | 
| 2386 | 
            +
              it 'has a working function #test_multi_callback' do
         | 
| 2307 2387 | 
             
                a = 1
         | 
| 2308 | 
            -
                result = Regress.test_multi_callback  | 
| 2388 | 
            +
                result = Regress.test_multi_callback proc {
         | 
| 2309 2389 | 
             
                  a += 1
         | 
| 2310 2390 | 
             
                  23
         | 
| 2311 2391 | 
             
                }
         | 
| @@ -2313,221 +2393,221 @@ describe Regress do | |
| 2313 2393 | 
             
                assert_equal 3, a
         | 
| 2314 2394 | 
             
              end
         | 
| 2315 2395 |  | 
| 2316 | 
            -
              it  | 
| 2396 | 
            +
              it 'has a working function #test_multi_double_args' do
         | 
| 2317 2397 | 
             
                one, two = Regress.test_multi_double_args 23.1
         | 
| 2318 2398 | 
             
                assert_equal 2 * 23.1, one
         | 
| 2319 2399 | 
             
                assert_equal 3 * 23.1, two
         | 
| 2320 2400 | 
             
              end
         | 
| 2321 2401 |  | 
| 2322 | 
            -
              it  | 
| 2402 | 
            +
              it 'has a working function #test_multiline_doc_comments' do
         | 
| 2323 2403 | 
             
                Regress.test_multiline_doc_comments.must_be_nil
         | 
| 2324 2404 | 
             
              end
         | 
| 2325 2405 |  | 
| 2326 | 
            -
              it  | 
| 2406 | 
            +
              it 'has a working function #test_nested_parameter' do
         | 
| 2327 2407 | 
             
                Regress.test_nested_parameter(3).must_be_nil
         | 
| 2328 2408 | 
             
              end
         | 
| 2329 2409 |  | 
| 2330 | 
            -
              it  | 
| 2410 | 
            +
              it 'has a working function #test_null_gerror_callback' do
         | 
| 2331 2411 | 
             
                value = nil
         | 
| 2332 | 
            -
                Regress.test_owned_gerror_callback  | 
| 2333 | 
            -
                value.message.must_equal  | 
| 2412 | 
            +
                Regress.test_owned_gerror_callback proc { |err| value = err }
         | 
| 2413 | 
            +
                value.message.must_equal 'regression test owned error'
         | 
| 2334 2414 | 
             
              end
         | 
| 2335 2415 |  | 
| 2336 | 
            -
              it  | 
| 2416 | 
            +
              it 'has a working function #test_owned_gerror_callback' do
         | 
| 2337 2417 | 
             
                value = nil
         | 
| 2338 | 
            -
                Regress.test_owned_gerror_callback  | 
| 2339 | 
            -
                value.message.must_equal  | 
| 2418 | 
            +
                Regress.test_owned_gerror_callback proc { |err| value = err }
         | 
| 2419 | 
            +
                value.message.must_equal 'regression test owned error'
         | 
| 2340 2420 | 
             
              end
         | 
| 2341 2421 |  | 
| 2342 | 
            -
              it  | 
| 2422 | 
            +
              it 'has a working function #test_short' do
         | 
| 2343 2423 | 
             
                result = Regress.test_short 23
         | 
| 2344 2424 | 
             
                assert_equal 23, result
         | 
| 2345 2425 | 
             
              end
         | 
| 2346 2426 |  | 
| 2347 | 
            -
              it  | 
| 2427 | 
            +
              it 'has a working function #test_simple_boxed_a_const_return' do
         | 
| 2348 2428 | 
             
                result = Regress.test_simple_boxed_a_const_return
         | 
| 2349 2429 | 
             
                assert_equal [5, 6, 7.0], [result.some_int, result.some_int8, result.some_double]
         | 
| 2350 2430 | 
             
              end
         | 
| 2351 2431 |  | 
| 2352 | 
            -
              it  | 
| 2432 | 
            +
              it 'has a working function #test_simple_callback' do
         | 
| 2353 2433 | 
             
                a = 0
         | 
| 2354 | 
            -
                Regress.test_simple_callback  | 
| 2434 | 
            +
                Regress.test_simple_callback proc { a = 1 }
         | 
| 2355 2435 | 
             
                assert_equal 1, a
         | 
| 2356 2436 | 
             
              end
         | 
| 2357 2437 |  | 
| 2358 | 
            -
              it  | 
| 2438 | 
            +
              it 'has a working function #test_size' do
         | 
| 2359 2439 | 
             
                assert_equal 2354, Regress.test_size(2354)
         | 
| 2360 2440 | 
             
              end
         | 
| 2361 2441 |  | 
| 2362 | 
            -
              it  | 
| 2442 | 
            +
              it 'has a working function #test_ssize' do
         | 
| 2363 2443 | 
             
                assert_equal(-2_000_000, Regress.test_ssize(-2_000_000))
         | 
| 2364 2444 | 
             
              end
         | 
| 2365 2445 |  | 
| 2366 | 
            -
              it  | 
| 2446 | 
            +
              it 'has a working function #test_struct_a_parse' do
         | 
| 2367 2447 | 
             
                skip unless get_introspection_data 'Regress', 'test_struct_a_parse'
         | 
| 2368 | 
            -
                a = Regress.test_struct_a_parse( | 
| 2448 | 
            +
                a = Regress.test_struct_a_parse('this string is actually ignored')
         | 
| 2369 2449 | 
             
                a.must_be_instance_of Regress::TestStructA
         | 
| 2370 2450 | 
             
                a.some_int.must_equal 23
         | 
| 2371 2451 | 
             
              end
         | 
| 2372 2452 |  | 
| 2373 | 
            -
              it  | 
| 2374 | 
            -
                assert_equal true, Regress.test_strv_in( | 
| 2453 | 
            +
              it 'has a working function #test_strv_in' do
         | 
| 2454 | 
            +
                assert_equal true, Regress.test_strv_in(%w(1 2 3))
         | 
| 2375 2455 | 
             
              end
         | 
| 2376 2456 |  | 
| 2377 | 
            -
              it  | 
| 2457 | 
            +
              it 'has a working function #test_strv_in_gvalue' do
         | 
| 2378 2458 | 
             
                gv = Regress.test_strv_in_gvalue
         | 
| 2379 | 
            -
                gv.get_value.must_be :==,  | 
| 2459 | 
            +
                gv.get_value.must_be :==, %w(one two three)
         | 
| 2380 2460 | 
             
              end
         | 
| 2381 2461 |  | 
| 2382 | 
            -
              it  | 
| 2462 | 
            +
              it 'has a working function #test_strv_out' do
         | 
| 2383 2463 | 
             
                arr = Regress.test_strv_out
         | 
| 2384 | 
            -
                arr.must_be :==,  | 
| 2464 | 
            +
                arr.must_be :==, %w(thanks for all the fish)
         | 
| 2385 2465 | 
             
              end
         | 
| 2386 2466 |  | 
| 2387 | 
            -
              it  | 
| 2467 | 
            +
              it 'has a working function #test_strv_out_c' do
         | 
| 2388 2468 | 
             
                arr = Regress.test_strv_out_c
         | 
| 2389 | 
            -
                arr.must_be :==,  | 
| 2469 | 
            +
                arr.must_be :==, %w(thanks for all the fish)
         | 
| 2390 2470 | 
             
              end
         | 
| 2391 2471 |  | 
| 2392 | 
            -
              it  | 
| 2472 | 
            +
              it 'has a working function #test_strv_out_container' do
         | 
| 2393 2473 | 
             
                arr = Regress.test_strv_out_container
         | 
| 2394 | 
            -
                arr.must_be :==,  | 
| 2474 | 
            +
                arr.must_be :==, %w(1 2 3)
         | 
| 2395 2475 | 
             
              end
         | 
| 2396 2476 |  | 
| 2397 | 
            -
              it  | 
| 2477 | 
            +
              it 'has a working function #test_strv_outarg' do
         | 
| 2398 2478 | 
             
                arr = Regress.test_strv_outarg
         | 
| 2399 | 
            -
                arr.must_be :==,  | 
| 2479 | 
            +
                arr.must_be :==, %w(1 2 3)
         | 
| 2400 2480 | 
             
              end
         | 
| 2401 2481 |  | 
| 2402 | 
            -
              it  | 
| 2482 | 
            +
              it 'has a working function #test_timet' do
         | 
| 2403 2483 | 
             
                # Time rounded to seconds.
         | 
| 2404 2484 | 
             
                t = Time.at(Time.now.to_i)
         | 
| 2405 2485 | 
             
                result = Regress.test_timet(t.to_i)
         | 
| 2406 2486 | 
             
                assert_equal t, Time.at(result)
         | 
| 2407 2487 | 
             
              end
         | 
| 2408 2488 |  | 
| 2409 | 
            -
              it  | 
| 2410 | 
            -
                y, z, q = Regress.test_torture_signature_0 86,  | 
| 2411 | 
            -
                assert_equal [86, 2*86, 3+2], [y, z, q]
         | 
| 2489 | 
            +
              it 'has a working function #test_torture_signature_0' do
         | 
| 2490 | 
            +
                y, z, q = Regress.test_torture_signature_0 86, 'foo', 2
         | 
| 2491 | 
            +
                assert_equal [86, 2 * 86, 3 + 2], [y, z, q]
         | 
| 2412 2492 | 
             
              end
         | 
| 2413 2493 |  | 
| 2414 | 
            -
              it  | 
| 2415 | 
            -
                ret, y, z, q = Regress.test_torture_signature_1(-21,  | 
| 2416 | 
            -
                [ret, y, z, q].must_equal [true, -21, 2 * -21,  | 
| 2494 | 
            +
              it 'has a working function #test_torture_signature_1' do
         | 
| 2495 | 
            +
                ret, y, z, q = Regress.test_torture_signature_1(-21, 'hello', 12)
         | 
| 2496 | 
            +
                [ret, y, z, q].must_equal [true, -21, 2 * -21, 'hello'.length + 12]
         | 
| 2417 2497 |  | 
| 2418 | 
            -
                proc { Regress.test_torture_signature_1(-21,  | 
| 2498 | 
            +
                proc { Regress.test_torture_signature_1(-21, 'hello', 11) }.
         | 
| 2419 2499 | 
             
                  must_raise GirFFI::GLibError
         | 
| 2420 2500 | 
             
              end
         | 
| 2421 2501 |  | 
| 2422 | 
            -
              it  | 
| 2502 | 
            +
              it 'has a working function #test_torture_signature_2' do
         | 
| 2423 2503 | 
             
                a = 1
         | 
| 2424 2504 | 
             
                y, z, q = Regress.test_torture_signature_2 244,
         | 
| 2425 | 
            -
                   | 
| 2426 | 
            -
                   | 
| 2427 | 
            -
                assert_equal [244, 2*244, 6+31], [y, z, q]
         | 
| 2505 | 
            +
                  proc { |u| a = u }, 2, proc { a = 3 },
         | 
| 2506 | 
            +
                  'foofoo', 31
         | 
| 2507 | 
            +
                assert_equal [244, 2 * 244, 6 + 31], [y, z, q]
         | 
| 2428 2508 | 
             
                assert_equal 3, a
         | 
| 2429 2509 | 
             
              end
         | 
| 2430 2510 |  | 
| 2431 | 
            -
              it  | 
| 2511 | 
            +
              it 'has a working function #test_uint' do
         | 
| 2432 2512 | 
             
                assert_equal 31, Regress.test_uint(31)
         | 
| 2433 2513 | 
             
              end
         | 
| 2434 2514 |  | 
| 2435 | 
            -
              it  | 
| 2515 | 
            +
              it 'has a working function #test_uint16' do
         | 
| 2436 2516 | 
             
                assert_equal 31, Regress.test_uint16(31)
         | 
| 2437 2517 | 
             
              end
         | 
| 2438 2518 |  | 
| 2439 | 
            -
              it  | 
| 2440 | 
            -
                assert_equal  | 
| 2519 | 
            +
              it 'has a working function #test_uint32' do
         | 
| 2520 | 
            +
                assert_equal 540_000, Regress.test_uint32(540_000)
         | 
| 2441 2521 | 
             
              end
         | 
| 2442 2522 |  | 
| 2443 | 
            -
              it  | 
| 2523 | 
            +
              it 'has a working function #test_uint64' do
         | 
| 2444 2524 | 
             
                assert_equal 54_000_000_000_000, Regress.test_uint64(54_000_000_000_000)
         | 
| 2445 2525 | 
             
              end
         | 
| 2446 2526 |  | 
| 2447 | 
            -
              it  | 
| 2527 | 
            +
              it 'has a working function #test_uint8' do
         | 
| 2448 2528 | 
             
                assert_equal 31, Regress.test_uint8(31)
         | 
| 2449 2529 | 
             
              end
         | 
| 2450 2530 |  | 
| 2451 | 
            -
              it  | 
| 2531 | 
            +
              it 'has a working function #test_ulong' do
         | 
| 2452 2532 | 
             
                assert_equal 54_000_000_000_000, Regress.test_uint64(54_000_000_000_000)
         | 
| 2453 2533 | 
             
              end
         | 
| 2454 2534 |  | 
| 2455 | 
            -
              it  | 
| 2535 | 
            +
              it 'has a working function #test_unconventional_error_quark' do
         | 
| 2456 2536 | 
             
                skip unless get_introspection_data 'Regress', 'test_unconventional_error_quark'
         | 
| 2457 2537 | 
             
                result = Regress.test_unconventional_error_quark
         | 
| 2458 | 
            -
                GLib.quark_to_string(result).must_equal  | 
| 2538 | 
            +
                GLib.quark_to_string(result).must_equal 'regress-test-other-error'
         | 
| 2459 2539 | 
             
              end
         | 
| 2460 2540 |  | 
| 2461 | 
            -
              it  | 
| 2541 | 
            +
              it 'has a working function #test_unichar' do
         | 
| 2462 2542 | 
             
                assert_equal 120, Regress.test_unichar(120)
         | 
| 2463 2543 | 
             
                assert_equal 540_000, Regress.test_unichar(540_000)
         | 
| 2464 2544 | 
             
              end
         | 
| 2465 2545 |  | 
| 2466 | 
            -
              it  | 
| 2467 | 
            -
                assert_equal  | 
| 2468 | 
            -
                assert_equal  | 
| 2546 | 
            +
              it 'has a working function #test_unsigned_enum_param' do
         | 
| 2547 | 
            +
                assert_equal 'value1', Regress.test_unsigned_enum_param(:value1)
         | 
| 2548 | 
            +
                assert_equal 'value2', Regress.test_unsigned_enum_param(:value2)
         | 
| 2469 2549 | 
             
              end
         | 
| 2470 2550 |  | 
| 2471 | 
            -
              it  | 
| 2551 | 
            +
              it 'has a working function #test_ushort' do
         | 
| 2472 2552 | 
             
                assert_equal 54_000_000, Regress.test_uint64(54_000_000)
         | 
| 2473 2553 | 
             
              end
         | 
| 2474 2554 |  | 
| 2475 | 
            -
              it  | 
| 2555 | 
            +
              it 'has a working function #test_utf8_const_in' do
         | 
| 2476 2556 | 
             
                Regress.test_utf8_const_in("const \xe2\x99\xa5 utf8")
         | 
| 2477 2557 | 
             
                pass
         | 
| 2478 2558 | 
             
              end
         | 
| 2479 2559 |  | 
| 2480 | 
            -
              it  | 
| 2560 | 
            +
              it 'has a working function #test_utf8_const_return' do
         | 
| 2481 2561 | 
             
                result = Regress.test_utf8_const_return
         | 
| 2482 2562 | 
             
                assert_equal "const \xe2\x99\xa5 utf8", result
         | 
| 2483 2563 | 
             
              end
         | 
| 2484 2564 |  | 
| 2485 | 
            -
              it  | 
| 2565 | 
            +
              it 'has a working function #test_utf8_inout' do
         | 
| 2486 2566 | 
             
                result = Regress.test_utf8_inout "const \xe2\x99\xa5 utf8"
         | 
| 2487 2567 | 
             
                assert_equal "nonconst \xe2\x99\xa5 utf8", result
         | 
| 2488 2568 | 
             
              end
         | 
| 2489 2569 |  | 
| 2490 | 
            -
              it  | 
| 2570 | 
            +
              it 'has a working function #test_utf8_nonconst_return' do
         | 
| 2491 2571 | 
             
                result = Regress.test_utf8_nonconst_return
         | 
| 2492 2572 | 
             
                assert_equal "nonconst \xe2\x99\xa5 utf8", result
         | 
| 2493 2573 | 
             
              end
         | 
| 2494 2574 |  | 
| 2495 | 
            -
              it  | 
| 2575 | 
            +
              it 'has a working function #test_utf8_null_in' do
         | 
| 2496 2576 | 
             
                Regress.test_utf8_null_in nil
         | 
| 2497 2577 | 
             
                pass
         | 
| 2498 2578 | 
             
              end
         | 
| 2499 2579 |  | 
| 2500 | 
            -
              it  | 
| 2580 | 
            +
              it 'has a working function #test_utf8_null_out' do
         | 
| 2501 2581 | 
             
                assert_equal nil, Regress.test_utf8_null_out
         | 
| 2502 2582 | 
             
              end
         | 
| 2503 2583 |  | 
| 2504 | 
            -
              it  | 
| 2584 | 
            +
              it 'has a working function #test_utf8_out' do
         | 
| 2505 2585 | 
             
                result = Regress.test_utf8_out
         | 
| 2506 2586 | 
             
                assert_equal "nonconst \xe2\x99\xa5 utf8", result
         | 
| 2507 2587 | 
             
              end
         | 
| 2508 2588 |  | 
| 2509 | 
            -
              it  | 
| 2589 | 
            +
              it 'has a working function #test_utf8_out_nonconst_return' do
         | 
| 2510 2590 | 
             
                r, out = Regress.test_utf8_out_nonconst_return
         | 
| 2511 | 
            -
                assert_equal  | 
| 2591 | 
            +
                assert_equal %w(first second), [r, out]
         | 
| 2512 2592 | 
             
              end
         | 
| 2513 2593 |  | 
| 2514 | 
            -
              it  | 
| 2594 | 
            +
              it 'has a working function #test_utf8_out_out' do
         | 
| 2515 2595 | 
             
                out0, out1 = Regress.test_utf8_out_nonconst_return
         | 
| 2516 | 
            -
                assert_equal  | 
| 2596 | 
            +
                assert_equal %w(first second), [out0, out1]
         | 
| 2517 2597 | 
             
              end
         | 
| 2518 2598 |  | 
| 2519 | 
            -
              it  | 
| 2599 | 
            +
              it 'has a working function #test_value_return' do
         | 
| 2520 2600 | 
             
                result = Regress.test_value_return 3423
         | 
| 2521 2601 | 
             
                assert_equal 3423, result.get_int
         | 
| 2522 2602 | 
             
              end
         | 
| 2523 2603 |  | 
| 2524 | 
            -
              it  | 
| 2604 | 
            +
              it 'has a working function #test_versioning' do
         | 
| 2525 2605 | 
             
                skip unless get_introspection_data 'Regress', 'test_versioning'
         | 
| 2526 2606 | 
             
                Regress.test_versioning
         | 
| 2527 2607 | 
             
                pass
         | 
| 2528 2608 | 
             
              end
         | 
| 2529 2609 |  | 
| 2530 | 
            -
              it  | 
| 2610 | 
            +
              it 'raises an appropriate NoMethodError when a function is not found' do
         | 
| 2531 2611 | 
             
                begin
         | 
| 2532 2612 | 
             
                  Regress.this_method_does_not_exist
         | 
| 2533 2613 | 
             
                rescue => e
         |