[ruby-trunk - Bug #5852][Open] Failure test/test_mathn.rb

Issue #5852 has been reported by Ayumu AIZAWA.


Bug #5852: Failure test/test_mathn.rb

Author: Ayumu AIZAWA
Status: Open
Priority: High
Assignee:
Category: ext
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-01-06 trunk 34220) [x86_64-darwin10.8.0]

r34220 にて RUBY_API_VERSION を 2.0.0 にしたところ、Mathnのテストが失敗するようになりました。

ruby ➔ make test-all TESTS=test/test_mathn.rb
./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext
– --disable-gems “./test/runner.rb” --ruby=“./miniruby -I./lib -I.
-I.ext/common ./tool/runruby.rb --extout=.ext – --disable-gems”
test/test_mathn.rb
Run options: “–ruby=./miniruby -I./lib -I. -I.ext/common
./tool/runruby.rb --extout=.ext – --disable-gems”

Running tests:

F

Finished tests in 0.168567s, 5.9324 tests/s, 11.8647 assertions/s.

  1. Failure:
    test_power(TestMathn) [/Users/ayumin/github/ruby/test/test_mathn.rb:7]:
    [ruby-core:25740].
    <[]> expected but was
    <[“dyld: lazy symbol binding failed: Symbol not found:
    _nurat_canonicalization”,
    " Referenced from:
    /Users/ayumin/github/ruby/.ext/x86_64-darwin10.8.0/mathn/rational.bundle",
    " Expected in: flat namespace",
    “”,
    “dyld: Symbol not found: _nurat_canonicalization”,
    " Referenced from:
    /Users/ayumin/github/ruby/.ext/x86_64-darwin10.8.0/mathn/rational.bundle",
    " Expected in: flat namespace",
    “”]>.

1 tests, 2 assertions, 1 failures, 0 errors, 0 skips

ruby -v: ruby 2.0.0dev (2012-01-06 trunk 34220) [x86_64-darwin10.8.0]
make: *** [yes-test-all] Error 1

Issue #5852 has been updated by Tomoyuki C…

configure.in で CANONICALIZATION_FOR_MATHN を設定する条件に if test “$MAJOR” =
“1” を使っているためのようです。
導入された経緯はよくわりませんが、この条件ははずしてしまってもいいのではないでしょうか。とりあえず以下の変更で test-all
が動くようならコミットしてしまおうと思います。

diff --git a/configure.in b/configure.in
index b9f3c79…905efd1 100644
— a/configure.in
+++ b/configure.in
@@ -86,9 +86,7 @@ RUBY_PROGRAM_VERSION=sed -n 's/^#define RUBY_VERSION "\(.*\)"/\1/p' $srcdir/ver AC_SUBST(RUBY_PROGRAM_VERSION) RUBY_RELEASE_DATE=sed -n ‘s/^#define RUBY_RELEASE_DATE “(.*)”/\1/p’
$srcdir/version.h`
AC_SUBST(RUBY_RELEASE_DATE)
-if test “$MAJOR” = “1”; then

  • AC_DEFINE(CANONICALIZATION_FOR_MATHN)
    -fi
    +AC_DEFINE(CANONICALIZATION_FOR_MATHN)
    dnl checks for alternative programs
    AC_CANONICAL_BUILD
    AC_ARG_WITH(gcc,

Bug #5852: Failure test/test_mathn.rb

Author: Ayumu AIZAWA
Status: Open
Priority: High
Assignee:
Category: ext
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-01-06 trunk 34220) [x86_64-darwin10.8.0]

r34220 にて RUBY_API_VERSION を 2.0.0 にしたところ、Mathnのテストが失敗するようになりました。

ruby ➔ make test-all TESTS=test/test_mathn.rb
./miniruby -I./lib -I. -I.ext/common ./tool/runruby.rb --extout=.ext
– --disable-gems “./test/runner.rb” --ruby=“./miniruby -I./lib -I.
-I.ext/common ./tool/runruby.rb --extout=.ext – --disable-gems”
test/test_mathn.rb
Run options: “–ruby=./miniruby -I./lib -I. -I.ext/common
./tool/runruby.rb --extout=.ext – --disable-gems”

Running tests:

F

Finished tests in 0.168567s, 5.9324 tests/s, 11.8647 assertions/s.

  1. Failure:
    test_power(TestMathn) [/Users/ayumin/github/ruby/test/test_mathn.rb:7]:
    [ruby-core:25740].
    <[]> expected but was
    <[“dyld: lazy symbol binding failed: Symbol not found:
    _nurat_canonicalization”,
    " Referenced from:
    /Users/ayumin/github/ruby/.ext/x86_64-darwin10.8.0/mathn/rational.bundle",
    " Expected in: flat namespace",
    “”,
    “dyld: Symbol not found: _nurat_canonicalization”,
    " Referenced from:
    /Users/ayumin/github/ruby/.ext/x86_64-darwin10.8.0/mathn/rational.bundle",
    " Expected in: flat namespace",
    “”]>.

1 tests, 2 assertions, 1 failures, 0 errors, 0 skips

ruby -v: ruby 2.0.0dev (2012-01-06 trunk 34220) [x86_64-darwin10.8.0]
make: *** [yes-test-all] Error 1