summaryrefslogtreecommitdiff
path: root/test/readline/test_readline.rb
diff options
context:
space:
mode:
authorLars Kanis <lars@greiz-reinsdorf.de>2020-01-18 21:22:24 +0100
committeraycabta <aycabta@gmail.com>2020-01-21 21:26:58 +0900
commitb0ca1fc21bbb9dac65a3b3f7b5935e691ece1501 (patch)
tree0127680ae58b77481f088bac020387e09b2a084d /test/readline/test_readline.rb
parentd1166c6d3942303b812c475129a84f1025b1db1f (diff)
Reline: Fix changed test results due to change to UTF-8 on Windows
In commit f8ea2860b0cac1aec79978e6c44168802958e8af the Reline encoding for native windows console was changed to hardcoded UTF-8. This caused failures in reline and readline tests, but they were hidden, because parallel ruby tests incorrectly used Reline::ANSI as IOGate. Tests failures were raised in single process mode, but not with -j switch. This patch corrects encodings on native Windows console.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/2848
Diffstat (limited to 'test/readline/test_readline.rb')
-rw-r--r--test/readline/test_readline.rb16
1 files changed, 12 insertions, 4 deletions
diff --git a/test/readline/test_readline.rb b/test/readline/test_readline.rb
index b77e3a0ead..a4b7cb4cc7 100644
--- a/test/readline/test_readline.rb
+++ b/test/readline/test_readline.rb
@@ -238,7 +238,7 @@ module BasetestReadline
append_character = Readline.completion_append_character
Readline.completion_append_character = ""
completion_case_fold = Readline.completion_case_fold
- locale = Encoding.find("locale")
+ locale = get_default_internal_encoding
if locale == Encoding::UTF_8
enc1 = Encoding::EUC_JP
else
@@ -545,7 +545,7 @@ module BasetestReadline
saved_completer_quote_characters = Readline.completer_quote_characters
saved_completer_word_break_characters = Readline.completer_word_break_characters
return unless Readline.respond_to?(:quoting_detection_proc=)
- unless Encoding.find("locale") == Encoding::UTF_8
+ unless Encoding.find("external") == Encoding::UTF_8
return if assert_under_utf8
skip 'this test needs UTF-8 locale'
end
@@ -595,7 +595,7 @@ module BasetestReadline
Readline.output = null
Readline.completion_proc = ->(text) do
['abcde', 'abc12'].map { |i|
- i.encode(Encoding.default_external)
+ i.encode(get_default_internal_encoding)
}
end
w.write("a\t\n")
@@ -620,7 +620,7 @@ module BasetestReadline
Readline.completion_append_character = '!'
Readline.completion_proc = ->(text) do
['abcde'].map { |i|
- i.encode(Encoding.default_external)
+ i.encode(get_default_internal_encoding)
}
end
w.write("a\t\n")
@@ -790,4 +790,12 @@ class TestRelineAsReadline < Test::Unit::TestCase
use_lib_reline
super
end
+
+ def get_default_internal_encoding
+ if RUBY_PLATFORM =~ /mswin|mingw/
+ Encoding.default_internal || Encoding::UTF_8
+ else
+ super
+ end
+ end
end