mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	test/test_pty.rb: Close fds.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									b519ce9a8a
								
							
						
					
					
						commit
						6f39cf2d1e
					
				
					 1 changed files with 32 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -12,19 +12,26 @@ class TestPTY < Test::Unit::TestCase
 | 
			
		|||
  RUBY = EnvUtil.rubybin
 | 
			
		||||
 | 
			
		||||
  def test_spawn_without_block
 | 
			
		||||
    r, _, pid = PTY.spawn(RUBY, '-e', 'puts "a"')
 | 
			
		||||
    r, w, pid = PTY.spawn(RUBY, '-e', 'puts "a"')
 | 
			
		||||
  rescue RuntimeError
 | 
			
		||||
    skip $!
 | 
			
		||||
  else
 | 
			
		||||
    assert_equal("a\r\n", r.gets)
 | 
			
		||||
  ensure
 | 
			
		||||
    r.close if r
 | 
			
		||||
    w.close if w
 | 
			
		||||
    Process.wait pid if pid
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def test_spawn_with_block
 | 
			
		||||
    PTY.spawn(RUBY, '-e', 'puts "b"') {|r,w,pid|
 | 
			
		||||
      assert_equal("b\r\n", r.gets)
 | 
			
		||||
      Process.wait(pid)
 | 
			
		||||
      begin
 | 
			
		||||
        assert_equal("b\r\n", r.gets)
 | 
			
		||||
      ensure
 | 
			
		||||
        r.close
 | 
			
		||||
        w.close
 | 
			
		||||
        Process.wait(pid)
 | 
			
		||||
      end
 | 
			
		||||
    }
 | 
			
		||||
  rescue RuntimeError
 | 
			
		||||
    skip $!
 | 
			
		||||
| 
						 | 
				
			
			@ -33,8 +40,13 @@ class TestPTY < Test::Unit::TestCase
 | 
			
		|||
  def test_commandline
 | 
			
		||||
    commandline = Shellwords.join([RUBY, '-e', 'puts "foo"'])
 | 
			
		||||
    PTY.spawn(commandline) {|r,w,pid|
 | 
			
		||||
      assert_equal("foo\r\n", r.gets)
 | 
			
		||||
      Process.wait(pid)
 | 
			
		||||
      begin
 | 
			
		||||
        assert_equal("foo\r\n", r.gets)
 | 
			
		||||
      ensure
 | 
			
		||||
        r.close
 | 
			
		||||
        w.close
 | 
			
		||||
        Process.wait(pid)
 | 
			
		||||
      end
 | 
			
		||||
    }
 | 
			
		||||
  rescue RuntimeError
 | 
			
		||||
    skip $!
 | 
			
		||||
| 
						 | 
				
			
			@ -42,8 +54,13 @@ class TestPTY < Test::Unit::TestCase
 | 
			
		|||
 | 
			
		||||
  def test_argv0
 | 
			
		||||
    PTY.spawn([RUBY, "argv0"], '-e', 'puts "bar"') {|r,w,pid|
 | 
			
		||||
      assert_equal("bar\r\n", r.gets)
 | 
			
		||||
      Process.wait(pid)
 | 
			
		||||
      begin
 | 
			
		||||
        assert_equal("bar\r\n", r.gets)
 | 
			
		||||
      ensure
 | 
			
		||||
        r.close
 | 
			
		||||
        w.close
 | 
			
		||||
        Process.wait(pid)
 | 
			
		||||
      end
 | 
			
		||||
    }
 | 
			
		||||
  rescue RuntimeError
 | 
			
		||||
    skip $!
 | 
			
		||||
| 
						 | 
				
			
			@ -209,9 +226,14 @@ class TestPTY < Test::Unit::TestCase
 | 
			
		|||
      assert(s.close_on_exec?)
 | 
			
		||||
    }
 | 
			
		||||
    PTY.spawn(RUBY, '-e', '') {|r, w, pid|
 | 
			
		||||
      assert(r.close_on_exec?)
 | 
			
		||||
      assert(w.close_on_exec?)
 | 
			
		||||
      Process.wait(pid)
 | 
			
		||||
      begin
 | 
			
		||||
        assert(r.close_on_exec?)
 | 
			
		||||
        assert(w.close_on_exec?)
 | 
			
		||||
      ensure
 | 
			
		||||
        r.close
 | 
			
		||||
        w.close
 | 
			
		||||
        Process.wait(pid)
 | 
			
		||||
      end
 | 
			
		||||
    }
 | 
			
		||||
  rescue RuntimeError
 | 
			
		||||
    skip $!
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue