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

ruby-changes:18047

From: nobu <ko1@a...>
Date: Fri, 3 Dec 2010 19:55:32 +0900 (JST)
Subject: [ruby-changes:18047] Ruby:r30068 (ruby_1_8, trunk): * lib/mkmf.rb (check_sizeof): should return integer always.

nobu	2010-12-03 19:48:12 +0900 (Fri, 03 Dec 2010)

  New Revision: 30068

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30068

  Log:
    * lib/mkmf.rb (check_sizeof): should return integer always.

  Added directories:
    branches/ruby_1_8/test/mkmf/
  Added files:
    branches/ruby_1_8/test/mkmf/base.rb
    branches/ruby_1_8/test/mkmf/test_find_executable.rb
    branches/ruby_1_8/test/mkmf/test_sizeof.rb
  Modified files:
    branches/ruby_1_8/ChangeLog
    branches/ruby_1_8/lib/mkmf.rb
    branches/ruby_1_8/version.h
    trunk/ChangeLog
    trunk/lib/mkmf.rb
    trunk/test/mkmf/test_sizeof.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 30067)
+++ ChangeLog	(revision 30068)
@@ -1,3 +1,7 @@
+Fri Dec  3 19:48:11 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* lib/mkmf.rb (check_sizeof): should return integer always.
+
 Fri Dec  3 12:54:48 2010  NAKAMURA Usaku  <usa@r...>
 
 	* win32/Makefile.sub (RCFLAGS): VC10 and after only. fixed the problem
Index: lib/mkmf.rb
===================================================================
--- lib/mkmf.rb	(revision 30067)
+++ lib/mkmf.rb	(revision 30068)
@@ -1105,14 +1105,7 @@
   expr = "sizeof((*rbcv_ptr_)#{"." << member if member})"
   fmt = STRING_OR_FAILED_FORMAT
   checking_for checking_message("size of #{type}", headers), fmt do
-    if UNIVERSAL_INTS.include?(type)
-      type
-    elsif size = UNIVERSAL_INTS.find {|t|
-        try_static_assert("#{expr} == sizeof(#{t})", prelude, opts, &b)
-      }
-      $defs.push(format("-DSIZEOF_%s=SIZEOF_%s", type.tr_cpp, size.tr_cpp))
-      size
-    elsif size = try_constant(expr, prelude, opts, &b)
+    if size = try_constant(expr, prelude, opts, &b)
       $defs.push(format("-DSIZEOF_%s=%s", type.tr_cpp, size))
       size
     end
Index: test/mkmf/test_sizeof.rb
===================================================================
--- test/mkmf/test_sizeof.rb	(revision 30067)
+++ test/mkmf/test_sizeof.rb	(revision 30068)
@@ -2,7 +2,13 @@
 
 class TestMkmf
   class TestSizeof < TestMkmf
-    def test_sizeof
+    def test_sizeof_builtin
+      %w[char short int long float double void*].each do |type|
+        assert_kind_of(Integer, mkmf {check_sizeof(type)})
+      end
+    end
+
+    def test_sizeof_struct
       open("confdefs.h", "w") {|f|
         f.puts "typedef struct {char x;} test1_t;"
       }
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 30067)
+++ ruby_1_8/ChangeLog	(revision 30068)
@@ -1,3 +1,7 @@
+Fri Dec  3 19:48:11 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* lib/mkmf.rb (check_sizeof): should return integer always.
+
 Wed Dec  1 22:05:32 2010  NAKAMURA Usaku  <usa@r...>
 
 	* numeric.c (Init_Numeric): fixed a potential bug when using bccwin32
Index: ruby_1_8/version.h
===================================================================
--- ruby_1_8/version.h	(revision 30067)
+++ ruby_1_8/version.h	(revision 30068)
@@ -1,7 +1,7 @@
 #define RUBY_VERSION "1.8.8"
-#define RUBY_RELEASE_DATE "2010-12-01"
+#define RUBY_RELEASE_DATE "2010-12-03"
 #define RUBY_VERSION_CODE 188
-#define RUBY_RELEASE_CODE 20101201
+#define RUBY_RELEASE_CODE 20101203
 #define RUBY_PATCHLEVEL -1
 
 #define RUBY_VERSION_MAJOR 1
@@ -9,7 +9,7 @@
 #define RUBY_VERSION_TEENY 8
 #define RUBY_RELEASE_YEAR 2010
 #define RUBY_RELEASE_MONTH 12
-#define RUBY_RELEASE_DAY 1
+#define RUBY_RELEASE_DAY 3
 
 #define NO_STRING_LITERAL_CONCATENATION 1
 #ifdef RUBY_EXTERN
Index: ruby_1_8/lib/mkmf.rb
===================================================================
--- ruby_1_8/lib/mkmf.rb	(revision 30067)
+++ ruby_1_8/lib/mkmf.rb	(revision 30068)
@@ -1006,14 +1006,7 @@
     x ? super : "failed"
   end
   checking_for checking_message("size of #{type}", headers), fmt do
