2
$:.replace([File.dirname(File.expand_path(__FILE__))] | $:)
5
class TestSystem < Test::Unit::TestCase
6
def valid_syntax?(code, fname)
7
eval("BEGIN {return true}\n#{code}", nil, fname, 0)
11
ruby = EnvUtil.rubybin
12
assert_equal("foobar\n", `echo foobar`)
13
assert_equal('foobar', `#{ruby} -e 'print "foobar"'`)
15
tmp = open("script_tmp", "w")
16
tmp.print "print $zzz\n";
19
assert_equal('true', `#{ruby} -s script_tmp -zzz`)
20
assert_equal('555', `#{ruby} -s script_tmp -zzz=555`)
22
tmp = open("script_tmp", "w")
23
tmp.print "#! /usr/local/bin/ruby -s\n";
24
tmp.print "print $zzz\n";
27
assert_equal('678', `#{ruby} script_tmp -zzz=678`)
29
tmp = open("script_tmp", "w")
30
tmp.print "this is a leading junk\n";
31
tmp.print "#! /usr/local/bin/ruby -s\n";
32
tmp.print "print $zzz\n";
33
tmp.print "__END__\n";
34
tmp.print "this is a trailing junk\n";
37
assert_equal('nil', `#{ruby} -x script_tmp`)
38
assert_equal('555', `#{ruby} -x script_tmp -zzz=555`)
40
tmp = open("script_tmp", "w")
46
`#{ruby} -i.bak -pe 'sub(/^[0-9]+$/){$&.to_i * 5}' script_tmp`
47
tmp = open("script_tmp", "r")
49
assert_equal(0, $_.to_i % 5)
53
File.unlink "script_tmp" or `/bin/rm -f "script_tmp"`
54
File.unlink "script_tmp.bak" or `/bin/rm -f "script_tmp.bak"`
58
assert_nothing_raised(Exception) do
59
for script in Dir[File.expand_path("../../../{lib,sample,ext}/**/*.rb", __FILE__)]
60
valid_syntax? IO::read(script), script