[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]