summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2021-09-10 08:15:00 +0900
committergit <svn-admin@ruby-lang.org>2021-09-10 09:06:19 +0900
commitd1498f93ab0ef48f8cf8f6ec718317dab6cd11b6 (patch)
tree33e1b5c756e5dbdfa0bf26861d1027be08f72060
parentb00522608fb8ccdc81a5561dca1157e0f64922e8 (diff)
[ruby/reline] Add a test that dialog doesn't crash when callback returns nil
https://github.com/ruby/reline/commit/2c6f604b98
-rwxr-xr-xtest/reline/yamatanooroti/multiline_repl1
-rw-r--r--test/reline/yamatanooroti/test_rendering.rb10
2 files changed, 11 insertions, 0 deletions
diff --git a/test/reline/yamatanooroti/multiline_repl b/test/reline/yamatanooroti/multiline_repl
index c944da8a38..49c7a56074 100755
--- a/test/reline/yamatanooroti/multiline_repl
+++ b/test/reline/yamatanooroti/multiline_repl
@@ -32,6 +32,7 @@ opt.on('--auto-indent') {
}
opt.on('--dialog VAL') { |v|
Reline.add_dialog_proc(:simple_dialog, lambda {
+ return nil if v.include?('nil')
if v.include?('simple')
contents = <<~RUBY.split("\n")
Ruby is...
diff --git a/test/reline/yamatanooroti/test_rendering.rb b/test/reline/yamatanooroti/test_rendering.rb
index d105405500..285a10c23b 100644
--- a/test/reline/yamatanooroti/test_rendering.rb
+++ b/test/reline/yamatanooroti/test_rendering.rb
@@ -1011,6 +1011,16 @@ begin
EOC
end
+ def test_dialog_callback_returns_nil
+ start_terminal(20, 30, %W{ruby -I#{@pwd}/lib #{@pwd}/test/reline/yamatanooroti/multiline_repl --dialog nil}, startup_message: 'Multiline REPL.')
+ write('a')
+ close
+ assert_screen(<<~'EOC')
+ Multiline REPL.
+ prompt> a
+ EOC
+ end
+
def write_inputrc(content)
File.open(@inputrc_file, 'w') do |f|
f.write content