Ignore:
Timestamp:
Jan 21, 2018, 12:10:09 AM (6 years ago)
Author:
coas-nagasima
Message:

prototoolに関連するプロジェクトをnewlibからmuslを使うよう変更・更新
ntshellをnewlibの下位の実装から、muslのsyscallの実装に変更・更新
以下のOSSをアップデート
・mruby-1.3.0
・musl-1.1.18
・onigmo-6.1.3
・tcc-0.9.27
以下のOSSを追加
・openssl-1.1.0e
・curl-7.57.0
・zlib-1.2.11
以下のmrbgemsを追加
・iij/mruby-digest
・iij/mruby-env
・iij/mruby-errno
・iij/mruby-iijson
・iij/mruby-ipaddr
・iij/mruby-mock
・iij/mruby-require
・iij/mruby-tls-openssl

Location:
EcnlProtoTool/trunk/mruby-1.3.0
Files:
2 added
18 edited
1 moved

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/mruby-1.3.0/test/assert.rb

    r321 r331  
    1111  while i < len
    1212    str = args[i].to_s
    13     begin
    14       __printstr__ str
    15     rescue NoMethodError
    16       __t_printstr__ str rescue print str
    17     end
     13    __t_printstr__ str rescue print str
    1814    i += 1
    1915  end
     
    4945    $mrbtest_assert = []
    5046    $mrbtest_assert_idx = 0
    51     if(!yield || $mrbtest_assert.size > 0)
     47    yield
     48    if($mrbtest_assert.size > 0)
    5249      $asserts.push(assertion_string('Fail: ', str, iso, nil))
    5350      $ko_test += 1
     
    218215
    219216  $asserts.each do |msg|
    220     puts msg
     217    t_print "#{msg}\n"
    221218  end
    222219
     
    237234# Performs fuzzy check for equality on methods returning floats
    238235def check_float(a, b)
    239   tolerance = 1e-12
     236  tolerance = Mrbtest::FLOAT_TOLERANCE
    240237  a = a.to_f
    241238  b = b.to_f
  • EcnlProtoTool/trunk/mruby-1.3.0/test/bintest.rb

    r321 r331  
    44def cmd(s)
    55  case RbConfig::CONFIG['host_os']
    6   when /mswin(?!ce)|mingw|cygwin|bccwin/
     6  when /mswin(?!ce)|mingw|bccwin/
    77    "bin\\#{s}.exe"
    88  else
     
    1313def shellquote(s)
    1414  case RbConfig::CONFIG['host_os']
    15   when /mswin(?!ce)|mingw|cygwin|bccwin/
     15  when /mswin(?!ce)|mingw|bccwin/
    1616    "\"#{s}\""
    1717  else
     
    2121
    2222ARGV.each do |gem|
     23  case RbConfig::CONFIG['host_os']
     24  when /mswin(?!ce)|mingw|bccwin/
     25    gem = gem.gsub('\\', '/')
     26  end
     27
    2328  Dir["#{gem}/bintest/**/*.rb"].each do |file|
    2429    load file
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/array.rb

    r321 r331  
    1212assert('Array.[]', '15.2.12.4.1') do
    1313  assert_equal([1, 2, 3], Array.[](1,2,3))
     14end
     15
     16class SubArray < Array
     17end
     18
     19assert('SubArray.[]') do
     20  a = SubArray[1, 2, 3]
     21  assert_equal(SubArray, a.class)
    1422end
    1523
     
    8391  a[2...4] = 6
    8492  assert_equal([1,2,6,5], a)
     93
     94  # passing self (#3274)
     95  a = [1,2,3]
     96  a[1,0] = a
     97  assert_equal([1,1,2,3,2,3], a)
     98  a = [1,2,3]
     99  a[-1,0] = a
     100  assert_equal([1,2,1,2,3,3], a)
    85101end
    86102
     
    99115assert('Array#concat', '15.2.12.5.8') do
    100116  assert_equal([1,2,3,4], [1, 2].concat([3, 4]))
     117
     118  # passing self (#3302)
     119  a = [1,2,3]
     120  a.concat(a)
     121  assert_equal([1,2,3,1,2,3], a)
    101122end
    102123
     
    319340  a = [ 1, 2, 3 ]
    320341
    321   assert_true(a.hash.is_a? Integer)
     342  #assert_true(a.hash.is_a? Integer)
     343  assert_true(a.hash.is_a? Integral)  # mruby special
    322344  assert_equal([1,2].hash, [1,2].hash)
    323345end
     
    348370  assert_equal({Array=>200}, h)
    349371end
     372
     373assert("Array#rindex") do
     374  class Sneaky
     375    def ==(*)
     376      $a.clear
     377      $a.replace([1])
     378      false
     379    end
     380  end
     381  $a = [2, 3, 4, 5, 6, 7, 8, 9, 10, Sneaky.new]
     382  assert_equal 0, $a.rindex(1)
     383end
     384
     385assert('Array#freeze') do
     386  a = [].freeze
     387  assert_raise(RuntimeError) do
     388    a[0] = 1
     389  end
     390end
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/class.rb

    r321 r331  
    385385end
    386386
     387assert('class variable definition in singleton_class') do
     388  class ClassVariableDefinitionInSingletonTest
     389    class << self
     390      @@class_variable = "value"
     391    end
     392    def class_variable
     393      @@class_variable
     394    end
     395  end
     396
     397  assert_equal("value", ClassVariableDefinitionInSingletonTest.new.class_variable)
     398end
     399
     400assert('class variable in module and class << self style class method') do
     401  module ClassVariableInModuleTest
     402    @@class_variable = "value"
     403    class << self
     404      def class_variable
     405        @@class_variable
     406      end
     407    end
     408  end
     409
     410  assert_equal("value", ClassVariableInModuleTest.class_variable)
     411end
     412
     413assert('child class/module defined in singleton class get parent constant') do
     414  actual = module GetParentConstantTest
     415            EXPECT = "value"
     416            class << self
     417              class CHILD
     418                class << self
     419                    EXPECT
     420                end
     421              end
     422            end
     423          end
     424  assert_equal("value", actual)
     425end
     426
     427assert('overriding class variable with a module (#3235)') do
     428  module ModuleWithCVar
     429    @@class_variable = 1
     430  end
     431  class CVarOverrideTest
     432    @@class_variable = 2
     433    include ModuleWithCVar
     434
     435    assert_equal(1, @@class_variable)
     436  end
     437end
     438
    387439assert('class with non-class/module outer raises TypeError') do
    388440  assert_raise(TypeError) { class 0::C1; end }
    389441  assert_raise(TypeError) { class []::C2; end }
    390442end
     443
     444assert("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 }
     451end
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/exception.rb

    r321 r331  
    339339        1 * "b"
    340340      ensure
    341         @e = self.z
    342       end
    343     end
    344 
     341        @e = self.zz
     342      end
     343    end
     344
     345    def zz
     346      true
     347    end
    345348    def z
    346349      true
     
    351354
    352355assert('Exception#inspect without message') do
    353   assert_equal "Exception: Exception", Exception.new.inspect
     356  assert_equal "Exception", Exception.new.inspect
    354357end
    355358
     
    374377end
    375378
    376 assert('Raise in rescue') do
    377   assert_raise(ArgumentError) do
    378     begin
    379       raise "" # RuntimeError
    380     rescue
    381       raise ArgumentError
    382     end
    383   end
    384 end
     379def backtrace_available?
     380  begin
     381    raise "XXX"
     382  rescue => exception
     383    not exception.backtrace.empty?
     384  end
     385end
     386
     387assert('GC in rescue') do
     388  skip "backtrace isn't available" unless backtrace_available?
     389
     390  line = nil
     391  begin
     392    [1].each do
     393      [2].each do
     394        [3].each do
     395          line = __LINE__; raise "XXX"
     396        end
     397      end
     398    end
     399  rescue => exception
     400    GC.start
     401    assert_equal("#{__FILE__}:#{line}:in call",
     402                 exception.backtrace.first)
     403  end
     404end
     405
     406assert('Method call in rescue') do
     407  skip "backtrace isn't available" unless backtrace_available?
     408
     409  line = nil
     410  begin
     411    [1].each do
     412      [2].each do
     413        line = __LINE__; raise "XXX"
     414      end
     415    end
     416  rescue => exception
     417    [3].each do
     418    end
     419    assert_equal("#{__FILE__}:#{line}:in call",
     420                 exception.backtrace.first)
     421  end
     422end
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/float.rb

    r321 r331  
    149149assert('Float#to_i', '15.2.9.3.14') do
    150150  assert_equal(3, 3.123456789.to_i)
     151  assert_raise(FloatDomainError) { Float::INFINITY.to_i }
     152  assert_raise(FloatDomainError) { (-Float::INFINITY).to_i }
     153  assert_raise(FloatDomainError) { Float::NAN.to_i }
    151154end
    152155
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/hash.rb

    r321 r331  
    1717
    1818  assert_equal 'abc', a['abc']
     19
     20  # Hash#[] should call #default (#3272)
     21  hash = {}
     22  def hash.default(k); self[k] = 1; end
     23  hash[:foo] += 1
     24
     25  assert_equal 2, hash[:foo]
    1926end
    2027
     
    3845  a['a'] = 2
    3946  assert_equal({'a' => 1}, b)
     47
     48  c = Hash.new { |h, k| h[k] = k.upcase }
     49  d = c.dup
     50  assert_equal("FOO", d["foo"])
    4051end
    4152
     
    240251  b.replace(a)
    241252  assert_equal(127, b[127])
     253
     254   assert_raise(TypeError) do
     255    { 'abc_key' => 'abc_value' }.replace "a"
     256  end
    242257end
    243258
     
    352367  assert_equal("b", h[[:b]])
    353368end
     369
     370assert('Hash#freeze') do
     371  h = {}.freeze
     372  assert_raise(RuntimeError) do
     373    h[:a] = 'b'
     374  end
     375end
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/integer.rb

    r321 r331  
    148148  # Left Shift by a negative is Right Shift
    149149  assert_equal 23, 46 << -1
     150
     151  # Left Shift by 31 is bitShift overflow to SignedInt
     152  assert_equal 2147483648, 1 << 31
     153
     154  # -3 Left Shift by 30 is bitShift overflow to SignedInt
     155  assert_equal(-3221225472, -3 << 30)
    150156end
    151157
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/kernel.rb

    r321 r331  
    222222end
    223223
     224assert('Kernel#dup class') do
     225  assert_nothing_raised do
     226    Array.dup.new(200)
     227    Range.dup.new(2, 3)
     228    String.dup.new("a"*50)
     229  end
     230end
     231
    224232# Kernel#eval is provided by mruby-eval mrbgem '15.3.1.3.12'
    225233
     
    248256
    249257  assert_true respond_to?(:test_method)
     258end
     259
     260assert('Kernel#freeze') do
     261  obj = Object.new
     262  assert_equal obj, obj.freeze
     263  assert_equal 0, 0.freeze
     264  assert_equal :a, :a.freeze
    250265end
    251266
     
    424439assert('Kernel#public_methods', '15.3.1.3.38') do
    425440  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)
    426446end
    427447
     
    508528end
    509529
     530assert('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
     543end
     544
    510545assert('Kernel.local_variables', '15.3.1.2.7') do
    511546  a, b = 0, 1
     
    515550  assert_equal [:a, :b, :vars], vars
    516551
    517   Proc.new {
     552  assert_equal [:a, :b, :c, :vars], Proc.new { |a, b|
    518553    c = 2
    519     vars = Kernel.local_variables.sort
    520     assert_equal [:a, :b, :c, :vars], vars
    521   }.call
     554    Kernel.local_variables.sort
     555  }.call(-1, -2)
    522556end
    523557
     
    588622  assert_equal 6, recurse(0, 5)
    589623end
    590 
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/literals.rb

    r321 r331  
    2727  assert_equal       10, 1_0
    2828  # integer with exponent
    29   assert_equal 10.0, 1e1,
     29  assert_equal 10.0, 1e1
    3030  assert_equal(0.1, 1e-1)
    3131  assert_equal 10.0, 1e+1
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/module.rb

    r321 r331  
    494494
    495495# Not ISO specified
     496
     497assert('Module#define_method') do
     498  c = Class.new {
     499    define_method(:m1) { :ok }
     500    define_method(:m2, Proc.new { :ok })
     501  }
     502  assert_equal c.new.m1, :ok
     503  assert_equal c.new.m2, :ok
     504  assert_raise(TypeError) do
     505    Class.new { define_method(:n1, nil) }
     506  end
     507end
    496508
    497509# @!group prepend
     
    838850  assert_raise(TypeError) { module []::M2 end }
    839851end
     852
     853assert('get constant of parent module in singleton class; issue #3568') do
     854  actual = module GetConstantInSingletonTest
     855    EXPECTED = "value"
     856    class << self
     857      EXPECTED
     858    end
     859  end
     860
     861  assert_equal("value", actual)
     862end
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/nil.rb

    r321 r331  
    3333  assert_equal '', nil.to_s
    3434end
     35
     36assert('safe navigation') do
     37  assert_nil nil&.size
     38  assert_equal 0, []&.size
     39end
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/proc.rb

    r321 r331  
    137137end
    138138
     139assert('call Proc#initialize if defined') do
     140  a = []
     141  c = Class.new(Proc) do
     142    define_method(:initialize) do
     143      a << :ok
     144    end
     145  end
     146
     147  assert_kind_of c, c.new{}
     148  assert_equal [:ok], a
     149end
     150
    139151assert('&obj call to_proc if defined') do
    140152  pr = Proc.new{}
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/range.rb

    r321 r331  
    4444
    4545assert('Range#include?', '15.2.14.4.8') do
    46   a = (1..10)
     46  assert_true (1..10).include?(10)
     47  assert_false (1..10).include?(11)
    4748
    48   assert_true a.include?(5)
    49   assert_false a.include?(20)
     49  assert_true (1...10).include?(9)
     50  assert_false (1...10).include?(10)
    5051end
    5152
     
    5859  assert_equal (1..10), b
    5960  assert_false b.exclude_end?
     61
     62  assert_raise(NameError) { (0..1).send(:initialize, 1, 3) }
    6063end
    6164
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/string.rb

    r321 r331  
    252252end
    253253
     254assert('String#chomp! uses the correct length') do
     255  class A
     256    def to_str
     257      $s.replace("AA")
     258      "A"
     259    end
     260  end
     261
     262  $s = "AAA"
     263  $s.chomp!(A.new)
     264  assert_equal $s, "A"
     265end
     266
    254267assert('String#chop', '15.2.10.5.11') do
    255268  a = ''.chop
     
    329342
    330343  assert_equal list, n_list
     344
     345  n_list.clear
     346  a.each_line("li") do |line|
     347    n_list << line
     348  end
     349  assert_equal ["first li", "ne\nsecond li", "ne\nthird li", "ne"], n_list
    331350end
    332351
     
    353372  assert_equal('A',      'a'.gsub('a', 'A'))
    354373  assert_equal('A',      'a'.gsub('a'){|w| w.capitalize })
     374  assert_equal("<a><><>", 'a'.gsub('a', '<\0><\1><\2>'))
     375  assert_equal(".h.e.l.l.o.", "hello".gsub("", "."))
     376  a = []
     377  assert_equal(".h.e.l.l.o.", "hello".gsub("") { |i| a << i; "." })
     378  assert_equal(["", "", "", "", "", ""], a)
     379  assert_raise(ArgumentError) { "".gsub }
     380  assert_raise(ArgumentError) { "".gsub("", "", "") }
    355381end
    356382
     
    382408
    383409assert('String#include?', '15.2.10.5.21') do
    384   assert_true 'abc'.include?(97)
    385   assert_false 'abc'.include?(100)
    386410  assert_true 'abc'.include?('a')
    387411  assert_false 'abc'.include?('d')
     
    392416  assert_nil 'abc'.index('d')
    393417  assert_equal 3, 'abcabc'.index('a', 1)
     418  assert_equal 5, "hello".index("", 5)
     419  assert_equal nil, "hello".index("", 6)
    394420end
    395421
     
    560586  assert_equal 'aBcabc', 'abcabc'.sub('b') { |w| w.capitalize }
    561587  assert_equal 'aa$', 'aa#'.sub('#', '$')
     588  assert_equal '.abc', "abc".sub("", ".")
     589
     590  str = "abc"
     591  miss = str.sub("X", "Z")
     592  assert_equal str, miss
     593  assert_not_equal str.object_id, miss.object_id
     594
     595  a = []
     596  assert_equal '.abc', "abc".sub("") { |i| a << i; "." }
     597  assert_equal [""], a
    562598end
    563599
     
    586622  b = '123456789'.to_f
    587623  c = '12345.6789'.to_f
     624  d = '1e-2147483648'.to_f
     625  e = '1e2147483648'.to_f
    588626
    589627  assert_float(0.0, a)
    590628  assert_float(123456789.0, b)
    591629  assert_float(12345.6789, c)
     630  assert_float(0, d)
     631  assert_float(Float::INFINITY, e)
    592632end
    593633
     
    686726  assert_raise(RuntimeError) { str.upcase! }
    687727end
    688 
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/symbol.rb

    r321 r331  
    11##
    22# Symbol ISO Test
     3
     4assert('Symbol') do
     5  assert_equal :"a", :a
     6  assert_equal :"a#{1}", :a1
     7  assert_equal :'a', :a
     8  assert_equal :'a#{1}', :"a\#{1}"
     9end
    310
    411assert('Symbol', '15.2.11') do
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/syntax.rb

    r321 r331  
    3939    yield
    4040  end
     41  assert_raise LocalJumpError do
     42    o = Object.new
     43    def o.foo
     44      yield
     45    end
     46    o.foo
     47  end
     48end
     49
     50assert('redo in a for loop (#3275)') do
     51  sum = 0
     52  for i in 1..10
     53    sum += i
     54    i -= 1
     55    if i > 0
     56      redo
     57    end
     58  end
     59
     60  assert_equal 220, sum
    4161end
    4262
     
    249269end
    250270
     271assert('multiple assignment (empty array rhs #3236, #3239)') do
     272  a,b,*c = []; assert_equal [nil, nil, []], [a, b, c]
     273  a,b,*c = [1]; assert_equal [1, nil, []], [a, b, c]
     274  a,b,*c = [nil]; assert_equal [nil,nil, []], [a, b, c]
     275  a,b,*c = [[]]; assert_equal [[], nil, []], [a, b, c]
     276end
     277
    251278assert('Return values of case statements') do
    252279  a = [] << case 1
     
    299326
    300327  assert_equal 1, when_value
     328end
     329
     330assert('splat object in assignment') do
     331  o = Object.new
     332  def o.to_a
     333    nil
     334  end
     335  assert_equal [o], (a = *o)
     336
     337  def o.to_a
     338    1
     339  end
     340  assert_raise(TypeError) { a = *o }
     341
     342  def o.to_a
     343    [2]
     344  end
     345  assert_equal [2], (a = *o)
     346end
     347
     348assert('splat object in case statement') do
     349  o = Object.new
     350  def o.to_a
     351    nil
     352  end
     353  a = case o
     354  when *o
     355    1
     356  end
     357  assert_equal 1, a
    301358end
    302359
     
    325382
    326383assert('External command execution.') do
    327   class << Kernel
     384  module Kernel
    328385    sym = '`'.to_sym
    329386    alias_method :old_cmd, sym
  • EcnlProtoTool/trunk/mruby-1.3.0/test/t/unicode.rb

    r321 r331  
    33assert('bare \u notation test') do
    44  # Mininum and maximum one byte characters
    5   assert_equal("\u0000", "\x00")
    6   assert_equal("\u007F", "\x7F")
     5  assert_equal("\x00", "\u0000")
     6  assert_equal("\x7F", "\u007F")
    77
    88  # Mininum and maximum two byte characters
    9   assert_equal("\u0080", "\xC2\x80")
    10   assert_equal("\u07FF", "\xDF\xBF")
     9  assert_equal("\xC2\x80", "\u0080")
     10  assert_equal("\xDF\xBF", "\u07FF")
    1111
    1212  # Mininum and maximum three byte characters
    13   assert_equal("\u0800", "\xE0\xA0\x80")
    14   assert_equal("\uFFFF", "\xEF\xBF\xBF")
     13  assert_equal("\xE0\xA0\x80", "\u0800")
     14  assert_equal("\xEF\xBF\xBF", "\uFFFF")
    1515
    1616  # Four byte characters require the \U notation
     
    1919assert('braced \u notation test') do
    2020  # Mininum and maximum one byte characters
    21   assert_equal("\u{0000}", "\x00")
    22   assert_equal("\u{007F}", "\x7F")
     21  assert_equal("\x00", "\u{0000}")
     22  assert_equal("\x7F", "\u{007F}")
    2323
    2424  # Mininum and maximum two byte characters
    25   assert_equal("\u{0080}", "\xC2\x80")
    26   assert_equal("\u{07FF}", "\xDF\xBF")
     25  assert_equal("\xC2\x80", "\u{0080}")
     26  assert_equal("\xDF\xBF", "\u{07FF}")
    2727
    2828  # Mininum and maximum three byte characters
    29   assert_equal("\u{0800}", "\xE0\xA0\x80")
    30   assert_equal("\u{FFFF}", "\xEF\xBF\xBF")
     29  assert_equal("\xE0\xA0\x80", "\u{0800}")
     30  assert_equal("\xEF\xBF\xBF", "\u{FFFF}")
    3131
    3232  # Mininum and maximum four byte characters
    33   assert_equal("\u{10000}",  "\xF0\x90\x80\x80")
    34   assert_equal("\u{10FFFF}", "\xF4\x8F\xBF\xBF")
     33  assert_equal("\xF0\x90\x80\x80", "\u{10000}")
     34  assert_equal("\xF4\x8F\xBF\xBF", "\u{10FFFF}")
    3535end
     36
     37assert('braced multiple \u notation test') do
     38  assert_equal("ABC", "\u{41 42 43}")
     39end
Note: See TracChangeset for help on using the changeset viewer.