1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* test/io/console/test_io_console.rb (TestIO_Console::helper):

PTY.open is not guaranteed to work.  On my machine opening a
	  pty is prohibited via process control group.  On those cases
	  exceptions shall occur, and that doesn't mean our fault.
	  Skip those tests on such situations.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29281 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
shyouhei 2010-09-17 07:52:21 +00:00
parent 0f0d0dcdb3
commit 045491d5be
2 changed files with 31 additions and 11 deletions

View file

@ -1,3 +1,11 @@
Fri Sep 17 16:48:49 2010 URABE Shyouhei <shyouhei@ruby-lang.org>
* test/io/console/test_io_console.rb (TestIO_Console::helper):
PTY.open is not guaranteed to work. On my machine opening a
pty is prohibited via process control group. On those cases
exceptions shall occur, and that doesn't mean our fault.
Skip those tests on such situations.
Fri Sep 17 08:30:27 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> Fri Sep 17 08:30:27 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/tracer.rb: count only non-internal libraries in stack trace, * lib/tracer.rb: count only non-internal libraries in stack trace,

View file

@ -4,7 +4,7 @@ require 'test/unit'
class TestIO_Console < Test::Unit::TestCase class TestIO_Console < Test::Unit::TestCase
def test_raw def test_raw
PTY.open {|m, s| helper {|m, s|
s.print "abc\n" s.print "abc\n"
assert_equal("abc\r\n", m.gets) assert_equal("abc\r\n", m.gets)
s.raw { s.raw {
@ -17,7 +17,7 @@ class TestIO_Console < Test::Unit::TestCase
end end
def test_echo def test_echo
PTY.open {|m, s| helper {|m, s|
assert(s.echo?) assert(s.echo?)
m.print "a" m.print "a"
assert_equal("a", m.readpartial(10)) assert_equal("a", m.readpartial(10))
@ -25,7 +25,7 @@ class TestIO_Console < Test::Unit::TestCase
end end
def test_noecho def test_noecho
PTY.open {|m, s| helper {|m, s|
s.noecho { s.noecho {
assert(!s.echo?) assert(!s.echo?)
m.print "a" m.print "a"
@ -37,7 +37,7 @@ class TestIO_Console < Test::Unit::TestCase
end end
def test_noecho2 def test_noecho2
PTY.open {|m, s| helper {|m, s|
assert(s.echo?) assert(s.echo?)
m.print "a\n" m.print "a\n"
sleep 0.1 sleep 0.1
@ -63,7 +63,7 @@ class TestIO_Console < Test::Unit::TestCase
end end
def test_setecho def test_setecho
PTY.open {|m, s| helper {|m, s|
assert(s.echo?) assert(s.echo?)
s.echo = false s.echo = false
m.print "a" m.print "a"
@ -75,7 +75,7 @@ class TestIO_Console < Test::Unit::TestCase
end end
def test_setecho2 def test_setecho2
PTY.open {|m, s| helper {|m, s|
assert(s.echo?) assert(s.echo?)
m.print "a\n" m.print "a\n"
sleep 0.1 sleep 0.1
@ -101,7 +101,7 @@ class TestIO_Console < Test::Unit::TestCase
end end
def test_iflush def test_iflush
PTY.open {|m, s| helper {|m, s|
m.print "a" m.print "a"
s.iflush s.iflush
m.print "b\n" m.print "b\n"
@ -110,7 +110,7 @@ class TestIO_Console < Test::Unit::TestCase
end end
def test_oflush def test_oflush
PTY.open {|m, s| helper {|m, s|
s.print "a" s.print "a"
s.oflush # oflush may be issued after "a" is already sent. s.oflush # oflush may be issued after "a" is already sent.
s.print "b" s.print "b"
@ -119,7 +119,7 @@ class TestIO_Console < Test::Unit::TestCase
end end
def test_ioflush def test_ioflush
PTY.open {|m, s| helper {|m, s|
m.print "a" m.print "a"
s.ioflush s.ioflush
m.print "b\n" m.print "b\n"
@ -128,7 +128,7 @@ class TestIO_Console < Test::Unit::TestCase
end end
def test_ioflush2 def test_ioflush2
PTY.open {|m, s| helper {|m, s|
s.print "a" s.print "a"
s.ioflush # ioflush may be issued after "a" is already sent. s.ioflush # ioflush may be issued after "a" is already sent.
s.print "b" s.print "b"
@ -137,11 +137,23 @@ class TestIO_Console < Test::Unit::TestCase
end end
def test_winsize def test_winsize
PTY.open {|m, s| helper {|m, s|
begin begin
assert_equal([0, 0], s.winsize) assert_equal([0, 0], s.winsize)
rescue Errno::EINVAL # OpenSolaris 2009.06 TIOCGWINSZ causes Errno::EINVAL before TIOCSWINSZ. rescue Errno::EINVAL # OpenSolaris 2009.06 TIOCGWINSZ causes Errno::EINVAL before TIOCSWINSZ.
end end
} }
end end
private
def helper
m, s = PTY.open
rescue RuntimeError
skip $!
else
yield m, s
ensure
m.close if m
s.close if s
end
end end