Changeset 439 for EcnlProtoTool/trunk/mruby-2.1.1/test/t/class.rb
- Timestamp:
- Jul 9, 2020, 8:51:43 AM (4 years ago)
- 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 37 37 assert('Class#new', '15.2.3.3.3') do 38 38 assert_raise(TypeError, 'Singleton should raise TypeError') do 39 "a".singleton_class.new39 (class <<"a"; self; end).new 40 40 end 41 41 … … 237 237 end 238 238 239 assert('class to return nil if body is empty') do 240 assert_nil(class C end) 241 assert_nil(class << self; end) 242 end 243 239 244 assert('raise when superclass is not a class') do 240 245 module FirstModule; end … … 294 299 end 295 300 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 305 302 306 303 assert_raise(NoMethodError, 'should raise NoMethodError') do … … 319 316 end 320 317 321 assert_true baz. singleton_methods.include? :run_baz322 assert_true baz. singleton_methods.include? :run_foo_mod318 assert_true baz.respond_to? :run_baz 319 assert_true baz.respond_to? :run_foo_mod 323 320 assert_equal 100, baz.run_foo_mod 324 321 assert_equal 300, baz.run_baz … … 359 356 end 360 357 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?) 362 366 end 363 367 … … 369 373 end 370 374 371 Foo.clone.new.func375 assert_true(Foo.clone.new.func) 372 376 end 373 377 … … 437 441 end 438 442 443 assert('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 } 460 end 461 439 462 assert('class with non-class/module outer raises TypeError') do 440 463 assert_raise(TypeError) { class 0::C1; end } 441 464 assert_raise(TypeError) { class []::C2; end } 442 465 end 443 444 assert("remove_method doesn't segfault if the passed in argument isn't a symbol") do445 klass = Class.new446 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.