diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/ripper/test_files.rb | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/test/ripper/test_files.rb b/test/ripper/test_files.rb index 695cc149c9..072a52d86f 100644 --- a/test/ripper/test_files.rb +++ b/test/ripper/test_files.rb @@ -1,6 +1,7 @@ begin require 'ripper' require 'find' + require 'stringio' require 'test/unit' ripper_test = true module TestRipper; end @@ -17,11 +18,29 @@ class TestRipper::Generic < Test::Unit::TestCase TEST_RATIO = 0.05 # testing all files needs too long time... + def capture_stderr + err = StringIO.new + begin + old = $stderr + $stderr = err + yield + ensure + $stderr = old + end + if TEST_RATIO == 1.0 + puts err.string + end + end + def test_parse_files Find.find("#{SRCDIR}/lib", "#{SRCDIR}/ext", "#{SRCDIR}/sample", "#{SRCDIR}/test") {|n| next if /\.rb\z/ !~ n || !File.file?(n) next if TEST_RATIO < rand - assert_nothing_raised("ripper failed to parse: #{n.inspect}") { Parser.new(File.read(n)).parse } + assert_nothing_raised("ripper failed to parse: #{n.inspect}") { + capture_stderr { + Parser.new(File.read(n)).parse + } + } } end end if ripper_test |