From 30e0f51a5df6a207ebeec105317cbb4cb5566be6 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 10 Dec 2010 09:11:48 +0000 Subject: * lib/mkmf.rb (check_signedness): should use the prelude code. [ruby-dev:42731] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/mkmf/base.rb | 7 +++++++ test/mkmf/test_signedness.rb | 27 +++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 test/mkmf/test_signedness.rb (limited to 'test') diff --git a/test/mkmf/base.rb b/test/mkmf/base.rb index 4ceb35087a..f82952d0c5 100644 --- a/test/mkmf/base.rb +++ b/test/mkmf/base.rb @@ -13,6 +13,13 @@ class TestMkmf < Test::Unit::TestCase 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 diff --git a/test/mkmf/test_signedness.rb b/test/mkmf/test_signedness.rb new file mode 100644 index 0000000000..97fc1078d6 --- /dev/null +++ b/test/mkmf/test_signedness.rb @@ -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 -- cgit v1.2.3