diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/test_curses.rb | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/test/test_curses.rb b/test/test_curses.rb deleted file mode 100644 index 00a099cee3..0000000000 --- a/test/test_curses.rb +++ /dev/null @@ -1,74 +0,0 @@ -require 'test/unit' -require_relative 'ruby/envutil' - -begin - require 'curses' - require 'pty' -rescue LoadError -end - -class TestCurses < Test::Unit::TestCase - def test_version - assert_instance_of(String, Curses::VERSION) - end -end if defined? Curses - -class TestCurses - def run_curses(src, input = nil, timeout: 1) - r, w, pid = PTY.spawn({"TERM"=>ENV["TERM"]||"dumb"}, EnvUtil.rubybin, "-e", <<-"src") -require 'timeout' -require 'curses' -include Curses -init_screen -begin - result = Timeout.timeout(#{timeout}) do - print "!" - #{src} - end -rescue Exception => e -ensure - close_screen - puts "", [Marshal.dump([result, e])].pack('m').delete("\n") - print "\\0" - $stdio.flush -end -src - begin - wait = r.readpartial(1) - if wait != "!" - wait << r.readpartial(1000) - raise "TERM: '#{ENV["TERM"]}'; #{wait}" - end - if input - w.print(input) - w.flush - end - res = r.gets("\0") - return unless res - res.chomp!("\0") - res, error = Marshal.load(res[/(.*)\Z/, 1].unpack('m')[0]) - raise error if error - return res - ensure - r.close unless r.closed? - w.close unless w.closed? - Process.wait(pid) - end - end - - def test_getch - assert_equal("a", run_curses("getch", "a")) - end - def test_getch_cbreak - assert_equal("a", run_curses("cbreak; getch", "a")) - end - def test_getch_nocbreak - assert_raise(Timeout::Error) {run_curses("nocbreak; getch", "a")} - end - def test_getch_crmode - assert_equal("a", run_curses("crmode; getch", "a")) - end - def test_getch_nocrmode - assert_raise(Timeout::Error) {run_curses("nocrmode; getch", "a")} - end -end if defined? TestCurses and defined? PTY |