aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2020-07-12 23:29:45 +0900
committeraycabta <aycabta@gmail.com>2020-08-18 19:08:21 +0900
commit0bc748db3685d867f54a4e1b589b732608a1ca69 (patch)
tree8b74e0a6c6bb493b0c27075aeca19eb42dd918c6 /test
parent568615d3952f332d971b00ba30eeedc3606a51c0 (diff)
downloadruby-0bc748db3685d867f54a4e1b589b732608a1ca69.tar.gz
[ruby/reline] Call #start_terminal after generating temporary inputrc
because inputrc will be read when starting up https://github.com/ruby/reline/commit/0a30464385
Diffstat (limited to 'test')
-rw-r--r--test/reline/yamatanooroti/test_rendering.rb34
1 files changed, 28 insertions, 6 deletions
diff --git a/test/reline/yamatanooroti/test_rendering.rb b/test/reline/yamatanooroti/test_rendering.rb
index 329fce4772..080bc3624d 100644
--- a/test/reline/yamatanooroti/test_rendering.rb
+++ b/test/reline/yamatanooroti/test_rendering.rb
@@ -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