summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-05-13 06:32:21 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-05-13 06:32:21 +0000
commit266a9ea5f3156e0272b6d652179dd0046d2ad82d (patch)
tree23fb547438813d4294250adfa3e0b737ca3e6be1 /test
parent4afa9ed0418555ba20158e55cf3bf9ec563fbecb (diff)
* test/ruby/test_process.rb: skip some tests on Windows.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_process.rb107
1 files changed, 62 insertions, 45 deletions
diff --git a/test/ruby/test_process.rb b/test/ruby/test_process.rb
index c95c58f788..2aa88af622 100644
--- a/test/ruby/test_process.rb
+++ b/test/ruby/test_process.rb
@@ -349,8 +349,13 @@ class TestProcess < Test::Unit::TestCase
with_tmpchdir {|d|
Process.wait Process.spawn(*ECHO["a"], STDOUT=>["out", File::WRONLY|File::CREAT|File::TRUNC, 0644])
assert_equal("a", File.read("out").chomp)
- Process.wait Process.spawn(*ECHO["0"], STDOUT=>["out", File::WRONLY|File::CREAT|File::APPEND, 0644])
- assert_equal("a\n0\n", File.read("out"))
+ if /mswin|mingw/ =~ RUBY_PLATFORM
+ # currently telling to child the file modes is not supported.
+ open("out", "a") {|f| f.write "0\n"}
+ else
+ Process.wait Process.spawn(*ECHO["0"], STDOUT=>["out", File::WRONLY|File::CREAT|File::APPEND, 0644])
+ assert_equal("a\n0\n", File.read("out"))
+ end
Process.wait Process.spawn(*SORT, STDIN=>["out", File::RDONLY, 0644],
STDOUT=>["out2", File::WRONLY|File::CREAT|File::TRUNC, 0644])
assert_equal("0\na\n", File.read("out2"))
@@ -374,12 +379,15 @@ class TestProcess < Test::Unit::TestCase
6=>1, 7=>:out, 8=>STDOUT,
9=>2, 10=>:err, 11=>STDERR)
assert_equal("ee", File.read("out").chomp)
- File.open("out", "w") {|f|
- h = {STDOUT=>f, f=>STDOUT}
- 3.upto(30) {|i| h[i] = STDOUT if f.fileno != i }
- Process.wait Process.spawn(*ECHO["f"], h)
- assert_equal("f", File.read("out").chomp)
- }
+ if /mswin|mingw/ !~ RUBY_PLATFORM
+ # passing non-stdio fds is not supported on Windows
+ File.open("out", "w") {|f|
+ h = {STDOUT=>f, f=>STDOUT}
+ 3.upto(30) {|i| h[i] = STDOUT if f.fileno != i }
+ Process.wait Process.spawn(*ECHO["f"], h)
+ assert_equal("f", File.read("out").chomp)
+ }
+ end
assert_raise(ArgumentError) {
Process.wait Process.spawn(*ECHO["f"], 1=>Process)
}
@@ -397,10 +405,13 @@ class TestProcess < Test::Unit::TestCase
Process.wait Process.spawn(*SORT, STDIN=>"out", STDOUT=>"out2")
assert_equal("ggg\nhhh\n", File.read("out2"))
- assert_raise(Errno::ENOENT) {
- Process.wait Process.spawn("non-existing-command", (3..60).to_a=>["err", File::WRONLY|File::CREAT])
- }
- assert_equal("", File.read("err"))
+ if /mswin|mingw/ !~ RUBY_PLATFORM
+ # passing non-stdio fds is not supported on Windows
+ assert_raise(Errno::ENOENT) {
+ Process.wait Process.spawn("non-existing-command", (3..60).to_a=>["err", File::WRONLY|File::CREAT])
+ }
+ assert_equal("", File.read("err"))
+ end
system(*ECHO["bb\naa\n"], STDOUT=>["out", "w"])
assert_equal("bb\naa\n", File.read("out"))
@@ -417,41 +428,45 @@ class TestProcess < Test::Unit::TestCase
w1.puts "b"
w1.close
assert_equal("a\nb\nc\n", r2.read)
+ r2.close
Process.wait(pid)
}
}
- with_pipes(5) {|pipes|
- ios = pipes.flatten
- h = {}
- ios.length.times {|i| h[ios[i]] = ios[(i-1)%ios.length] }
- h2 = h.invert
- rios = pipes.map {|r, w| r }
- wios = pipes.map {|r, w| w }
- child_wfds = wios.map {|w| h2[w].fileno }
- pid = spawn(RUBY, "-e",
- "[#{child_wfds.join(',')}].each {|fd| IO.new(fd, 'w').puts fd }", h)
- pipes.each {|r, w|
- assert_equal("#{h2[w].fileno}\n", r.gets)
+ if /mswin|mingw/ !~ RUBY_PLATFORM
+ # passing non-stdio fds is not supported on Windows
+ with_pipes(5) {|pipes|
+ ios = pipes.flatten
+ h = {}
+ ios.length.times {|i| h[ios[i]] = ios[(i-1)%ios.length] }
+ h2 = h.invert
+ rios = pipes.map {|r, w| r }
+ wios = pipes.map {|r, w| w }
+ child_wfds = wios.map {|w| h2[w].fileno }
+ pid = spawn(RUBY, "-e",
+ "[#{child_wfds.join(',')}].each {|fd| IO.new(fd, 'w').puts fd }", h)
+ pipes.each {|r, w|
+ assert_equal("#{h2[w].fileno}\n", r.gets)
+ }
+ Process.wait pid;
}
- Process.wait pid;
- }
- with_pipes(5) {|pipes|
- ios = pipes.flatten
- h = {}
- ios.length.times {|i| h[ios[i]] = ios[(i+1)%ios.length] }
- h2 = h.invert
- rios = pipes.map {|r, w| r }
- wios = pipes.map {|r, w| w }
- child_wfds = wios.map {|w| h2[w].fileno }
- pid = spawn(RUBY, "-e",
- "[#{child_wfds.join(',')}].each {|fd| IO.new(fd, 'w').puts fd }", h)
- pipes.each {|r, w|
- assert_equal("#{h2[w].fileno}\n", r.gets)
+ with_pipes(5) {|pipes|
+ ios = pipes.flatten
+ h = {}
+ ios.length.times {|i| h[ios[i]] = ios[(i+1)%ios.length] }
+ h2 = h.invert
+ rios = pipes.map {|r, w| r }
+ wios = pipes.map {|r, w| w }
+ child_wfds = wios.map {|w| h2[w].fileno }
+ pid = spawn(RUBY, "-e",
+ "[#{child_wfds.join(',')}].each {|fd| IO.new(fd, 'w').puts fd }", h)
+ pipes.each {|r, w|
+ assert_equal("#{h2[w].fileno}\n", r.gets)
+ }
+ Process.wait pid
}
- Process.wait pid;
- }
+ end
closed_fd = nil
with_pipes(5) {|pipes|
@@ -461,11 +476,13 @@ class TestProcess < Test::Unit::TestCase
assert_raise(Errno::EBADF) { Process.wait spawn(*TRUECOMMAND, closed_fd=>closed_fd) }
with_pipe {|r, w|
- w.close_on_exec = true
- pid = spawn(RUBY, "-e", "IO.new(#{w.fileno}, 'w').print 'a'", w=>w)
- w.close
- assert_equal("a", r.read)
- Process.wait pid
+ if w.respond_to?(:"close_on_exec=")
+ w.close_on_exec = true
+ pid = spawn(RUBY, "-e", "IO.new(#{w.fileno}, 'w').print 'a'", w=>w)
+ w.close
+ assert_equal("a", r.read)
+ Process.wait pid
+ end
}
system(*ECHO["funya"], :out=>"out")