diff options
| author | YAMAMOTO Masaya <[email protected]> | 2017-10-11 17:55:27 +0900 |
|---|---|---|
| committer | YAMAMOTO Masaya <[email protected]> | 2017-10-11 17:58:11 +0900 |
| commit | dcd5d0ffec1a6cee3ff1eb81c7d819f8d23dde46 (patch) | |
| tree | 18bc206aa15e4e8f78b4e3244a871fc566dbddf7 | |
| parent | acdc2d1f242f2547ca842be5d62a2b06356b39ea (diff) | |
| download | mruby-dcd5d0ffec1a6cee3ff1eb81c7d819f8d23dde46.tar.gz mruby-dcd5d0ffec1a6cee3ff1eb81c7d819f8d23dde46.zip | |
Test for MRB_WITHOUT_FLOAT
| -rw-r--r-- | mrbgems/mruby-test/driver.c | 2 | ||||
| -rw-r--r-- | mrbgems/mruby-test/mrbgem.rake | 4 | ||||
| -rw-r--r-- | test/t/array.rb | 2 | ||||
| -rw-r--r-- | test/t/class.rb | 2 | ||||
| -rw-r--r-- | test/t/hash.rb | 2 | ||||
| -rw-r--r-- | test/t/integer.rb | 53 | ||||
| -rw-r--r-- | test/t/numeric.rb | 2 | ||||
| -rw-r--r-- | test/t/range.rb | 2 | ||||
| -rw-r--r-- | test/t/string.rb | 11 |
9 files changed, 48 insertions, 32 deletions
diff --git a/mrbgems/mruby-test/driver.c b/mrbgems/mruby-test/driver.c index da0d721d4..bc8cce607 100644 --- a/mrbgems/mruby-test/driver.c +++ b/mrbgems/mruby-test/driver.c @@ -94,11 +94,13 @@ mrb_init_test_driver(mrb_state *mrb, mrb_bool verbose) mrb_define_const(mrb, mrbtest, "FIXNUM_MIN", mrb_fixnum_value(MRB_INT_MIN)); mrb_define_const(mrb, mrbtest, "FIXNUM_BIT", mrb_fixnum_value(MRB_INT_BIT)); +#ifndef MRB_WITHOUT_FLOAT #ifdef MRB_USE_FLOAT mrb_define_const(mrb, mrbtest, "FLOAT_TOLERANCE", mrb_float_value(mrb, 1e-6)); #else mrb_define_const(mrb, mrbtest, "FLOAT_TOLERANCE", mrb_float_value(mrb, 1e-12)); #endif +#endif if (verbose) { mrb_gv_set(mrb, mrb_intern_lit(mrb, "$mrbtest_verbose"), mrb_true_value()); diff --git a/mrbgems/mruby-test/mrbgem.rake b/mrbgems/mruby-test/mrbgem.rake index ae4c2f131..49714078b 100644 --- a/mrbgems/mruby-test/mrbgem.rake +++ b/mrbgems/mruby-test/mrbgem.rake @@ -7,6 +7,10 @@ MRuby::Gem::Specification.new('mruby-test') do |spec| spec.add_dependency('mruby-compiler', :core => 'mruby-compiler') spec.test_rbfiles = Dir.glob("#{MRUBY_ROOT}/test/t/*.rb") + if build.cc.defines.flatten.include?("MRB_WITHOUT_FLOAT") + spec.test_rbfiles.delete("#{MRUBY_ROOT}/test/t/float.rb") + end + clib = "#{build_dir}/mrbtest.c" mlib = clib.ext(exts.object) diff --git a/test/t/array.rb b/test/t/array.rb index 7c11265a4..d2edd0189 100644 --- a/test/t/array.rb +++ b/test/t/array.rb @@ -55,7 +55,7 @@ assert('Array#[]', '15.2.12.5.4') do assert_equal(nil, [1,2,3].[](-4)) a = [ "a", "b", "c", "d", "e" ] - assert_equal("b", a[1.1]) + assert_equal("b", a[1.1]) if class_defined?("Float") assert_equal(["b", "c"], a[1,2]) assert_equal(["b", "c", "d"], a[1..-2]) end diff --git a/test/t/class.rb b/test/t/class.rb index eb077fce6..a5118fa93 100644 --- a/test/t/class.rb +++ b/test/t/class.rb @@ -358,7 +358,7 @@ assert('singleton tests') do 7 end end - end + end if class_defined?("Float") end assert('clone Class') do diff --git a/test/t/hash.rb b/test/t/hash.rb index c63b8c009..5403a5901 100644 --- a/test/t/hash.rb +++ b/test/t/hash.rb @@ -8,7 +8,7 @@ end assert('Hash#==', '15.2.13.4.1') do assert_true({ 'abc' => 'abc' } == { 'abc' => 'abc' }) assert_false({ 'abc' => 'abc' } == { 'cba' => 'cba' }) - assert_true({ :equal => 1 } == { :equal => 1.0 }) + assert_true({ :equal => 1 } == { :equal => 1.0 }) if class_defined?("Float") assert_false({ :a => 1 } == true) end diff --git a/test/t/integer.rb b/test/t/integer.rb index d4ef8b519..cea97a1e6 100644 --- a/test/t/integer.rb +++ b/test/t/integer.rb @@ -7,56 +7,65 @@ end assert('Integer#+', '15.2.8.3.1') do a = 1+1 - b = 1+1.0 + b = 1+1.0 if class_defined?("Float") assert_equal 2, a - assert_equal 2.0, b + assert_equal 2.0, b if class_defined?("Float") assert_raise(TypeError){ 0+nil } assert_raise(TypeError){ 1+nil } c = Mrbtest::FIXNUM_MAX + 1 d = Mrbtest::FIXNUM_MAX.__send__(:+, 1) - e = Mrbtest::FIXNUM_MAX + 1.0 - assert_equal Float, c.class - assert_equal Float, d.class - assert_float e, c - assert_float e, d + + if class_defined?("Float") + e = Mrbtest::FIXNUM_MAX + 1.0 + assert_equal Float, c.class + assert_equal Float, d.class + assert_float e, c + assert_float e, d + end end assert('Integer#-', '15.2.8.3.2') do a = 2-1 - b = 2-1.0 + b = 2-1.0 if class_defined?("Float") assert_equal 1, a - assert_equal 1.0, b + assert_equal 1.0, b if class_defined?("Float") c = Mrbtest::FIXNUM_MIN - 1 d = Mrbtest::FIXNUM_MIN.__send__(:-, 1) - e = Mrbtest::FIXNUM_MIN - 1.0 - assert_equal Float, c.class - assert_equal Float, d.class - assert_float e, c - assert_float e, d + + if class_defined?("Float") + e = Mrbtest::FIXNUM_MIN - 1.0 + assert_equal Float, c.class + assert_equal Float, d.class + assert_float e, c + assert_float e, d + end end assert('Integer#*', '15.2.8.3.3') do a = 1*1 - b = 1*1.0 + b = 1*1.0 if class_defined?("Float") assert_equal 1, a - assert_equal 1.0, b + assert_equal 1.0, b if class_defined?("Float") assert_raise(TypeError){ 0*nil } assert_raise(TypeError){ 1*nil } c = Mrbtest::FIXNUM_MAX * 2 d = Mrbtest::FIXNUM_MAX.__send__(:*, 2) - e = Mrbtest::FIXNUM_MAX * 2.0 - assert_equal Float, c.class - assert_equal Float, d.class - assert_float e, c - assert_float e, d + + if class_defined?("Float") + e = Mrbtest::FIXNUM_MAX * 2.0 + assert_equal Float, c.class + assert_equal Float, d.class + assert_float e, c + assert_float e, d + end end assert('Integer#/', '15.2.8.3.4') do @@ -218,7 +227,7 @@ end assert('Integer#to_f', '15.2.8.3.23') do assert_equal 1.0, 1.to_f -end +end if class_defined?("Float") assert('Integer#to_i', '15.2.8.3.24') do assert_equal 1, 1.to_i diff --git a/test/t/numeric.rb b/test/t/numeric.rb index 120cc960d..38c62a669 100644 --- a/test/t/numeric.rb +++ b/test/t/numeric.rb @@ -15,7 +15,7 @@ end assert('Numeric#abs', '15.2.7.4.3') do assert_equal(1, 1.abs) - assert_equal(1.0, -1.abs) + assert_equal(1.0, -1.abs) if class_defined?("Float") end assert('Numeric#pow') do diff --git a/test/t/range.rb b/test/t/range.rb index 5391369de..3e67fcc1c 100644 --- a/test/t/range.rb +++ b/test/t/range.rb @@ -8,7 +8,7 @@ end assert('Range#==', '15.2.14.4.1') do assert_true (1..10) == (1..10) assert_false (1..10) == (1..100) - assert_true (1..10) == Range.new(1.0, 10.0) + assert_true (1..10) == Range.new(1.0, 10.0) if class_defined?("Float") end assert('Range#===', '15.2.14.4.2') do diff --git a/test/t/string.rb b/test/t/string.rb index a4139622a..c9041469e 100644 --- a/test/t/string.rb +++ b/test/t/string.rb @@ -154,10 +154,11 @@ assert('String#[]=') do d[-10] = 'X' end - e = 'abc' - e[1.1] = 'X' - assert_equal 'aXc', e - + if class_defined?("Float") + e = 'abc' + e[1.1] = 'X' + assert_equal 'aXc', e + end # length of args is 2 a1 = 'abc' @@ -629,7 +630,7 @@ assert('String#to_f', '15.2.10.5.38') do assert_float(12345.6789, c) assert_float(0, d) assert_float(Float::INFINITY, e) -end +end if class_defined?("Float") assert('String#to_i', '15.2.10.5.39') do a = ''.to_i |
