Bug #6796
closedfix test failure of numeric/bignum built with clang -O
Description
=begin
木村といいます。
clangで最適化オプションをつけてコンパイルすると、bignum関連のテストが
いくつか失敗していしまいます。
添付のパッチでこの問題が解決することを確認しました。
環境
- Mac OS X 10.7.4
- clang-3.0
- ruby-1.8.7-p370
% ./ruby -v
ruby 1.8.7 (2012-06-29 patchlevel 370) [i686-darwin11.4.2]
% make TESTS=ruby test-all
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb ./runruby.rb --extout=.ext -- "./test/runner.rb" --basedir="./test" --runner=console ruby
Loaded suite ruby
Started
............................./test/ruby/test_array.rb:536: warning: given block not used
.........................................................................FE../test/ruby/test_bignum.rb:109: warning: Bignum out of Float range
./test/ruby/test_bignum.rb:110: warning: Bignum out of Float range
...............................................................................................................................................................................................................F.......F....F..F.....F..........F.......................................................................................................................................................................................................................................................................................
Finished in 68.103073 seconds.
-
Failure:
test_bignum(TestBignum) [./test/ruby/test_bignum.rb:20]:
<815915283247897734345611269596115894272000000000> expected but was
<12458531232290854317486386476939789467648000000>. -
Error:
test_calc(TestBignum):
ZeroDivisionError: divided by 0
./test/ruby/test_bignum.rb:55:inmodulo' ./test/ruby/test_bignum.rb:55:in
test_calc' -
Failure:
test_readpartial_pos(TestIO)
[./test/ruby/test_io.rb:28:intest_readpartial_pos' ./test/ruby/test_io.rb:25:in
open'
./test/ruby/test_io.rb:25:intest_readpartial_pos' ./test/ruby/test_io.rb:9:in
mkcdtmpdir'
./test/ruby/test_io.rb:8:inchdir' ./test/ruby/test_io.rb:8:in
mkcdtmpdir'
/Volumes/CHome/kimuraw/work/ruby/ruby_1_8_7/lib/tmpdir.rb:129:inmktmpdir' ./test/ruby/test_io.rb:7:in
mkcdtmpdir'
./test/ruby/test_io.rb:23:in `test_readpartial_pos']:
<2> expected but was
<0>. -
Failure:
test_divmod(TestInteger)
[./test/ruby/test_integer.rb:219:intest_divmod' ./test/ruby/test_integer.rb:212:in
each'
./test/ruby/test_integer.rb:212:intest_divmod' ./test/ruby/test_integer.rb:211:in
each'
./test/ruby/test_integer.rb:211:in `test_divmod']:
<-79228162514264337593543950338> expected but was
<-2>. -
Failure:
test_lshift(TestInteger)
[./test/ruby/test_integer.rb:308:intest_lshift' ./test/ruby/test_integer.rb:303:in
each'
./test/ruby/test_integer.rb:303:intest_lshift' ./test/ruby/test_integer.rb:302:in
each'
./test/ruby/test_integer.rb:302:in `test_lshift']:
-6277101735386680763835789423207666416102355444464034512898 << 63.
<57896044618658097711785492504343953926634992332820282019747238748030274371584> expected but was
<-57896044618658097711785492504343953926634992332820282019747238748030274371584>. -
Failure:
test_mult(TestInteger)
[./test/ruby/test_integer.rb:205:intest_mult' ./test/ruby/test_integer.rb:198:in
each'
./test/ruby/test_integer.rb:198:intest_mult' ./test/ruby/test_integer.rb:197:in
each'
./test/ruby/test_integer.rb:197:in `test_mult']:
-6277101735386680763835789423207666416102355444464034512898 * -4611686018427387906.
<28948022309329048868446949722945338490989075012825473841617161661100467421188> expected but was
<28948022309329048868446949722945338490989075012825473842078330262943206211588>. -
Failure:
test_pow(TestInteger)
[./test/ruby/test_integer.rb:243:intest_pow' ./test/ruby/test_integer.rb:234:in
each'
./test/ruby/test_integer.rb:234:intest_pow' ./test/ruby/test_integer.rb:233:in
each'
./test/ruby/test_integer.rb:233:in `test_pow']:
((-4611686018427387904) ** 2) / -4611686018427387904 / ...(2 times)...
<1> expected but was
<0>. -
Failure:
test_rshift(TestInteger)
[./test/ruby/test_integer.rb:330:intest_rshift' ./test/ruby/test_integer.rb:325:in
each'
./test/ruby/test_integer.rb:325:intest_rshift' ./test/ruby/test_integer.rb:324:in
each'
./test/ruby/test_integer.rb:324:in `test_rshift']:
-6277101735386680763835789423207666416102355444464034512898 >> -65.
<0> expected but was
<-231584178474632390847141970017375815706539969331281128078988954992121097486336>.
624 tests, 452824 assertions, 7 failures, 1 errors
make: *** [test-all] Error 1
make TESTS=ruby test-all 62.34s user 0.91s system 92% cpu 1:08.44 total
=end
Files
Updated by sorah (Sorah Fukumori) over 12 years ago
- Project changed from Backport187 to Ruby 1.8
Updated by sorah (Sorah Fukumori) over 12 years ago
- Tracker changed from Feature to Bug
Updated by sorah (Sorah Fukumori) over 12 years ago
- Status changed from Open to Rejected
- ruby -v set to ruby 1.8.7 (2012-06-29 patchlevel 370) [i686-darwin11.4.2]
1.8.7 の bug fix は終了しています。
http://www.ruby-lang.org/ja/news/2011/10/07/plans-for-1-8-7/
Updated by knu (Akinori MUSHA) over 12 years ago
ruby_1_8には入れておきます。(r36546)