diff options
author | tomoya ishida <[email protected]> | 2024-05-11 02:19:38 +0900 |
---|---|---|
committer | git <[email protected]> | 2024-05-10 17:19:42 +0000 |
commit | 68b6fe70484b1fed2767fc9b838a487aa47d3560 (patch) | |
tree | 147e1c3ddccc1d7fa80cb93d261f57ae1ff866bd /test | |
parent | 3ec5a9325fe86f65326dcc8746db80a3982e7b80 (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.rb | 20 |
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 |