From 6264225c7ec1b9c4dbd3a64fd8c5875890e0f8b3 Mon Sep 17 00:00:00 2001 From: k0kubun Date: Thu, 23 Aug 2018 23:50:48 +0000 Subject: test/readline/test_readline.rb: fix readline test for mingw. test/lib/minitest/unit.rb: Add 'guards' for mingw. Removed still-unused method `mswin?` from original patch. [Fix GH-1941] From: MSP-Greg git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64525 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/lib/minitest/unit.rb | 8 ++++++++ test/readline/test_readline.rb | 14 +++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) (limited to 'test') diff --git a/test/lib/minitest/unit.rb b/test/lib/minitest/unit.rb index e8c22c60b7..81b9d7deae 100644 --- a/test/lib/minitest/unit.rb +++ b/test/lib/minitest/unit.rb @@ -1171,6 +1171,14 @@ module MiniTest def windows? platform = RUBY_PLATFORM /mswin|mingw/ =~ platform end + + ## + # Is this running on mingw? + + def mingw? platform = RUBY_PLATFORM + /mingw/ =~ platform + end + end ## diff --git a/test/readline/test_readline.rb b/test/readline/test_readline.rb index 0e6f006caf..cfa90fe3f1 100644 --- a/test/readline/test_readline.rb +++ b/test/readline/test_readline.rb @@ -13,17 +13,11 @@ class TestReadline < Test::Unit::TestCase SAVED_ENV = %w[COLUMNS LINES] def setup - if ENV.key?('APPVEYOR') && /mingw/ =~ RUBY_PLATFORM - skip 'failing on AppVeyor MinGW build for now' - end @saved_env = ENV.values_at(*SAVED_ENV) @inputrc, ENV[INPUTRC] = ENV[INPUTRC], IO::NULL end def teardown - if ENV.key?('APPVEYOR') && /mingw/ =~ RUBY_PLATFORM - return - end ENV[INPUTRC] = @inputrc Readline.instance_variable_set("@completion_proc", nil) begin @@ -418,6 +412,7 @@ class TestReadline < Test::Unit::TestCase end if !/EditLine|\A4\.3\z/n.match(Readline::VERSION) def test_input_metachar + skip("Won't pass on mingw w/readline 7.0.005 [ruby-core:45682]") if mingw? bug6601 = '[ruby-core:45682]' Readline::HISTORY << "hello" wo = nil @@ -427,7 +422,7 @@ class TestReadline < Test::Unit::TestCase end assert_equal("hello", line, bug6601) ensure - wo.close + wo&.close Readline.delete_text Readline::HISTORY.clear end if !/EditLine/n.match(Readline::VERSION) @@ -589,6 +584,11 @@ class TestReadline < Test::Unit::TestCase Tempfile.create("test_readline_stdin") {|stdin| Tempfile.create("test_readline_stdout") {|stdout| yield stdin, stdout + if windows? + # needed since readline holds refs to tempfiles, can't delete on Windows + Readline.input = STDIN + Readline.output = STDOUT + end } } end -- cgit v1.2.3