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

[ruby/reline] Call #start_terminal after generating temporary inputrc

because inputrc will be read when starting up

https://github.com/ruby/reline/commit/0a30464385
This commit is contained in:
aycabta 2020-07-12 23:29:45 +09:00
parent 568615d395
commit 0bc748db36

View file

@ -6,7 +6,7 @@ begin
class Reline::TestRendering < Yamatanooroti::TestCase
def setup
@pwd = Dir.pwd
@tmpdir = File.join(Dir.tmpdir, "test_reline_config_#{$$}")
@tmpdir = File.join(File.expand_path(Dir.tmpdir), "test_reline_config_#{$$}")
begin
Dir.mkdir(@tmpdir)
rescue Errno::EEXIST
@ -14,20 +14,20 @@ begin
Dir.mkdir(@tmpdir)
end
Dir.chdir(@tmpdir)
inputrc_backup = ENV['INPUTRC']
@inputrc_file = ENV['INPUTRC'] = File.expand_path('temporaty_inputrc')
@inputrc_backup = ENV['INPUTRC']
@inputrc_file = ENV['INPUTRC'] = File.join(@tmpdir, 'temporaty_inputrc')
File.unlink(@inputrc_file) if File.exist?(@inputrc_file)
start_terminal(5, 30, %W{ruby -I#{@pwd}/lib #{@pwd}/bin/multiline_repl})
sleep 0.5
ENV['INPUTRC'] = inputrc_backup
end
def teardown
Dir.chdir(@pwd)
FileUtils.rm_rf(@tmpdir)
ENV['INPUTRC'] = @inputrc_backup
end
def test_history_back
start_terminal(5, 30, %W{ruby -I#{@pwd}/lib #{@pwd}/bin/multiline_repl})
sleep 0.5
write(":a\n")
write("\C-p")
close
@ -40,6 +40,8 @@ begin
end
def test_backspace
start_terminal(5, 30, %W{ruby -I#{@pwd}/lib #{@pwd}/bin/multiline_repl})
sleep 0.5
write(":abc\C-h\n")
close
assert_screen(<<~EOC)
@ -51,6 +53,8 @@ begin
end
def test_autowrap
start_terminal(5, 30, %W{ruby -I#{@pwd}/lib #{@pwd}/bin/multiline_repl})
sleep 0.5
write('01234567890123456789012')
close
assert_screen(<<~EOC)
@ -59,6 +63,24 @@ begin
2
EOC
end
def test_prompt
File.open(@inputrc_file, 'w') do |f|
f.write <<~'LINES'
"abc": "123"
LINES
end
start_terminal(5, 30, %W{ruby -I#{@pwd}/lib #{@pwd}/bin/multiline_repl})
sleep 0.5
write("abc\n")
close
assert_screen(<<~EOC)
Multiline REPL.
prompt> 123
=> 123
prompt>
EOC
end
end
rescue LoadError, NameError
# On Ruby repository, this test suit doesn't run because Ruby repo doesn't