summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorKOBAYASHI Shuji <[email protected]>2019-08-03 11:54:45 +0900
committerKOBAYASHI Shuji <[email protected]>2019-08-03 11:54:45 +0900
commita4243360a2f8248dbf23b46ca14a7a59c0479b32 (patch)
treef1610224880c12bf374f11851c59d3f6474a6638 /test
parentc883f4e332f2385fc9c9df7162b336ea601ec459 (diff)
downloadmruby-a4243360a2f8248dbf23b46ca14a7a59c0479b32.tar.gz
mruby-a4243360a2f8248dbf23b46ca14a7a59c0479b32.zip
Fix `mrb_vformat("%f")` with `MRB_USE_FLOAT`
It potentially not work when `mrb_float` is `float` because `float` variable in variable length arguments is promoted to `double`. Also I fixed build with `MRB_WITHOUT_FLOAT`.
Diffstat (limited to 'test')
-rw-r--r--test/t/vformat.rb8
1 files changed, 5 insertions, 3 deletions
diff --git a/test/t/vformat.rb b/test/t/vformat.rb
index d124e92b2..e99616064 100644
--- a/test/t/vformat.rb
+++ b/test/t/vformat.rb
@@ -35,15 +35,12 @@ assert('mrb_vformat') do
assert_format '`d`: -79', ['`d`: %d', n.d(-79)]
assert_format '`i`: 514', ['`i`: %i', n.i(514)]
assert_format '`i`: -83', ['`i`: %i', n.i(-83)]
- assert_format '`f`: 0.0125', ['`f`: %f', n.f(0.0125)]
assert_format '`t`: NilClass', ['`t`: %t', nil]
assert_format '`t`: FalseClass', ['`t`: %t', false]
assert_format '`t`: TrueClass', ['`t`: %t', true]
assert_format '`t`: Fixnum', ['`t`: %t', 0]
assert_format '`t`: Hash', ['`t`: %t', k: "value"]
assert_format_pattern '#<Class:#<Class:#<Hash:0x*>>>', ['%t', sclass({})]
- assert_format '-Infinity', ['%f', n.f(-Float::INFINITY)]
- assert_format 'NaN: Not a Number', ['%f: Not a Number', n.f(Float::NAN)]
assert_format 'string and length', ['string %l length', n.s('andante'), n.i(3)]
assert_format '`n`: sym', ['`n`: %n', n.n(:sym)]
assert_format '%C文字列%', ['%s', n.s('%C文字列%')]
@@ -87,4 +84,9 @@ assert('mrb_vformat') do
assert_implementation_dependent 'termination is \\', ['termination is \\']
assert_implementation_dependent 'termination is %', ['termination is %']
assert_implementation_dependent 'termination is %!', ['termination is %!']
+
+ skip unless Object.const_defined?(:Float)
+ assert_format '`f`: 0.0125', ['`f`: %f', n.f(0.0125)]
+ assert_format '-Infinity', ['%f', n.f(-Float::INFINITY)]
+ assert_format 'NaN: Not a Number', ['%f: Not a Number', n.f(Float::NAN)]
end