diff options
author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-29 04:06:12 +0000 |
---|---|---|
committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-08-29 04:06:12 +0000 |
commit | 11dbedfaad4a9a9521ece2198a8dc491678b1902 (patch) | |
tree | 4806dc0ff0c3827ecc40921838c4507340cfdb3a /ruby_1_8_6/test/ruby/test_system.rb | |
parent | 29e8d8b439b34c2a394407dc598fc01d14be0c20 (diff) |
add tag v1_8_6_5001v1_8_6_5001
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_6_5001@13304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby_1_8_6/test/ruby/test_system.rb')
-rw-r--r-- | ruby_1_8_6/test/ruby/test_system.rb | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/ruby_1_8_6/test/ruby/test_system.rb b/ruby_1_8_6/test/ruby/test_system.rb new file mode 100644 index 0000000000..f3a71598f7 --- /dev/null +++ b/ruby_1_8_6/test/ruby/test_system.rb @@ -0,0 +1,64 @@ +require 'test/unit' +$:.replace([File.dirname(File.expand_path(__FILE__))] | $:) +require 'envutil' + +class TestSystem < Test::Unit::TestCase + def valid_syntax?(code, fname) + eval("BEGIN {return true}\n#{code}", nil, fname, 0) + end + + def test_system + ruby = EnvUtil.rubybin + assert_equal("foobar\n", `echo foobar`) + assert_equal('foobar', `#{ruby} -e 'print "foobar"'`) + + tmp = open("script_tmp", "w") + tmp.print "print $zzz\n"; + tmp.close + + assert_equal('true', `#{ruby} -s script_tmp -zzz`) + assert_equal('555', `#{ruby} -s script_tmp -zzz=555`) + + tmp = open("script_tmp", "w") + tmp.print "#! /usr/local/bin/ruby -s\n"; + tmp.print "print $zzz\n"; + tmp.close + + assert_equal('678', `#{ruby} script_tmp -zzz=678`) + + tmp = open("script_tmp", "w") + tmp.print "this is a leading junk\n"; + tmp.print "#! /usr/local/bin/ruby -s\n"; + tmp.print "print $zzz\n"; + tmp.print "__END__\n"; + tmp.print "this is a trailing junk\n"; + tmp.close + + assert_equal('nil', `#{ruby} -x script_tmp`) + assert_equal('555', `#{ruby} -x script_tmp -zzz=555`) + + tmp = open("script_tmp", "w") + for i in 1..5 + tmp.print i, "\n" + end + tmp.close + + `#{ruby} -i.bak -pe 'sub(/^[0-9]+$/){$&.to_i * 5}' script_tmp` + tmp = open("script_tmp", "r") + while tmp.gets + assert_equal(0, $_.to_i % 5) + end + tmp.close + + File.unlink "script_tmp" or `/bin/rm -f "script_tmp"` + File.unlink "script_tmp.bak" or `/bin/rm -f "script_tmp.bak"` + end + + def test_syntax + assert_nothing_raised(Exception) do + for script in Dir[File.expand_path("../../../{lib,sample,ext}/**/*.rb", __FILE__)] + valid_syntax? IO::read(script), script + end + end + end +end |