ruby-changes:18218
From: nobu <ko1@a...>
Date: Fri, 17 Dec 2010 19:35:38 +0900 (JST)
Subject: [ruby-changes:18218] Ruby:r30239 (trunk): * test/mkmf/base.rb (TestMkmf::FakeLog): capture output from mkmf.
nobu 2010-12-17 19:35:20 +0900 (Fri, 17 Dec 2010) New Revision: 30239 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30239 Log: * test/mkmf/base.rb (TestMkmf::FakeLog): capture output from mkmf. * test/mkmf/test_find_executable.rb (test_find_executable): suppress meaningless diffrences for chkbuild. Modified files: trunk/ChangeLog trunk/test/mkmf/base.rb trunk/test/mkmf/test_find_executable.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 30238) +++ ChangeLog (revision 30239) @@ -1,3 +1,10 @@ +Fri Dec 17 19:35:13 2010 Nobuyoshi Nakada <nobu@r...> + + * 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@r...> * win32/setup.mak (BASERUBY): quit with an error when BASERUBY was not Index: test/mkmf/test_find_executable.rb =================================================================== --- test/mkmf/test_find_executable.rb (revision 30238) +++ test/mkmf/test_find_executable.rb (revision 30239) @@ -8,6 +8,7 @@ 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 Index: test/mkmf/base.rb =================================================================== --- test/mkmf/base.rb (revision 30238) +++ test/mkmf/base.rb (revision 30239) @@ -13,6 +13,42 @@ 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 @@ @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 @@ end def mkmf(*args, &block) + @stdout.clear + stdout, $stdout = $stdout, @stdout @mkmfobj.instance_eval(*args, &block) + ensure + $stdout = stdout end def config_value(name) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/