ruby-changes:18140
From: nobu <ko1@a...>
Date: Fri, 10 Dec 2010 18:31:37 +0900 (JST)
Subject: [ruby-changes:18140] Ruby:r30161 (trunk): * test/mkmf/base.rb (TestMkmf#config_value): extract macro value from
nobu 2010-12-10 18:12:33 +0900 (Fri, 10 Dec 2010) New Revision: 30161 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30161 Log: * test/mkmf/base.rb (TestMkmf#config_value): extract macro value from config.h. * test/mkmf/test_sizeof.rb (TestMkmf::TestSizeof#test_sizeof_builtin), (TestMkmf::TestSizeof#test_sizeof_struct): more tests. Modified files: trunk/ChangeLog trunk/test/mkmf/base.rb trunk/test/mkmf/test_sizeof.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 30160) +++ ChangeLog (revision 30161) @@ -1,5 +1,11 @@ -Fri Dec 10 18:11:45 2010 Nobuyoshi Nakada <nobu@r...> +Fri Dec 10 18:12:31 2010 Nobuyoshi Nakada <nobu@r...> + * test/mkmf/base.rb (TestMkmf#config_value): extract macro value from + config.h. + + * test/mkmf/test_sizeof.rb (TestMkmf::TestSizeof#test_sizeof_builtin), + (TestMkmf::TestSizeof#test_sizeof_struct): more tests. + * lib/mkmf.rb (check_signedness): should use the prelude code. [ruby-dev:42731] Index: test/mkmf/test_sizeof.rb =================================================================== --- test/mkmf/test_sizeof.rb (revision 30160) +++ test/mkmf/test_sizeof.rb (revision 30161) @@ -2,10 +2,23 @@ class TestMkmf class TestSizeof < TestMkmf + def setup + super + @sizeof_short = config_value("SIZEOF_SHORT").to_i + @sizeof_int = config_value("SIZEOF_INT").to_i + @sizeof_long = config_value("SIZEOF_LONG").to_i + @sizeof_long_long = config_value("SIZEOF_LONG_LONG").to_i + @sizeof___int64 = config_value("SIZEOF___INT64").to_i + end + def test_sizeof_builtin %w[char short int long float double void*].each do |type| assert_kind_of(Integer, mkmf {check_sizeof(type)}, MKMFLOG) end + assert_operator(@sizeof_short, :<=, @sizeof_int) + assert_operator(@sizeof_int, :<=, @sizeof_long) + assert_operator(@sizeof_long, :<=, @sizeof_long_long) unless @sizeof_long_long.zero? + assert_equal(8, @sizeof___int64) unless @sizeof___int64.zero? end def test_sizeof_struct @@ -13,6 +26,20 @@ f.puts "typedef struct {char x;} test1_t;" } assert_equal(1, mkmf {check_sizeof("test1_t", "confdefs.h")}, MKMFLOG) + + open("confdefs.h", "w") {|f| + f.puts "typedef struct {char x, y;} test1_t;" + } + assert_equal(2, mkmf {check_sizeof("test1_t", "confdefs.h")}, MKMFLOG) + + open("confdefs.h", "w") {|f| + f.puts "typedef struct {int x;} test1_t;" + } + assert_equal(@sizeof_int, mkmf {check_sizeof("test1_t", "confdefs.h")}, MKMFLOG) + open("confdefs.h", "w") {|f| + f.puts "typedef struct {int x, y;} test1_t;" + } + assert_equal(2 * @sizeof_int, mkmf {check_sizeof("test1_t", "confdefs.h")}, MKMFLOG) end end end Index: test/mkmf/base.rb =================================================================== --- test/mkmf/base.rb (revision 30160) +++ test/mkmf/base.rb (revision 30161) @@ -39,4 +39,12 @@ def mkmf(*args, &block) @mkmfobj.instance_eval(*args, &block) end + + def config_value(name) + create_tmpsrc("---config-value=#{name}") + xpopen(cpp_command('')) do |f| + f.grep(/^---config-value=(.*)/) {return $1} + end + nil + end end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/