@@ -106,181 +106,181 @@ def assert_windows(*args, &block)
106106 assert_true Process . pid > 0
107107end
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