diff options
author | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-16 18:49:26 +0900 |
---|---|---|
committer | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-30 00:39:06 +0900 |
commit | fcbf63e62c627deae76c1b8cb8c0876c536ed811 (patch) | |
tree | 64cb17de3f41a2b6fef2368028fbd00349946994 /jni/ruby/test/ripper/test_files.rb |
Fresh start
Diffstat (limited to 'jni/ruby/test/ripper/test_files.rb')
-rw-r--r-- | jni/ruby/test/ripper/test_files.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/jni/ruby/test/ripper/test_files.rb b/jni/ruby/test/ripper/test_files.rb new file mode 100644 index 0000000..5541a09 --- /dev/null +++ b/jni/ruby/test/ripper/test_files.rb @@ -0,0 +1,23 @@ +require 'test/unit' + +module TestRipper; end +class TestRipper::Generic < Test::Unit::TestCase + def test_parse_files + srcdir = File.expand_path("../../..", __FILE__) + assert_separately(%W[--disable-gem -rripper - #{srcdir}], + __FILE__, __LINE__, <<-'eom', timeout: Float::INFINITY) + TEST_RATIO = 0.05 # testing all files needs too long time... + class Parser < Ripper + PARSER_EVENTS.each {|n| eval "def on_#{n}(*args) r = [:#{n}, *args]; r.inspect; Object.new end" } + SCANNER_EVENTS.each {|n| eval "def on_#{n}(*args) r = [:#{n}, *args]; r.inspect; Object.new end" } + end + dir = ARGV.shift + for script in Dir["#{dir}/{lib,sample,ext,test}/**/*.rb"].sort + next if TEST_RATIO < rand + assert_nothing_raised("ripper failed to parse: #{script.inspect}") { + Parser.new(File.read(script), script).parse + } + end + eom + end +end |