mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* 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
This commit is contained in:
parent
693a6cde25
commit
7bb94fa3f5
6 changed files with 99 additions and 11 deletions
|
@ -1,3 +1,7 @@
|
|||
Fri Dec 3 19:48:11 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* lib/mkmf.rb (check_sizeof): should return integer always.
|
||||
|
||||
Wed Dec 1 22:05:32 2010 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||
|
||||
* numeric.c (Init_Numeric): fixed a potential bug when using bccwin32
|
||||
|
|
|
@ -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
|
||||
|
|
37
test/mkmf/base.rb
Normal file
37
test/mkmf/base.rb
Normal file
|
@ -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
|
36
test/mkmf/test_find_executable.rb
Normal file
36
test/mkmf/test_find_executable.rb
Normal file
|
@ -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
|
18
test/mkmf/test_sizeof.rb
Normal file
18
test/mkmf/test_sizeof.rb
Normal file
|
@ -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
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue