summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authortomoya ishida <tomoyapenguin@gmail.com>2024-05-11 02:19:38 +0900
committergit <svn-admin@ruby-lang.org>2024-05-10 17:19:42 +0000
commit68b6fe70484b1fed2767fc9b838a487aa47d3560 (patch)
tree147e1c3ddccc1d7fa80cb93d261f57ae1ff866bd /test
parent3ec5a9325fe86f65326dcc8746db80a3982e7b80 (diff)
[ruby/reline] Avoid STDIN.winsize called in `require "reline"`
(https://github.com/ruby/reline/pull/703) https://github.com/ruby/reline/commit/21891c47c4
Diffstat (limited to 'test')
-rw-r--r--test/reline/test_reline.rb20
1 files changed, 19 insertions, 1 deletions
diff --git a/test/reline/test_reline.rb b/test/reline/test_reline.rb
index 40c880c11f..a20a5c9f44 100644
--- a/test/reline/test_reline.rb
+++ b/test/reline/test_reline.rb
@@ -378,10 +378,28 @@ class Reline::Test < Reline::TestCase
assert_equal("Reline::GeneralIO", out.chomp)
end
+ def test_require_reline_should_not_trigger_winsize
+ pend if win?
+ lib = File.expand_path("../../lib", __dir__)
+ code = <<~RUBY
+ require "io/console"
+ def STDIN.tty?; true; end
+ def STDOUT.tty?; true; end
+ def STDIN.winsize; raise; end
+ require("reline") && p(Reline.core.io_gate)
+ RUBY
+ out = IO.popen([{}, Reline.test_rubybin, "-I#{lib}", "-e", code], &:read)
+ assert_equal("Reline::ANSI", out.chomp)
+ end
+
+ def win?
+ /mswin|mingw/.match?(RUBY_PLATFORM)
+ end
+
def get_reline_encoding
if encoding = Reline.core.encoding
encoding
- elsif RUBY_PLATFORM =~ /mswin|mingw/
+ elsif win?
Encoding::UTF_8
else
Encoding::default_external