From 16923c25a1d1d3bcb8177737a682cc1084de8c2b Mon Sep 17 00:00:00 2001 From: akr Date: Sun, 4 Jul 2010 12:01:46 +0000 Subject: * test/ruby/test_system.rb (test_syntax2): moved from sample/test.rb [ruby-dev:41721] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_system.rb | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'test/ruby/test_system.rb') diff --git a/test/ruby/test_system.rb b/test/ruby/test_system.rb index fbed36ad57..7a6d35477a 100644 --- a/test/ruby/test_system.rb +++ b/test/ruby/test_system.rb @@ -14,6 +14,19 @@ class TestSystem < Test::Unit::TestCase false end + def valid_syntax2?(code, fname) + p fname + code = code.dup.force_encoding("ascii-8bit") + code.sub!(/\A(?:\xef\xbb\xbf)?(\s*\#.*$)*(\n)?/n) { + "#$&#{"\n" if $1 && !$2}BEGIN{throw tag, :ok}\n" + } + code.force_encoding("us-ascii") + catch {|tag| eval(code, binding, fname, 0)} + rescue Exception + STDERR.puts $!.message + false + end + def test_system ruby = EnvUtil.rubybin assert_equal("foobar\n", `echo foobar`) @@ -107,6 +120,20 @@ class TestSystem < Test::Unit::TestCase end end + def test_syntax2 + if (dir = File.dirname(File.dirname(File.dirname(__FILE__)))) == '.' + dir = "" + else + dir << "/" + end + for script in Dir["#{dir}{lib,sample,ext,test}/**/*.rb"].sort + unless valid_syntax2? IO::read(script), script + STDERR.puts script + flunk("syntax error: #{script}") + end + end + end + def test_empty_evstr assert_equal("", eval('"#{}"', nil, __FILE__, __LINE__), "[ruby-dev:25113]") end -- cgit v1.2.3