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/test/t/class.rb

    r331 r439  
    3737assert('Class#new', '15.2.3.3.3') do
    3838  assert_raise(TypeError, 'Singleton should raise TypeError') do
    39     "a".singleton_class.new
     39    (class <<"a"; self; end).new
    4040  end
    4141
     
    237237end
    238238
     239assert('class to return nil if body is empty') do
     240  assert_nil(class C end)
     241  assert_nil(class << self; end)
     242end
     243
    239244assert('raise when superclass is not a class') do
    240245  module FirstModule; end
     
    294299  end
    295300
    296   assert_false baz.singleton_methods.include? :run_foo_mod
    297   assert_false baz.singleton_methods.include? :run_baz
    298 
    299   assert_raise(NoMethodError, 'should raise NoMethodError') do
    300     baz.run_foo_mod
    301   end
    302   assert_raise(NoMethodError, 'should raise NoMethodError') do
    303     baz.run_baz
    304   end
     301  assert_equal :run_baz, baz
    305302
    306303  assert_raise(NoMethodError, 'should raise NoMethodError') do
     
    319316  end
    320317
    321   assert_true baz.singleton_methods.include? :run_baz
    322   assert_true baz.singleton_methods.include? :run_foo_mod
     318  assert_true baz.respond_to? :run_baz
     319  assert_true baz.respond_to? :run_foo_mod
    323320  assert_equal 100, baz.run_foo_mod
    324321  assert_equal 300, baz.run_baz
     
    359356      end
    360357    end
    361   end
     358  end if Object.const_defined?(:Float)
     359
     360  o = Object.new
     361  sc = class << o; self end
     362  o.freeze
     363  assert_predicate(sc, :frozen?)
     364
     365  assert_predicate(class << Object.new.freeze; self end, :frozen?)
    362366end
    363367
     
    369373  end
    370374
    371   Foo.clone.new.func
     375  assert_true(Foo.clone.new.func)
    372376end
    373377
     
    437441end
    438442
     443assert('class variable for frozen class/module') do
     444  module CVarForFrozenModule
     445    freeze
     446    assert_raise(FrozenError) { @@cv = 1 }
     447  end
     448
     449  class CVarForFrozenClassA
     450    @@a = nil
     451    freeze
     452  end
     453  class CVarForFrozenClassB < CVarForFrozenClassA
     454    def a=(v)
     455      @@a = v
     456    end
     457  end
     458  b = CVarForFrozenClassB.new
     459  assert_raise(FrozenError) { b.a = 1 }
     460end
     461
    439462assert('class with non-class/module outer raises TypeError') do
    440463  assert_raise(TypeError) { class 0::C1; end }
    441464  assert_raise(TypeError) { class []::C2; end }
    442465end
    443 
    444 assert("remove_method doesn't segfault if the passed in argument isn't a symbol") do
    445   klass = Class.new
    446   assert_raise(TypeError) { klass.remove_method nil }
    447   assert_raise(TypeError) { klass.remove_method 123 }
    448   assert_raise(TypeError) { klass.remove_method 1.23 }
    449   assert_raise(NameError) { klass.remove_method "hello" }
    450   assert_raise(TypeError) { klass.remove_method Class.new }
    451 end
Note: See TracChangeset for help on using the changeset viewer.