Skip to content

Commit f4893ae

Browse files
committed
WIP
1 parent 8cb1847 commit f4893ae

File tree

1 file changed

+154
-154
lines changed

1 file changed

+154
-154
lines changed

test/process.rb

Lines changed: 154 additions & 154 deletions
Original file line numberDiff line numberDiff line change
@@ -106,181 +106,181 @@ def assert_windows(*args, &block)
106106
assert_true Process.pid > 0
107107
end
108108

109-
assert('Process.spawn') do
110-
assert_raise(ArgumentError) { spawn }
111-
assert_raise(TypeError) { spawn 123 }
109+
# assert('Process.spawn') do
110+
# assert_raise(ArgumentError) { spawn }
111+
# assert_raise(TypeError) { spawn 123 }
112+
113+
# pid = spawn 'exit 0'
114+
# wait_for_pid(pid)
115+
116+
# assert_kind_of Integer, pid
117+
# assert_true pid > 0
118+
# assert_not_equal $PID, pid
119+
# assert_kind_of Process::Status, $?
120+
# assert_equal $?.pid, pid
121+
122+
# var = "#{ENV['RAND']}x"
123+
# pid = spawn("echo #{var} > tmp/spawn.txt")
124+
125+
# wait_for_pid(pid)
126+
# assert_equal var, read('tmp/spawn.txt')
127+
# end
128+
129+
# assert('Process.spawn', 'env') do
130+
# var = "x#{ENV['RAND']}"
131+
# env = OS.posix? ? '$MYVAR' : '%MYVAR%'
132+
133+
# pid = spawn({ MYVAR: var }, "echo #{env} > tmp/spawn.txt")
134+
135+
# wait_for_pid(pid)
136+
# assert_equal var, read('tmp/spawn.txt')
137+
# end
138+
139+
# # TODO: More tests for edge cases! whatif no valid pipe,
140+
# assert('Process.spawn', 'pipe') do
141+
# begin
142+
# var = ENV['RAND']
143+
# pip = IO.sysopen('tmp/pipe.txt', 'w')
144+
145+
# pid = spawn("echo #{var}", out: pip)
112146

113-
pid = spawn 'exit 0'
114-
wait_for_pid(pid)
147+
# wait_for_pid(pid)
148+
# assert_equal var, read('tmp/pipe.txt')
149+
150+
# env = OS.posix? ? '$MYVAR' : '%MYVAR%'
151+
# pid = spawn({ MYVAR: var }, "echo #{env}", out: pip)
152+
153+
# wait_for_pid(pid)
154+
# assert_equal var * 2, read('tmp/pipe.txt')
115155

116-
assert_kind_of Integer, pid
117-
assert_true pid > 0
118-
assert_not_equal $PID, pid
119-
assert_kind_of Process::Status, $?
120-
assert_equal $?.pid, pid
156+
# pid = spawn 'ruby', '-v', out: pip
121157

122-
var = "#{ENV['RAND']}x"
123-
pid = spawn("echo #{var} > tmp/spawn.txt")
158+
# wait_for_pid(pid)
159+
# assert_include read('tmp/pipe.txt'), 'ruby'
160+
# ensure
161+
# IO._sysclose(pip) if OS.posix?
162+
# end
163+
# end
164+
165+
# assert('Process.spawn', 'pipe error') do
166+
# begin
167+
# pip = IO.sysopen('tmp/pipe.err', 'w')
168+
# pid = spawn('ruby unknown', err: pip)
169+
170+
# wait_for_pid(pid)
171+
# assert_false read('tmp/pipe.err').empty?
172+
# ensure
173+
# IO._sysclose(pip) if OS.posix?
174+
# end
175+
# end
176+
177+
# assert('Process.exec', 'invalid signatures') do
178+
# assert_raise(ArgumentError) { exec }
179+
# assert_raise(TypeError) { exec 123 }
180+
# end
124181