-    if UNIVERSAL_INTS.include?(type)
-      type
-    elsif size = UNIVERSAL_INTS.find {|t|
-        try_static_assert("#{expr} == sizeof(#{t})", prelude, opts, &b)
-      }
-      $defs.push(format("-DSIZEOF_%s=SIZEOF_%s", type.tr_cpp, size.tr_cpp))
-      size
-    elsif size = try_constant(expr, prelude, opts, &b)
+    if size = try_constant(expr, prelude, opts, &b)
       $defs.push(format("-DSIZEOF_%s=%s", type.tr_cpp, size))
       size
     end
Index: ruby_1_8/test/mkmf/test_sizeof.rb
===================================================================
--- ruby_1_8/test/mkmf/test_sizeof.rb	(revision 0)
+++ ruby_1_8/test/mkmf/test_sizeof.rb	(revision 30068)
@@ -0,0 +1,18 @@
+require File.join(File.dirname(__FILE__), 'base')
+
+class TestMkmf
+  class TestSizeof < TestMkmf
+    def test_sizeof_builtin
+      %w[char short int long float double void*].each do |type|
+        assert_kind_of(Integer, mkmf {check_sizeof(type)})
+      end
+    end
+
+    def test_sizeof_struct
+      open("confdefs.h", "w") {|f|
+        f.puts "typedef struct {char x;} test1_t;"
+      }
+      assert_equal(1, mkmf {check_sizeof("test1_t", "confdefs.h")})
+    end
+  end
+end

Property changes on: ruby_1_8/test/mkmf/test_sizeof.rb
___________________________________________________________________
Added: svn:eol-style
   + LF

Index: ruby_1_8/test/mkmf/test_find_executable.rb
===================================================================
--- ruby_1_8/test/mkmf/test_find_executable.rb	(revision 0)
+++ ruby_1_8/test/mkmf/test_find_executable.rb	(revision 30068)
@@ -0,0 +1,36 @@
+require File.join(File.dirname(__FILE__), 'base')
+
+class TestMkmf
+  class TestFindExecutable < TestMkmf
+    class F
+      def do_find_executable(name)
+        find_executable(name)
+      end
+    end
+
+    def test_find_executable
+      bug2669 = '[ruby-core:27912]'
+      path, ENV["PATH"] = ENV["PATH"], path
+      ENV["PATH"] = @tmpdir
+      f = F.new
+      name = "foobar#{$$}#{rand(1000)}"
+      if /mswin\d|mingw|cygwin/ =~ RUBY_PLATFORM
+        exts = %w[.exe .com .cmd .bat]
+      else
+        exts = [""]
+      end
+      exts.each do |ext|
+        full = name+ext
+        begin
+          open(full, "w") {|ff| ff.chmod(0755)}
+          result = f.do_find_executable(name)
+        ensure
+          File.unlink(full)
+        end
+        assert_equal("#{@tmpdir}/#{name}#{ext}", result, bug2669)
+      end
+    ensure
+      ENV["PATH"] = path
+    end
+  end
+end

Property changes on: ruby_1_8/test/mkmf/test_find_executable.rb
___________________________________________________________________
Added: svn:eol-style
   + LF

Index: ruby_1_8/test/mkmf/base.rb
===================================================================
--- ruby_1_8/test/mkmf/base.rb	(revision 0)
+++ ruby_1_8/test/mkmf/base.rb	(revision 30068)
@@ -0,0 +1,37 @@
+require 'test/unit'
+require 'mkmf'
+require 'tmpdir'
+
+$extout = '$(topdir)/'+RbConfig::CONFIG["EXTOUT"]
+RbConfig::CONFIG['topdir'] = CONFIG['topdir'] = File.expand_path(CONFIG['topdir'])
+RbConfig::CONFIG["extout"] = CONFIG["extout"] = $extout
+$INCFLAGS << " -I."
+$extout_prefix = "$(extout)$(target_prefix)/"
+
+class TestMkmf < Test::Unit::TestCase
+  def setup
+    @tmpdir = Dir.mktmpdir
+    @curdir = Dir.pwd
+    @mkmfobj = Object.new
+    Dir.chdir(@tmpdir)
+    class << (@output = "")
+      def flush; end
+      def reopen(*) end
+      alias write <<
+    end
+    $stdout = @output
+  end
+
+  def teardown
+    $stdout = STDOUT
+    Dir.chdir(@curdir)
+    FileUtils.rm_rf(@tmpdir)
+  end
+
+  def mkmf(*args, &block)
+    @mkmfobj.instance_eval(*args, &block)
+  end
+
+  def default_test
+  end
+end

Property changes on: ruby_1_8/test/mkmf/base.rb
___________________________________________________________________
Added: svn:eol-style
   + LF


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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