mirror of
https://github.com/ruby/ruby.git
synced 2025-09-18 01:54:00 +02:00

be found (https://github.com/ruby/reline/pull/673) Fix https://github.com/ruby/reline/issues/447 https://github.com/ruby/reline/issues/543 This problem occurs when Fiddle can be loaded, curses can be loaded, and TERM is not registered in Terminfo. It should also occur at hardcopy terminals and when Terminfo information is low, but no such reports have been received. Reline should not abort the process because of missing Terminfo. Reline proceeds with `Reline::Terminfo.enabled? == false` when fiddle or curses cannot be loaded. And does the same when Terminfo is present but TERM is not.ebab2875f1/lib/reline/terminfo.rb (L156-L160)
You can check the operation with `TERM=foo bundle exec bin/console`.4ce247ce2b
61 lines
1.9 KiB
Ruby
61 lines
1.9 KiB
Ruby
require_relative 'helper'
|
|
require "reline"
|
|
|
|
class Reline::Terminfo::Test < Reline::TestCase
|
|
def setup
|
|
Reline::Terminfo.setupterm(0, 2)
|
|
end
|
|
|
|
def test_tigetstr
|
|
assert Reline::Terminfo.tigetstr('khome')
|
|
rescue Reline::Terminfo::TerminfoError => e
|
|
omit e.message
|
|
end
|
|
|
|
def test_tigetstr_with_error
|
|
assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetstr('unknown') }
|
|
assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetstr(nil) }
|
|
end
|
|
|
|
def test_tiparm
|
|
assert Reline::Terminfo.tigetstr('khome').tiparm
|
|
rescue Reline::Terminfo::TerminfoError => e
|
|
omit e.message
|
|
end
|
|
|
|
def test_tigetstr_with_param
|
|
assert Reline::Terminfo.tigetstr('cuu').include?('%p1%d')
|
|
rescue Reline::Terminfo::TerminfoError => e
|
|
omit e.message
|
|
end
|
|
|
|
def test_tiparm_with_param
|
|
assert Reline::Terminfo.tigetstr('cuu').tiparm(4649).include?('4649')
|
|
rescue Reline::Terminfo::TerminfoError => e
|
|
omit e.message
|
|
end
|
|
|
|
def test_tigetflag
|
|
assert_instance_of Integer, Reline::Terminfo.tigetflag('xenl')
|
|
rescue Reline::Terminfo::TerminfoError => e
|
|
omit e.message
|
|
end
|
|
|
|
def test_tigetflag_with_error
|
|
assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetflag('cuu') }
|
|
assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetflag('unknown') }
|
|
assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetflag(nil) }
|
|
end
|
|
|
|
def test_tigetnum
|
|
assert_instance_of Integer, Reline::Terminfo.tigetnum('colors')
|
|
rescue Reline::Terminfo::TerminfoError => e
|
|
omit e.message
|
|
end
|
|
|
|
def test_tigetnum_with_error
|
|
assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetnum('cuu') }
|
|
assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetnum('unknown') }
|
|
assert_raise(Reline::Terminfo::TerminfoError) { Reline::Terminfo.tigetnum(nil) }
|
|
end
|
|
end if Reline::Terminfo.enabled? && Reline::Terminfo.term_supported?
|