From 045491d5be06b615d66d3f66cca2b5d2bc3c1929 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Fri, 17 Sep 2010 07:52:21 +0000 Subject: [PATCH] * 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 --- ChangeLog | 8 +++++++ test/io/console/test_io_console.rb | 34 ++++++++++++++++++++---------- 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7e8222a313..1f4ce4507e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Fri Sep 17 16:48:49 2010 URABE Shyouhei + + * 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 * lib/tracer.rb: count only non-internal libraries in stack trace, diff --git a/test/io/console/test_io_console.rb b/test/io/console/test_io_console.rb index fdeea60399..ce23d99fd4 100644 --- a/test/io/console/test_io_console.rb +++ b/test/io/console/test_io_console.rb @@ -4,7 +4,7 @@ require 'test/unit' class TestIO_Console < Test::Unit::TestCase def test_raw - PTY.open {|m, s| + helper {|m, s| s.print "abc\n" assert_equal("abc\r\n", m.gets) s.raw { @@ -17,7 +17,7 @@ class TestIO_Console < Test::Unit::TestCase end def test_echo - PTY.open {|m, s| + helper {|m, s| assert(s.echo?) m.print "a" assert_equal("a", m.readpartial(10)) @@ -25,7 +25,7 @@ class TestIO_Console < Test::Unit::TestCase end def test_noecho - PTY.open {|m, s| + helper {|m, s| s.noecho { assert(!s.echo?) m.print "a" @@ -37,7 +37,7 @@ class TestIO_Console < Test::Unit::TestCase end def test_noecho2 - PTY.open {|m, s| + helper {|m, s| assert(s.echo?) m.print "a\n" sleep 0.1 @@ -63,7 +63,7 @@ class TestIO_Console < Test::Unit::TestCase end def test_setecho - PTY.open {|m, s| + helper {|m, s| assert(s.echo?) s.echo = false m.print "a" @@ -75,7 +75,7 @@ class TestIO_Console < Test::Unit::TestCase end def test_setecho2 - PTY.open {|m, s| + helper {|m, s| assert(s.echo?) m.print "a\n" sleep 0.1 @@ -101,7 +101,7 @@ class TestIO_Console < Test::Unit::TestCase end def test_iflush - PTY.open {|m, s| + helper {|m, s| m.print "a" s.iflush m.print "b\n" @@ -110,7 +110,7 @@ class TestIO_Console < Test::Unit::TestCase end def test_oflush - PTY.open {|m, s| + helper {|m, s| s.print "a" s.oflush # oflush may be issued after "a" is already sent. s.print "b" @@ -119,7 +119,7 @@ class TestIO_Console < Test::Unit::TestCase end def test_ioflush - PTY.open {|m, s| + helper {|m, s| m.print "a" s.ioflush m.print "b\n" @@ -128,7 +128,7 @@ class TestIO_Console < Test::Unit::TestCase end def test_ioflush2 - PTY.open {|m, s| + helper {|m, s| s.print "a" s.ioflush # ioflush may be issued after "a" is already sent. s.print "b" @@ -137,11 +137,23 @@ class TestIO_Console < Test::Unit::TestCase end def test_winsize - PTY.open {|m, s| + helper {|m, s| begin assert_equal([0, 0], s.winsize) rescue Errno::EINVAL # OpenSolaris 2009.06 TIOCGWINSZ causes Errno::EINVAL before TIOCSWINSZ. 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