diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | test/mkmf/base.rb | 41 | ||||
-rw-r--r-- | test/mkmf/test_find_executable.rb | 1 |
3 files changed, 49 insertions, 0 deletions
@@ -1,3 +1,10 @@ +Fri Dec 17 19:35:13 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * test/mkmf/base.rb (TestMkmf::FakeLog): capture output from mkmf. + + * test/mkmf/test_find_executable.rb (test_find_executable): + suppress meaningless diffrences for chkbuild. + Fri Dec 17 13:26:54 2010 NAKAMURA Usaku <usa@ruby-lang.org> * win32/setup.mak (BASERUBY): quit with an error when BASERUBY was not diff --git a/test/mkmf/base.rb b/test/mkmf/base.rb index 49553cf10f..d4cf80376f 100644 --- a/test/mkmf/base.rb +++ b/test/mkmf/base.rb @@ -13,6 +13,42 @@ class TestMkmf < Test::Unit::TestCase class << MKMFLOG alias to_s call end + + class Capture + def initialize + @buffer = "" + @filter = nil + @out = true + end + def clear + @buffer.clear + end + def flush + STDOUT.print @filter ? @filter.call(@buffer) : @buffer + clear + end + def reopen(io) + case io + when Capture + initialize_copy(io) + when File + @out = false + when IO + @out = true + else + @out = false + end + end + def filter(&block) + @filter = block + end + def write(s) + @buffer << s if @out + end + end + + attr_reader :stdout + def mkmflog(msg) log = proc {MKMFLOG[] << msg} class << log @@ -25,6 +61,7 @@ class TestMkmf < Test::Unit::TestCase @tmpdir = Dir.mktmpdir @curdir = Dir.pwd @mkmfobj = Object.new + @stdout = Capture.new Dir.chdir(@tmpdir) @quiet, Logging.quiet = Logging.quiet, true end @@ -37,7 +74,11 @@ class TestMkmf < Test::Unit::TestCase end def mkmf(*args, &block) + @stdout.clear + stdout, $stdout = $stdout, @stdout @mkmfobj.instance_eval(*args, &block) + ensure + $stdout = stdout end def config_value(name) diff --git a/test/mkmf/test_find_executable.rb b/test/mkmf/test_find_executable.rb index 5dca186a41..5ccec880fd 100644 --- a/test/mkmf/test_find_executable.rb +++ b/test/mkmf/test_find_executable.rb @@ -8,6 +8,7 @@ class TestMkmf ENV["PATH"] = @tmpdir name = "foobar#{$$}#{rand(1000)}" exts = mkmf {self.class::CONFIG['EXECUTABLE_EXTS']}.split + stdout.filter {|s| s.sub(name, "<executable>")} exts[0] ||= "" exts.each do |ext| full = name+ext |