summaryrefslogtreecommitdiff
path: root/test/ruby/test_syntax.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_syntax.rb')
-rw-r--r--test/ruby/test_syntax.rb17
1 files changed, 13 insertions, 4 deletions
diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb
index cbaae5a249..384c9bd378 100644
--- a/test/ruby/test_syntax.rb
+++ b/test/ruby/test_syntax.rb
@@ -2,14 +2,23 @@ require 'test/unit'
require_relative 'envutil'
class TestSyntax < Test::Unit::TestCase
- def test_syntax
- assert_nothing_raised(Exception) do
- for script in Dir[File.expand_path("../../../{lib,sample,ext,test}/**/*.rb", __FILE__)].sort
+ def assert_syntax_files(test)
+ srcdir = File.expand_path("../../..", __FILE__)
+ srcdir = File.join(srcdir, test)
+ assert_separately(%W[--disable-gem -r#{__dir__}/envutil - #{srcdir}],
+ __FILE__, __LINE__, <<-'eom', timeout: Float::INFINITY)
+ dir = ARGV.shift
+ for script in Dir["#{dir}/**/*.rb"].sort
assert_valid_syntax(IO::read(script), script)
end
- end
+ eom
end
+ def test_syntax_lib; assert_syntax_files("lib"); end
+ def test_syntax_sample; assert_syntax_files("sample"); end
+ def test_syntax_ext; assert_syntax_files("ext"); end
+ def test_syntax_test; assert_syntax_files("test"); end
+
def test_defined_empty_argument
bug8220 = '[ruby-core:53999] [Bug #8220]'
assert_ruby_status(%w[--disable-gem], 'puts defined? ()', bug8220)