125-
wait_for_pid(pid)
126-
assert_equal var, read('tmp/spawn.txt')
127-
end
128-
129-
assert('Process.spawn', 'env') do
130-
var = "x#{ENV['RAND']}"
131-
env = OS.posix? ? '$MYVAR' : '%MYVAR%'
132-
133-
pid = spawn({ MYVAR: var }, "echo #{env} > tmp/spawn.txt")
134-
135-
wait_for_pid(pid)
136-
assert_equal var, read('tmp/spawn.txt')
137-
end
138-
139-
# TODO: More tests for edge cases! whatif no valid pipe,
140-
assert('Process.spawn', 'pipe') do
141-
begin
142-
var = ENV['RAND']
143-
pip = IO.sysopen('tmp/pipe.txt', 'w')
144-
145-
pid = spawn("echo #{var}", out: pip)
146-
147-
wait_for_pid(pid)
148-
assert_equal var, read('tmp/pipe.txt')
149-
150-
env = OS.posix? ? '$MYVAR' : '%MYVAR%'
151-
pid = spawn({ MYVAR: var }, "echo #{env}", out: pip)
152-
153-
wait_for_pid(pid)
154-
assert_equal var * 2, read('tmp/pipe.txt')
155-
156-
pid = spawn 'ruby', '-v', out: pip
157-
158-
wait_for_pid(pid)
159-
assert_include read('tmp/pipe.txt'), 'ruby'
160-
ensure
161-
IO._sysclose(pip) if OS.posix?
162-
end
163-
end
164-
165-
assert('Process.spawn', 'pipe error') do
166-
begin
167-
pip = IO.sysopen('tmp/pipe.err', 'w')
168-
pid = spawn('ruby unknown', err: pip)
169-
170-
wait_for_pid(pid)
171-
assert_false read('tmp/pipe.err').empty?
172-
ensure
173-
IO._sysclose(pip) if OS.posix?
174-
end
175-
end
176-
177-
assert('Process.exec', 'invalid signatures') do
178-
assert_raise(ArgumentError) { exec }
179-
assert_raise(TypeError) { exec 123 }
180-
end
182+
# assert_not_windows('Process.exec') do
183+
# var = ENV['RAND']
184+
# pid = fork { exec({ MYVAR: var }, 'echo $MYVAR > tmp/exec.txt') }
181185

182-
assert_not_windows('Process.exec') do
183-
var = ENV['RAND']
184-
pid = fork { exec({ MYVAR: var }, 'echo $MYVAR > tmp/exec.txt') }
186+
# wait_for_pid(pid)
187+
# assert_equal var, read('tmp/exec.txt')
185188

186-
wait_for_pid(pid)
187-
assert_equal var, read('tmp/exec.txt')
189+
# var = "x#{var}"
190+
# pid = fork { exec '/bin/sh', '-c', "echo #{var} > tmp/exec.txt" }
188191

189-
var = "x#{var}"
190-
pid = fork { exec '/bin/sh', '-c', "echo #{var} > tmp/exec.txt" }
192+
# wait_for_pid(pid)
193+
# assert_equal var, read('tmp/exec.txt')
194+
# end
191195

192-
wait_for_pid(pid)
193-
assert_equal var, read('tmp/exec.txt')
194-
end
195-
196-
assert_not_windows('Process.exec', '$SHELL') do
197-
['/bin/bash', '/bin/sh'].each do |shell|
198-
ENV['SHELL'] = shell
199-
200-
pid = fork { exec 'echo $SHELL > tmp/exec.txt' }
201-
wait_for_pid(pid)
202-
203-
assert_equal shell, read('tmp/exec.txt')
204-
end
205-
end
206-
207-
assert('Process.kill') do
208-
assert_nothing_raised { Process.kill(:EXIT, Process.pid) }
209-
assert_nothing_raised { Process.kill('EXIT', Process.pid) }
210-
assert_nothing_raised { Process.kill(0, Process.pid) }
211-
assert_equal 1, Process.kill(0, Process.pid), 'killed an innocent process'
212-
assert_equal 2, Process.kill(0, Process.pid, Process.pid)
213-
assert_raise(TypeError) { Process.kill(0.0, Process.pid) }
214-
assert_raise(TypeError) { Process.kill(0, 'Process.pid') }
215-
assert_raise(ArgumentError) { Process.kill(:UNKNOWN, Process.pid) }
216-
end
217-
218-
assert('Process.wait2') do
219-
pid = spawn('sleep 2')
220-
p, st = Process.waitpid2(pid, Process::WNOHANG)
221-
222-
assert_nil p
223-
assert_nil st
196+
# assert_not_windows('Process.exec', '$SHELL') do
197+
# ['/bin/bash', '/bin/sh'].each do |shell|
198+
# ENV['SHELL'] = shell
224199

225-
Process.kill :KILL, pid
200+
# pid = fork { exec 'echo $SHELL > tmp/exec.txt' }
201+
# wait_for_pid(pid)
226202

227-
loop do
228-
p, st = Process.waitpid2(pid, Process::WNOHANG)
229-
break if p
230-
end
231-
232-
assert_equal pid, p
233-
assert_kind_of Process::Status, st
234-
assert_include [9, nil], st.termsig
235-
end
203+
# assert_equal shell, read('tmp/exec.txt')
204+
# end
205+
# end
236206

