Ignore:
Timestamp:
Jul 9, 2020, 8:51:43 AM (4 years ago)
Author:
coas-nagasima
Message:

mrubyを2.1.1に更新

Location:
EcnlProtoTool/trunk/mruby-2.1.1
Files:
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/mruby-2.1.1/mrbgems/mruby-struct/test/struct.rb

    r331 r439  
    1010  assert_equal Struct, c.superclass
    1111  assert_equal [:m1, :m2], c.members
    12 end
    13 
    14 # Check crash bug with Struc.new and no params.
    15 assert('Struct.new', '15.2.18.3.1') do
    16   c = Struct.new()
    17   assert_equal Struct, c.superclass
    18   assert_equal [], c.members
    1912end
    2013
     
    124117
    125118assert('struct inspect') do
    126   c = Struct.new(:m1, :m2, :m3, :m4, :m5)
    127   cc = c.new(1,2,3,4,5)
    128   assert_equal "#<struct m1=1, m2=2, m3=3, m4=4, m5=5>", cc.inspect
     119  c = Struct.new(:m1, :m2, :m3, :m4, :m5, :recur)
     120  cc = c.new(1,2,3,4,5,nil)
     121  cc.recur = cc
     122  assert_equal "#<struct m1=1, m2=2, m3=3, m4=4, m5=5, recur=#<struct #{cc.class}:...>>", cc.inspect
    129123end
    130124
     
    160154end
    161155
    162 assert("Struct.new removes existing constant") do
    163   skip "redefining Struct with same name cause warnings"
    164   begin
    165     assert_not_equal Struct.new("Test", :a), Struct.new("Test", :a, :b)
    166   ensure
    167     Struct.remove_const :Test
    168   end
    169 end
     156# TODO: suppress redefining Struct warning during test
     157# assert("Struct.new removes existing constant") do
     158#   begin
     159#     assert_not_equal Struct.new("Test", :a), Struct.new("Test", :a, :b)
     160#   ensure
     161#     Struct.remove_const :Test
     162#   end
     163# end
    170164
    171165assert("Struct#initialize_copy requires struct to be the same type") do
     
    189183end
    190184
     185assert("Struct.new does not allow invalid class name") do
     186  assert_raise(NameError) { Struct.new("Test-", :a) }
     187end
     188
    191189assert("Struct.new generates subclass of Struct") do
    192190  begin
    193191    original_struct = Struct
    194192    Struct = String
    195     assert_equal original_struct, original_struct.new.superclass
     193    assert_equal original_struct, original_struct.new(:foo).superclass
    196194  ensure
    197195    Struct = original_struct
     
    207205
    208206  o.freeze
    209   assert_raise(RuntimeError) { o.m = :modify }
    210   assert_raise(RuntimeError) { o[:m] = :modify }
     207  assert_raise(FrozenError) { o.m = :modify }
     208  assert_raise(FrozenError) { o[:m] = :modify }
    211209  assert_equal :test, o.m
    212210end
Note: See TracChangeset for help on using the changeset viewer.