summaryrefslogtreecommitdiff
path: root/jni/ruby/test/ripper/test_files.rb
diff options
context:
space:
mode:
authorJari Vetoniemi <jari.vetoniemi@indooratlas.com>2020-03-16 18:49:26 +0900
committerJari Vetoniemi <jari.vetoniemi@indooratlas.com>2020-03-30 00:39:06 +0900
commitfcbf63e62c627deae76c1b8cb8c0876c536ed811 (patch)
tree64cb17de3f41a2b6fef2368028fbd00349946994 /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.rb23
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