237-
assert('Process.waitall') do
238-
assert_true Process.waitall.empty?
207+
# assert('Process.kill') do
208+
# assert_nothing_raised { Process.kill(:EXIT, Process.pid) }
209+
# assert_nothing_raised { Process.kill('EXIT', Process.pid) }
210+
# assert_nothing_raised { Process.kill(0, Process.pid) }
211+
# assert_equal 1, Process.kill(0, Process.pid), 'killed an innocent process'
212+
# assert_equal 2, Process.kill(0, Process.pid, Process.pid)
213+
# assert_raise(TypeError) { Process.kill(0.0, Process.pid) }
214+
# assert_raise(TypeError) { Process.kill(0, 'Process.pid') }
215+
# assert_raise(ArgumentError) { Process.kill(:UNKNOWN, Process.pid) }
216+
# end
239217

240-
pids = []
241-
pids << spawn('exit 2')
242-
pids << spawn('exit 1')
243-
pids << spawn('exit 0')
218+
# assert('Process.wait2') do
219+
# pid = spawn('sleep 2')
220+
# p, st = Process.waitpid2(pid, Process::WNOHANG)
244221

245-
a = Process.waitall
222+
# assert_nil p
223+
# assert_nil st
246224

247-
pids.each do |pid|
248-
assert_raise(RuntimeError) { Process.kill(0, pid) }
249-
end
225+
# Process.kill :KILL, pid
250226

251-
assert_kind_of Array, a
252-
assert_equal 3, a.size
227+
# loop do
228+
# p, st = Process.waitpid2(pid, Process::WNOHANG)
229+
# break if p
230+
# end
253231

254-
pids.each do |pid|
255-
pid_status = a.find { |i| i[0] == pid }
232+
# assert_equal pid, p
233+
# assert_kind_of Process::Status, st
234+
# assert_include [9, nil], st.termsig
235+
# end
256236

257-
assert_kind_of Array, pid_status
258-
assert_equal 2, pid_status.size
259-
assert_equal pid, pid_status.first
260-
assert_kind_of Process::Status, pid_status.last
261-
end
262-
end
237+
# assert('Process.waitall') do
238+
# assert_true Process.waitall.empty?
239+
240+
# pids = []
241+
# pids << spawn('exit 2')
242+
# pids << spawn('exit 1')
243+
# pids << spawn('exit 0')
263244

264-
assert('Process.system') do
265-
assert_raise(ArgumentError) { system }
266-
assert_raise(TypeError) { system 123 }
245+
# a = Process.waitall
267246

268-
assert_true system 'exit 0'
269-
assert_equal 0, $?.exitstatus
270-
assert_false system 'exit 1'
271-
assert_equal 1, $?.exitstatus
247+
# pids.each do |pid|
248+
# assert_raise(RuntimeError) { Process.kill(0, pid) }
249+
# end
250+
251+
# assert_kind_of Array, a
252+
# assert_equal 3, a.size
253+
254+
# pids.each do |pid|
255+
# pid_status = a.find { |i| i[0] == pid }
256+
257+
# assert_kind_of Array, pid_status
258+
# assert_equal 2, pid_status.size
259+
# assert_equal pid, pid_status.first
260+
# assert_kind_of Process::Status, pid_status.last
261+
# end
262+
# end
263+
264+
# assert('Process.system') do
265+
# assert_raise(ArgumentError) { system }
266+
# assert_raise(TypeError) { system 123 }
267+
268+
# assert_true system 'exit 0'
269+
# assert_equal 0, $?.exitstatus
270+
# assert_false system 'exit 1'
271+
# assert_equal 1, $?.exitstatus
272272

273-
assert_nothing_raised { system 'exit' }
273+
# assert_nothing_raised { system 'exit' }
274274

275-
var = ENV['RAND']
276-
env = OS.posix? ? '$MYVAR' : '%MYVAR%'
275+
# var = ENV['RAND']
276+
# env = OS.posix? ? '$MYVAR' : '%MYVAR%'
277277

278-
system({ MYVAR: var }, "echo #{env} > tmp/system.txt")
278+
# system({ MYVAR: var }, "echo #{env} > tmp/system.txt")
279279

280-
assert_equal var, read('tmp/system.txt')
281-
end
280+
# assert_equal var, read('tmp/system.txt')
281+
# end
282282

283-
assert_windows('Process.fork') do
284-
assert_false Process.respond_to? :fork
285-
assert_false Kernel.respond_to? :fork
286-
end
283+
# assert_windows('Process.fork') do
284+
# assert_false Process.respond_to? :fork
285+
# assert_false Kernel.respond_to? :fork
286+
# end

0 commit comments

Comments
 (0)