summaryrefslogtreecommitdiff
path: root/spec/ruby/core/io/readlines_spec.rb
diff options
context:
space:
mode:
authorMike Dalessio <mike.dalessio@gmail.com>2023-06-07 10:05:04 -0400
committerNobuyoshi Nakada <nobu@ruby-lang.org>2023-08-10 09:38:11 +0900
commitd2343368ab7e270118ea6baa9c6418bfed83135c (patch)
tree0e25287d42464b9812033f613234f3baa11c5517 /spec/ruby/core/io/readlines_spec.rb
parent984109b8363790723693ec04897b1155d899115f (diff)
Deprecate Kernel#open and IO support for subprocess creation/forking
Deprecate Kernel#open and IO support for subprocess creation and forking. This deprecates subprocess creation and forking in - Kernel#open - URI.open - IO.binread - IO.foreach - IO.readlines - IO.read - IO.write This behavior is slated to be removed in Ruby 4.0 [Feature #19630]
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/7915
Diffstat (limited to 'spec/ruby/core/io/readlines_spec.rb')
-rw-r--r--spec/ruby/core/io/readlines_spec.rb21
1 files changed, 19 insertions, 2 deletions
diff --git a/spec/ruby/core/io/readlines_spec.rb b/spec/ruby/core/io/readlines_spec.rb
index d6c4d539cf..3a6ff3d0f3 100644
--- a/spec/ruby/core/io/readlines_spec.rb
+++ b/spec/ruby/core/io/readlines_spec.rb
@@ -180,13 +180,20 @@ describe "IO.readlines" do
platform_is :windows do
cmd = "|cmd.exe /C echo hello&echo line2"
end
- lines = IO.readlines(cmd)
+
+ lines = nil
+ suppress_warning do # https://bugs.ruby-lang.org/issues/19630
+ lines = IO.readlines(cmd)
+ end
lines.should == ["hello\n", "line2\n"]
end
platform_is_not :windows do
it "gets data from a fork when passed -" do
- lines = IO.readlines("|-")
+ lines = nil
+ suppress_warning do # https://bugs.ruby-lang.org/issues/19630
+ lines = IO.readlines("|-")
+ end
if lines # parent
lines.should == ["hello\n", "from a fork\n"]
@@ -199,6 +206,16 @@ describe "IO.readlines" do
end
end
+ ruby_version_is "3.3" do
+ # https://bugs.ruby-lang.org/issues/19630
+ it "warns about deprecation given a path with a pipe" do
+ cmd = "|echo ok"
+ -> {
+ IO.readlines(cmd)
+ }.should complain(/IO process creation with a leading '\|'/)
+ end
+ end
+
it_behaves_like :io_readlines, :readlines
it_behaves_like :io_readlines_options_19, :readlines
end