diff options
author | aycabta <aycabta@gmail.com> | 2021-09-10 08:15:00 +0900 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2021-09-10 09:06:19 +0900 |
commit | d1498f93ab0ef48f8cf8f6ec718317dab6cd11b6 (patch) | |
tree | 33e1b5c756e5dbdfa0bf26861d1027be08f72060 | |
parent | b00522608fb8ccdc81a5561dca1157e0f64922e8 (diff) |
[ruby/reline] Add a test that dialog doesn't crash when callback returns nil
https://github.com/ruby/reline/commit/2c6f604b98
-rwxr-xr-x | test/reline/yamatanooroti/multiline_repl | 1 | ||||
-rw-r--r-- | test/reline/yamatanooroti/test_rendering.rb | 10 |
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 |