diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-02-08 01:58:31 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-02-08 01:58:31 +0000 |
commit | 36cfe460a09423f9507b6961c957a8f16dd7c474 (patch) | |
tree | 8335abf6adb94c476c51931e0615f94424a1ad33 /test | |
parent | 381821deea75d11a496401256c0267f2ff53183e (diff) |
merge revision(s) 34254,34256:
* ext/readline/readline.c (readline_attempted_completion_function):
empty completion result does not mean memory error.
* ext/readline/readline.c (readline_attempted_completion_function):
fix compile error.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34479 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/readline/test_readline.rb | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/test/readline/test_readline.rb b/test/readline/test_readline.rb index b2e67ec1b1..0dae5ba146 100644 --- a/test/readline/test_readline.rb +++ b/test/readline/test_readline.rb @@ -85,9 +85,7 @@ class TestReadline < Test::Unit::TestCase if !/EditLine/n.match(Readline::VERSION) def test_readline - stdin = Tempfile.new("test_readline_stdin") - stdout = Tempfile.new("test_readline_stdout") - begin + with_temp_stdio do |stdin, stdout| stdin.write("hello\n") stdin.close stdout.close @@ -114,9 +112,6 @@ class TestReadline < Test::Unit::TestCase replace_stdio(stdin.path, stdout.path) { Readline.readline("> ") } }.join end - ensure - stdin.close(true) - stdout.close(true) end end @@ -130,9 +125,7 @@ class TestReadline < Test::Unit::TestCase return end - stdin = Tempfile.new("test_readline_stdin") - stdout = Tempfile.new("test_readline_stdout") - begin + with_temp_stdio do |stdin, stdout| actual_text = nil actual_line_buffer = nil actual_point = nil @@ -156,9 +149,6 @@ class TestReadline < Test::Unit::TestCase assert_equal(Encoding.find("locale"), Readline.line_buffer.encoding) assert_equal(true, Readline.line_buffer.tainted?) assert_equal(21, Readline.point) - ensure - stdin.close(true) - stdout.close(true) end end end @@ -193,6 +183,19 @@ class TestReadline < Test::Unit::TestCase end end + def test_completion_proc_empty_result + with_temp_stdio do |stdin, stdout| + stdin.write("first\t") + stdin.flush + actual_text = nil + Readline.completion_proc = ->(text) {[]} + line = replace_stdio(stdin.path, stdout.path) { + Readline.readline("> ") + } + assert_equal("first", line) + end + end + def test_get_screen_size begin res = Readline.get_screen_size @@ -316,6 +319,15 @@ class TestReadline < Test::Unit::TestCase } end + def with_temp_stdio + stdin = Tempfile.new("test_readline_stdin") + stdout = Tempfile.new("test_readline_stdout") + yield stdin, stdout + ensure + stdin.close(true) if stdin + stdout.close(true) if stdout + end + def get_default_internal_encoding return Encoding.default_internal || Encoding.find("locale") end |