summaryrefslogtreecommitdiff
path: root/test/io
diff options
context:
space:
mode:
Diffstat (limited to 'test/io')
-rw-r--r--test/io/console/test_io_console.rb24
1 files changed, 16 insertions, 8 deletions
diff --git a/test/io/console/test_io_console.rb b/test/io/console/test_io_console.rb
index 74674ced9a..980478fcbf 100644
--- a/test/io/console/test_io_console.rb
+++ b/test/io/console/test_io_console.rb
@@ -181,14 +181,21 @@ class TestIO_Console < Test::Unit::TestCase
end
def test_getpass
+ # run_pty("p IO.console.getpass('> ')") do |r, w|
+ # assert_equal("> ", r.readpartial(10))
+ # w.print "asdf\n"
+ # assert_equal("\r\n", r.gets)
+ # assert_equal("\"asdf\"", r.gets.chomp)
+ # end
helper {|m, s|
begin
th = Thread.start {
- sleep 0.1
- m.print "asdf\n"
+ s.getpass("> ")
}
- assert_equal("asdf", s.getpass("> "))
- assert_equal("> \r\n", m.readpartial(10))
+ assert_equal("> ", m.readpartial(10))
+ m.print "asdf\n"
+ assert_equal("asdf", th.value)
+ assert_equal("\r\n", m.gets)
ensure
th.join rescue nil
end
@@ -285,17 +292,18 @@ class TestIO_Console < Test::Unit::TestCase
rescue RuntimeError
skip $!
else
- result = []
- n.times {result << r.gets.chomp}
- Process.wait(pid)
if block_given?
- yield result
+ yield r, w, pid
else
+ result = []
+ n.times {result << r.gets.chomp}
+ Process.wait(pid)
result
end
ensure
r.close if r
w.close if w
+ Process.wait(pid) if pid
end
end if defined?(PTY) and defined?(IO::console)