diff options
author | Lars Kanis <lars@greiz-reinsdorf.de> | 2020-01-18 21:22:24 +0100 |
---|---|---|
committer | aycabta <aycabta@gmail.com> | 2020-01-21 21:26:58 +0900 |
commit | b0ca1fc21bbb9dac65a3b3f7b5935e691ece1501 (patch) | |
tree | 0127680ae58b77481f088bac020387e09b2a084d /test/readline | |
parent | d1166c6d3942303b812c475129a84f1025b1db1f (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')
-rw-r--r-- | test/readline/test_readline.rb | 16 | ||||
-rw-r--r-- | test/readline/test_readline_history.rb | 8 |
2 files changed, 20 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 diff --git a/test/readline/test_readline_history.rb b/test/readline/test_readline_history.rb index 34ab745eb0..509f1d687e 100644 --- a/test/readline/test_readline_history.rb +++ b/test/readline/test_readline_history.rb @@ -275,4 +275,12 @@ class TestRelineAsReadlineHistory < 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 |