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/kernel.rb

    r331 r439  
    3232# Kernel.eval is provided by the mruby-gem mrbgem. '15.3.1.2.3'
    3333
    34 assert('Kernel.global_variables', '15.3.1.2.4') do
    35   assert_equal Array, Kernel.global_variables.class
    36 end
    37 
    3834assert('Kernel.iterator?', '15.3.1.2.5') do
    3935  assert_false Kernel.iterator?
     
    5248  assert_equal Proc, m.class
    5349end
    54 
    55 # Not implemented at the moment
    56 #assert('Kernel.local_variables', '15.3.1.2.7') do
    57 #  Kernel.local_variables.class == Array
    58 #end
    5950
    6051assert('Kernel.loop', '15.3.1.2.8') do
     
    109100  assert_true __send__(:respond_to?, :nil?)
    110101  # test without argument and without block
    111   assert_equal  Array, __send__(:public_methods).class
     102  assert_equal String, __send__(:to_s).class
    112103end
    113104
     
    177168  assert_false b.respond_to?(:test)
    178169  assert_true c.respond_to?(:test)
     170
     171  a.freeze
     172  d = a.clone
     173  assert_true d.frozen?
    179174end
    180175
     
    246241  assert_true a.respond_to?(:test_method)
    247242  assert_false b.respond_to?(:test_method)
     243
     244  assert_raise(FrozenError) { Object.new.freeze.extend(Test4ExtendModule) }
     245  assert_raise(FrozenError, TypeError) { :sym.extend(Test4ExtendModule) }
    248246end
    249247
     
    263261  assert_equal 0, 0.freeze
    264262  assert_equal :a, :a.freeze
    265 end
    266 
    267 assert('Kernel#global_variables', '15.3.1.3.14') do
    268   assert_equal Array, global_variables.class
     263  assert_equal true, true.freeze
     264  assert_equal false, false.freeze
     265  assert_equal nil, nil.freeze
     266  skip unless Object.const_defined?(:Float)
     267  assert_equal 0.0, 0.0.freeze
     268end
     269
     270assert('Kernel#frozen?') do
     271  assert_false "".frozen?
     272  assert_true "".freeze.frozen?
     273  assert_true 0.frozen?
     274  assert_true :a.frozen?
     275  assert_true true.frozen?
     276  assert_true false.frozen?
     277  assert_true nil.frozen?
     278  skip unless Object.const_defined?(:Float)
     279  assert_true 0.0.frozen?
    269280end
    270281
     
    278289  assert_equal String, s.class
    279290  assert_equal "main", s
    280 end
    281 
    282 assert('Kernel#instance_variable_defined?', '15.3.1.3.20') do
    283   o = Object.new
    284   o.instance_variable_set(:@a, 1)
    285 
    286   assert_true o.instance_variable_defined?("@a")
    287   assert_false o.instance_variable_defined?("@b")
    288   assert_true o.instance_variable_defined?("@a"[0,2])
    289   assert_true o.instance_variable_defined?("@abc"[0,2])
    290 end
    291 
    292 assert('Kernel#instance_variables', '15.3.1.3.23') do
    293   o = Object.new
    294   o.instance_eval do
    295     @a = 11
    296     @b = 12
    297   end
    298   ivars = o.instance_variables
    299 
    300   assert_equal Array, ivars.class,
    301   assert_equal(2, ivars.size)
    302   assert_true ivars.include?(:@a)
    303   assert_true ivars.include?(:@b)
    304291end
    305292
     
    335322end
    336323
    337 # Not implemented yet
    338 #assert('Kernel#local_variables', '15.3.1.3.28') do
    339 #  local_variables.class == Array
    340 #end
    341 
    342324assert('Kernel#loop', '15.3.1.3.29') do
    343325  i = 0
     
    360342  assert_equal 'A call to no_method_named_this', mm_test.no_method_named_this
    361343
     344  class SuperMMTestClass < MMTestClass
     345    def no_super_method_named_this
     346      super
     347    end
     348  end
     349  super_mm_test = SuperMMTestClass.new
     350  assert_equal 'A call to no_super_method_named_this', super_mm_test.no_super_method_named_this
     351
     352  class NoSuperMethodTestClass
     353    def no_super_method_named_this
     354      super
     355    end
     356  end
     357  no_super_test = NoSuperMethodTestClass.new
     358  msg = "undefined method 'no_super_method_named_this'"
     359  assert_raise_with_message(NoMethodError, msg) do
     360    no_super_test.no_super_method_named_this
     361  end
     362
    362363  a = String.new
    363   begin
     364  msg = "undefined method 'no_method_named_this'"
     365  assert_raise_with_message(NoMethodError, msg) do
    364366    a.no_method_named_this
    365   rescue NoMethodError => e
    366     assert_equal "undefined method 'no_method_named_this' for \"\"", e.message
    367   end
    368 
    369   class ShortInspectClass
    370     def inspect
    371       'An inspect string'
    372     end
    373   end
    374   b = ShortInspectClass.new
    375   begin
    376     b.no_method_named_this
    377   rescue NoMethodError => e
    378     assert_equal "undefined method 'no_method_named_this' for An inspect string", e.message
    379   end
    380 
    381   class LongInspectClass
    382     def inspect
    383       "A" * 70
    384     end
    385   end
    386   c = LongInspectClass.new
    387   begin
    388     c.no_method_named_this
    389   rescue NoMethodError => e
    390     assert_equal "undefined method 'no_method_named_this' for #{c.to_s}", e.message
    391   end
    392 
    393   class NoInspectClass
    394     undef inspect
    395   end
    396   d = NoInspectClass.new
    397   begin
    398     d.no_method_named_this
    399   rescue NoMethodError => e
    400     assert_equal "undefined method 'no_method_named_this' for #{d.to_s}", e.message
    401   end
    402 end
    403 
    404 assert('Kernel#methods', '15.3.1.3.31') do
    405   assert_equal Array, methods.class
     367  end
    406368end
    407369
     
    429391# Kernel#print is defined in mruby-print mrbgem. '15.3.1.3.35'
    430392
    431 assert('Kernel#private_methods', '15.3.1.3.36') do
    432   assert_equal Array, private_methods.class
    433 end
    434 
    435 assert('Kernel#protected_methods', '15.3.1.3.37') do
    436   assert_equal Array, protected_methods.class
    437 end
    438 
    439 assert('Kernel#public_methods', '15.3.1.3.38') do
    440   assert_equal Array, public_methods.class
    441   class Foo
    442     def foo
    443     end
    444   end
    445   assert_equal [:foo], Foo.new.public_methods(false)
    446 end
    447 
    448393# Kernel#puts is defined in mruby-print mrbgem. '15.3.1.3.39'
    449394
     
    471416  tri = Test4RemoveInstanceVar.new
    472417  assert_equal 99, tri.var
    473   tri.remove
     418  assert_equal 99, tri.remove
    474419  assert_equal nil, tri.var
    475   assert_raise NameError do
    476     tri.remove
    477   end
     420  assert_raise(NameError) { tri.remove }
     421  assert_raise(NameError) { tri.remove_instance_variable(:var) }
     422  assert_raise(FrozenError) { tri.freeze.remove }
     423  assert_raise(FrozenError, NameError) { :a.remove_instance_variable(:@v) }
    478424end
    479425
     
    506452end
    507453
    508 assert('Kernel#send', '15.3.1.3.44') do
    509   # test with block
    510   l = send(:lambda) do
    511     true
    512   end
    513 
    514   assert_true l.call
    515   assert_equal l.class, Proc
    516   # test with argument
    517   assert_true send(:respond_to?, :nil?)
    518   # test without argument and without block
    519   assert_equal send(:public_methods).class, Array
    520 end
    521 
    522 assert('Kernel#singleton_methods', '15.3.1.3.45') do
    523   assert_equal singleton_methods.class, Array
    524 end
    525 
    526454assert('Kernel#to_s', '15.3.1.3.46') do
    527455  assert_equal to_s.class, String
    528 end
    529 
    530 assert('Kernel#to_s on primitives') do
    531   begin
    532     Fixnum.alias_method :to_s_, :to_s
    533     Fixnum.remove_method :to_s
    534 
    535     assert_nothing_raised do
    536       # segfaults if mrb_cptr is used
    537       1.to_s
    538     end
    539   ensure
    540     Fixnum.alias_method :to_s, :to_s_
    541     Fixnum.remove_method :to_s_
    542   end
    543 end
    544 
    545 assert('Kernel.local_variables', '15.3.1.2.7') do
    546   a, b = 0, 1
    547   a += b
    548 
    549   vars = Kernel.local_variables.sort
    550   assert_equal [:a, :b, :vars], vars
    551 
    552   assert_equal [:a, :b, :c, :vars], Proc.new { |a, b|
    553     c = 2
    554     Kernel.local_variables.sort
    555   }.call(-1, -2)
    556456end
    557457
     
    598498end
    599499
    600 assert('Kernel#global_variables') do
    601   variables = global_variables
    602   1.upto(9) do |i|
    603     assert_equal variables.include?(:"$#{i}"), true
    604   end
    605 end
    606 
    607 assert('Kernel#define_singleton_method') do
    608   o = Object.new
    609   ret = o.define_singleton_method(:test_method) do
    610     :singleton_method_ok
    611   end
    612   assert_equal :test_method, ret
    613   assert_equal :singleton_method_ok, o.test_method
    614 end
    615 
    616500assert('stack extend') do
    617501  def recurse(count, stop)
Note: See TracChangeset for help on using the changeset viewer.