mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* test/ruby/test_process.rb (TestProcess#with_stdin): defined.
(TestProcess#test_argv0_noarg): don't use redirect_fds. [ruby-dev:34647] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
121ae83741
commit
435ac5e58d
2 changed files with 30 additions and 8 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
Sun May 11 17:58:45 2008 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
|
* test/ruby/test_process.rb (TestProcess#with_stdin): defined.
|
||||||
|
(TestProcess#test_argv0_noarg): don't use redirect_fds.
|
||||||
|
[ruby-dev:34647]
|
||||||
|
|
||||||
Sun May 11 17:57:36 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Sun May 11 17:57:36 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* configure.in (MINIRUBY): should not include extension library path.
|
* configure.in (MINIRUBY): should not include extension library path.
|
||||||
|
|
|
@ -799,27 +799,43 @@ class TestProcess < Test::Unit::TestCase
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def with_stdin(filename)
|
||||||
|
open(filename) {|f|
|
||||||
|
begin
|
||||||
|
old = STDIN.dup
|
||||||
|
begin
|
||||||
|
STDIN.reopen(filename)
|
||||||
|
yield
|
||||||
|
ensure
|
||||||
|
STDIN.reopen(old)
|
||||||
|
end
|
||||||
|
ensure
|
||||||
|
old.close
|
||||||
|
end
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
def test_argv0_noarg
|
def test_argv0_noarg
|
||||||
with_tmpchdir {|d|
|
with_tmpchdir {|d|
|
||||||
open("t", "w") {|f| f.print "exit true" }
|
open("t", "w") {|f| f.print "exit true" }
|
||||||
open("f", "w") {|f| f.print "exit false" }
|
open("f", "w") {|f| f.print "exit false" }
|
||||||
|
|
||||||
assert_equal(true, system([RUBY, "qaz"], STDIN=>"t"))
|
with_stdin("t") { assert_equal(true, system([RUBY, "qaz"])) }
|
||||||
assert_equal(false, system([RUBY, "wsx"], STDIN=>"f"))
|
with_stdin("f") { assert_equal(false, system([RUBY, "wsx"])) }
|
||||||
|
|
||||||
Process.wait spawn([RUBY, "edc"], STDIN=>"t")
|
with_stdin("t") { Process.wait spawn([RUBY, "edc"]) }
|
||||||
assert($?.success?)
|
assert($?.success?)
|
||||||
Process.wait spawn([RUBY, "rfv"], STDIN=>"f")
|
with_stdin("f") { Process.wait spawn([RUBY, "rfv"]) }
|
||||||
assert(!$?.success?)
|
assert(!$?.success?)
|
||||||
|
|
||||||
IO.popen([[RUBY, "tgb"], STDIN=>"t"]) {|io| assert_equal("", io.read) }
|
with_stdin("t") { IO.popen([[RUBY, "tgb"]]) {|io| assert_equal("", io.read) } }
|
||||||
assert($?.success?)
|
assert($?.success?)
|
||||||
IO.popen([[RUBY, "yhn"], STDIN=>"f"]) {|io| assert_equal("", io.read) }
|
with_stdin("f") { IO.popen([[RUBY, "yhn"]]) {|io| assert_equal("", io.read) } }
|
||||||
assert(!$?.success?)
|
assert(!$?.success?)
|
||||||
|
|
||||||
status = run_in_child "exec([#{RUBY.dump}, 'ujm'], STDIN=>'t')"
|
status = run_in_child "STDIN.reopen('t'); exec([#{RUBY.dump}, 'ujm'])"
|
||||||
assert(status.success?)
|
assert(status.success?)
|
||||||
status = run_in_child "exec([#{RUBY.dump}, 'ik,'], STDIN=>'f')"
|
status = run_in_child "STDIN.reopen('f'); exec([#{RUBY.dump}, 'ik,'])"
|
||||||
assert(!status.success?)
|
assert(!status.success?)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue