summaryrefslogtreecommitdiff
path: root/test/ripper
diff options
context:
space:
mode:
Diffstat (limited to 'test/ripper')
-rw-r--r--test/ripper/test_files.rb21
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