Project

General

Profile

Actions

Bug #6784

closed

Test failures related to numeric with x64 mingw

Added by h.shirosaki (Hiroshi Shirosaki) almost 12 years ago. Updated over 11 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 2.0.0dev (2012-07-23 trunk 36499) [x64-mingw32]
Backport:
[ruby-core:46686]

Description

x64 mingw build has many floating point numeric related failures in test-all.

http://ci.rubyinstaller.org/job/test-ruby-trunk-x64/24/console

  1. Failure:
    test_plus(TestBignum) [C:/Users/Worker/Jenkins/workspace/git-ruby-trunk/test/ruby/test_bignum.rb:244]:
    <2535301200456458802993406410752> expected but was
    <2.535301200456461e+30>.

  2. Failure:
    test_sub(TestBignum) [C:/Users/Worker/Jenkins/workspace/git-ruby-trunk/test/ruby/test_bignum.rb:232]:
    <0> expected but was
    <-2.251799813685248e+15>.

  3. Failure:
    test_divide(TestFixnum) [C:/Users/Worker/Jenkins/workspace/git-ruby-trunk/test/ruby/test_fixnum.rb:156]:
    <2.328306436538698e-10> expected but was
    <(1/4294967296)>.

  4. Failure:
    test_pow2(TestFixnum) [C:/Users/Worker/Jenkins/workspace/git-ruby-trunk/test/ruby/test_fixnum.rb:184]:
    <1.5258789062500007e-05> expected but was
    <(1/65536)>.

  5. Failure:
    test_divmod2(TestFloat) [C:/Users/Worker/Jenkins/workspace/git-ruby-trunk/test/ruby/test_float.rb:269]:
    <4294967296> expected but was
    <4294967295>.

  6. Failure:
    test_round_with_precision(TestFloat) [C:/Users/Worker/Jenkins/workspace/git-ruby-trunk/test/ruby/test_float.rb:382]:
    <1.1> expected but was
    <1.0999999999999999>.

This seems cause of broken pow() implementation of x64 mingw.
Using powl() instead of pow() will fix this. I attached the patch.

I tested it with gcc version 4.6.1 (tdm64-1) on Win7.


Files

0001-Fix-broken-pow-of-mingw.patch (1.03 KB) 0001-Fix-broken-pow-of-mingw.patch h.shirosaki (Hiroshi Shirosaki), 07/24/2012 07:24 AM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0