summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-12-03 10:48:12 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-12-03 10:48:12 +0000
commit7bb94fa3f59d37f4650b0c32111c7917a322ca38 (patch)
tree993ecbdb3e7eed8ae578feeba4c38ac7c265c6a8
parent693a6cde25fe96ea1e8bede5ebc44b39ad178807 (diff)
* lib/mkmf.rb (check_sizeof): should return integer always.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@30068 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--lib/mkmf.rb9
-rw-r--r--test/mkmf/base.rb37
-rw-r--r--test/mkmf/test_find_executable.rb36
-rw-r--r--test/mkmf/test_sizeof.rb18
-rw-r--r--version.h6
6 files changed, 99 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 8c58280240..9e4af8865f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Fri Dec 3 19:48:11 2010 Nobuyoshi Nakada <[email protected]>
+
+ * lib/mkmf.rb (check_sizeof): should return integer always.
+
Wed Dec 1 22:05:32 2010 NAKAMURA Usaku <[email protected]>
* numeric.c (Init_Numeric): fixed a potential bug when using bccwin32
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index b259f00d25..d0cd8c93bb 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -1006,14 +1006,7 @@ def check_sizeof(type, headers = nil, opts = "", &b)
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
diff --git a/test/mkmf/base.rb b/test/mkmf/base.rb
new file mode 100644
index 0000000000..044383d99b
--- /dev/null
+++ b/test/mkmf/base.rb
@@ -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
diff --git a/test/mkmf/test_find_executable.rb b/test/mkmf/test_find_executable.rb
new file mode 100644
index 0000000000..b727a0a5c1
--- /dev/null
+++ b/test/mkmf/test_find_executable.rb
@@ -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
diff --git a/test/mkmf/test_sizeof.rb b/test/mkmf/test_sizeof.rb
new file mode 100644
index 0000000000..0d42cfaa04
--- /dev/null
+++ b/test/mkmf/test_sizeof.rb
@@ -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
diff --git a/version.h b/version.h
index 4fa659e16a..30d6e1bec0 100644
--- a/version.h
+++ b/version.h
@@ -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