ruby-changes:18139
From: nobu <ko1@a...>
Date: Fri, 10 Dec 2010 18:31:24 +0900 (JST)
Subject: [ruby-changes:18139] Ruby:r30160 (trunk): * lib/mkmf.rb (check_signedness): should use the prelude code.
nobu 2010-12-10 18:11:48 +0900 (Fri, 10 Dec 2010) New Revision: 30160 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30160 Log: * lib/mkmf.rb (check_signedness): should use the prelude code. [ruby-dev:42731] Added files: trunk/test/mkmf/test_signedness.rb Modified files: trunk/ChangeLog trunk/lib/mkmf.rb trunk/test/mkmf/base.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 30159) +++ ChangeLog (revision 30160) @@ -1,5 +1,8 @@ -Fri Dec 10 18:11:08 2010 Nobuyoshi Nakada <nobu@r...> +Fri Dec 10 18:11:45 2010 Nobuyoshi Nakada <nobu@r...> + * lib/mkmf.rb (check_signedness): should use the prelude code. + [ruby-dev:42731] + * lib/mkmf.rb (Logging.log_close): separate from Logging.logfile. * test/mkmf/base.rb (TestMkmf::MKMFLOG): show mkmf.log at failures. Index: lib/mkmf.rb =================================================================== --- lib/mkmf.rb (revision 30159) +++ lib/mkmf.rb (revision 30160) @@ -1167,10 +1167,10 @@ # done. # def check_signedness(type, headers = nil, opts = nil, &b) - typedef, member, _ = typedef_expr(type, headers) + typedef, member, prelude = typedef_expr(type, headers) signed = nil checking_for("signedness of #{type}", STRING_OR_FAILED_FORMAT) do - signed = try_signedness(typedef, member, headers, opts, &b) or next nil + signed = try_signedness(typedef, member, [prelude], opts, &b) or next nil $defs.push("-DSIGNEDNESS_OF_%s=%+d" % [type.tr_cpp, signed]) signed < 0 ? "signed" : "unsigned" end Index: test/mkmf/test_signedness.rb =================================================================== --- test/mkmf/test_signedness.rb (revision 0) +++ test/mkmf/test_signedness.rb (revision 30160) @@ -0,0 +1,27 @@ +require_relative 'base' + +class TestMkmf + class TestSignedness < TestMkmf + def test_typeof_builtin + bug4144 = '[ruby-dev:42731]' + [["", "-1"], ["signed ", "-1"], ["unsigned ", "+1"]].each do |signed, expect| + %w[short int long].each do |type| + assert_equal(expect.to_i, mkmf {check_signedness(signed+type)}, mkmflog(bug4144)) + end + end + end + + def test_typeof_typedef + [["", "-1"], ["signed ", "-1"], ["unsigned ", "+1"]].each do |signed, expect| + %w[short int long].each do |type| + open("confdefs.h", "w") {|f| + f.puts "typedef #{signed}#{type} test1_t;" + } + $defs.clear + assert_equal(expect.to_i, mkmf {check_signedness("test1_t", "confdefs.h")}, MKMFLOG) + assert_includes($defs, "-DSIGNEDNESS_OF_TEST1_T=#{expect}") + end + end + end + end +end Property changes on: test/mkmf/test_signedness.rb ___________________________________________________________________ Added: svn:eol-style + LF Index: test/mkmf/base.rb =================================================================== --- test/mkmf/base.rb (revision 30159) +++ test/mkmf/base.rb (revision 30160) @@ -13,6 +13,13 @@ class << MKMFLOG alias to_s call end + def mkmflog(msg) + log = proc {MKMFLOG[] << msg} + class << log + alias to_s call + end + log + end def setup @tmpdir = Dir.mktmpdir -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/