mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			931 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			931 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
assert_equal '0', %q{
 | 
						|
  begin
 | 
						|
    GC.stress = true
 | 
						|
    pid = fork {}
 | 
						|
    Process.wait pid
 | 
						|
    $?.to_i
 | 
						|
  rescue NotImplementedError
 | 
						|
    0
 | 
						|
  end
 | 
						|
}, '[ruby-dev:32404]'
 | 
						|
 | 
						|
assert_finish 10, %q{
 | 
						|
  begin
 | 
						|
    children = (1..10).map{
 | 
						|
      Thread.start{fork{}}.value
 | 
						|
    }
 | 
						|
    while !children.empty? and pid = Process.wait
 | 
						|
      children.delete(pid)
 | 
						|
    end
 | 
						|
  rescue NotImplementedError
 | 
						|
  end
 | 
						|
}, '[ruby-core:22158]'
 | 
						|
 | 
						|
assert_normal_exit(<<'End', '[ruby-dev:37934]')
 | 
						|
  Thread.new { sleep 1; Thread.kill Thread.main }
 | 
						|
  Process.setrlimit(:NPROC, 1)
 | 
						|
  fork {}
 | 
						|
End
 | 
						|
 | 
						|
assert_equal 'ok', %q{
 | 
						|
  begin
 | 
						|
    if pid1 = fork
 | 
						|
      sleep 1
 | 
						|
      Process.kill("USR1", pid1)
 | 
						|
      _, s = Process.wait2(pid1)
 | 
						|
      s.success? ? :ok : :ng
 | 
						|
    else
 | 
						|
      if pid2 = fork
 | 
						|
        trap("USR1") { Time.now.to_s }
 | 
						|
        Process.wait2(pid2)
 | 
						|
      else
 | 
						|
        sleep 2
 | 
						|
      end
 | 
						|
      exit 0
 | 
						|
    end
 | 
						|
  rescue NotImplementedError
 | 
						|
    :ok
 | 
						|
  end
 | 
						|
}, '[ruby-core:28924]'
 |