From 8a7e0aaaef3b19f90d6debe6781e4b3031f56237 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Tue, 21 Jan 2020 08:37:44 +0900 Subject: Warn non-nil `$/` [Feature #14240] --- spec/ruby/core/io/puts_spec.rb | 4 ++-- spec/ruby/core/io/readlines_spec.rb | 8 ++++---- spec/ruby/core/io/shared/each.rb | 4 ++-- spec/ruby/core/io/shared/readlines.rb | 4 ++-- spec/ruby/core/kernel/fixtures/classes.rb | 2 +- spec/ruby/core/kernel/warn_spec.rb | 3 ++- spec/ruby/core/string/chomp_spec.rb | 8 ++++++++ spec/ruby/core/string/shared/each_line.rb | 6 +++--- spec/ruby/language/predefined_spec.rb | 4 ++++ spec/ruby/library/stringio/gets_spec.rb | 5 +++-- spec/ruby/library/stringio/readline_spec.rb | 5 +++-- spec/ruby/library/stringio/readlines_spec.rb | 5 +++-- spec/ruby/library/stringio/shared/each.rb | 5 +++-- spec/ruby/optional/capi/globals_spec.rb | 4 ++-- 14 files changed, 42 insertions(+), 25 deletions(-) (limited to 'spec/ruby') diff --git a/spec/ruby/core/io/puts_spec.rb b/spec/ruby/core/io/puts_spec.rb index 3e4b877b7f..be220c4035 100644 --- a/spec/ruby/core/io/puts_spec.rb +++ b/spec/ruby/core/io/puts_spec.rb @@ -16,7 +16,7 @@ describe "IO#puts" do ScratchPad.clear @io.close if @io rm_r @name - $/ = @before_separator + suppress_warning {$/ = @before_separator} end it "writes just a newline when given no args" do @@ -105,7 +105,7 @@ describe "IO#puts" do end it "ignores the $/ separator global" do - $/ = ":" + suppress_warning {$/ = ":"} @io.puts(5).should == nil ScratchPad.recorded.should == "5\n" end diff --git a/spec/ruby/core/io/readlines_spec.rb b/spec/ruby/core/io/readlines_spec.rb index 0d4f002972..eb99eb8d3a 100644 --- a/spec/ruby/core/io/readlines_spec.rb +++ b/spec/ruby/core/io/readlines_spec.rb @@ -22,11 +22,11 @@ describe "IO#readlines" do describe "when passed no arguments" do before :each do - @sep, $/ = $/, " " + suppress_warning {@sep, $/ = $/, " "} end after :each do - $/ = @sep + suppress_warning {$/ = @sep} end it "returns an Array containing lines based on $/" do @@ -184,7 +184,7 @@ describe "IO.readlines" do after :each do Encoding.default_external = @external Encoding.default_internal = @internal - $/ = @dollar_slash + suppress_warning {$/ = @dollar_slash} end it "encodes lines using the default external encoding" do @@ -196,7 +196,7 @@ describe "IO.readlines" do it "encodes lines using the default internal encoding, when set" do Encoding.default_external = Encoding::UTF_8 Encoding.default_internal = Encoding::UTF_16 - $/ = $/.encode Encoding::UTF_16 + suppress_warning {$/ = $/.encode Encoding::UTF_16} lines = IO.readlines(@name) lines.all? { |s| s.encoding == Encoding::UTF_16 }.should be_true end diff --git a/spec/ruby/core/io/shared/each.rb b/spec/ruby/core/io/shared/each.rb index 0b2dfa3548..91766fbe03 100644 --- a/spec/ruby/core/io/shared/each.rb +++ b/spec/ruby/core/io/shared/each.rb @@ -168,12 +168,12 @@ describe :io_each_default_separator, shared: true do before :each do @io = IOSpecs.io_fixture "lines.txt" ScratchPad.record [] - @sep, $/ = $/, " " + suppress_warning {@sep, $/ = $/, " "} end after :each do @io.close if @io - $/ = @sep + suppress_warning {$/ = @sep} end it "uses $/ as the default line separator" do diff --git a/spec/ruby/core/io/shared/readlines.rb b/spec/ruby/core/io/shared/readlines.rb index de803f42e5..339684a5d4 100644 --- a/spec/ruby/core/io/shared/readlines.rb +++ b/spec/ruby/core/io/shared/readlines.rb @@ -60,11 +60,11 @@ describe :io_readlines_options_19, shared: true do end after :each do - $/ = @sep + suppress_warning {$/ = @sep} end it "defaults to $/ as the separator" do - $/ = " " + suppress_warning {$/ = " "} result = IO.send(@method, @name, 10, &@object) (result ? result : ScratchPad.recorded).should == IOSpecs.lines_space_separator_limit end diff --git a/spec/ruby/core/kernel/fixtures/classes.rb b/spec/ruby/core/kernel/fixtures/classes.rb index 2f2bbf1b23..623b45ca34 100644 --- a/spec/ruby/core/kernel/fixtures/classes.rb +++ b/spec/ruby/core/kernel/fixtures/classes.rb @@ -49,7 +49,7 @@ module KernelSpecs def self.chomp(str, method, sep="\n") code = "$_ = #{str.inspect}; $/ = #{sep.inspect}; #{method}; print $_" - IO.popen([*ruby_exe, "-n", "-e", code], "r+") do |io| + IO.popen([*ruby_exe, "-W0", "-n", "-e", code], "r+") do |io| io.puts io.close_write io.read diff --git a/spec/ruby/core/kernel/warn_spec.rb b/spec/ruby/core/kernel/warn_spec.rb index b0672997f6..774f4378ad 100644 --- a/spec/ruby/core/kernel/warn_spec.rb +++ b/spec/ruby/core/kernel/warn_spec.rb @@ -8,8 +8,9 @@ describe "Kernel#warn" do end after :each do - $VERBOSE = @before_verbose + $VERBOSE = nil $/ = @before_separator + $VERBOSE = @before_verbose end it "is a private method" do diff --git a/spec/ruby/core/string/chomp_spec.rb b/spec/ruby/core/string/chomp_spec.rb index 20a0925959..a893bf7759 100644 --- a/spec/ruby/core/string/chomp_spec.rb +++ b/spec/ruby/core/string/chomp_spec.rb @@ -6,11 +6,13 @@ describe "String#chomp" do describe "when passed no argument" do before do # Ensure that $/ is set to the default value + @verbose, $VERBOSE = $VERBOSE, nil @dollar_slash, $/ = $/, "\n" end after do $/ = @dollar_slash + $VERBOSE = @verbose end it "does not modify a String with no trailing carriage return or newline" do @@ -179,11 +181,13 @@ describe "String#chomp!" do describe "when passed no argument" do before do # Ensure that $/ is set to the default value + @verbose, $VERBOSE = $VERBOSE, nil @dollar_slash, $/ = $/, "\n" end after do $/ = @dollar_slash + $VERBOSE = @verbose end it "modifies self" do @@ -350,11 +354,13 @@ end describe "String#chomp" do before :each do + @verbose, $VERBOSE = $VERBOSE, nil @before_separator = $/ end after :each do $/ = @before_separator + $VERBOSE = @verbose end it "does not modify a multi-byte character" do @@ -379,11 +385,13 @@ end describe "String#chomp!" do before :each do + @verbose, $VERBOSE = $VERBOSE, nil @before_separator = $/ end after :each do $/ = @before_separator + $VERBOSE = @verbose end it "returns nil when the String is not modified" do diff --git a/spec/ruby/core/string/shared/each_line.rb b/spec/ruby/core/string/shared/each_line.rb index 843b123f57..d8c48054c4 100644 --- a/spec/ruby/core/string/shared/each_line.rb +++ b/spec/ruby/core/string/shared/each_line.rb @@ -84,7 +84,7 @@ describe :string_each_line, shared: true do end after :each do - $/ = @before_separator + suppress_warning {$/ = @before_separator} end it "as the separator when none is given" do @@ -96,10 +96,10 @@ describe :string_each_line, shared: true do expected = [] str.send(@method, sep) { |x| expected << x } - $/ = sep + suppress_warning {$/ = sep} actual = [] - str.send(@method) { |x| actual << x } + suppress_warning {str.send(@method) { |x| actual << x }} actual.should == expected end diff --git a/spec/ruby/language/predefined_spec.rb b/spec/ruby/language/predefined_spec.rb index 6f902eb822..e9fce1c358 100644 --- a/spec/ruby/language/predefined_spec.rb +++ b/spec/ruby/language/predefined_spec.rb @@ -541,6 +541,7 @@ $stdout IO The current standard output. Assignment to $std describe "Predefined global $/" do before :each do + @verbose, $VERBOSE = $VERBOSE, nil @dollar_slash = $/ @dollar_dash_zero = $-0 end @@ -548,6 +549,7 @@ describe "Predefined global $/" do after :each do $/ = @dollar_slash $-0 = @dollar_dash_zero + $VERBOSE = @verbose end it "can be assigned a String" do @@ -589,6 +591,7 @@ end describe "Predefined global $-0" do before :each do + @verbose, $VERBOSE = $VERBOSE, nil @dollar_slash = $/ @dollar_dash_zero = $-0 end @@ -596,6 +599,7 @@ describe "Predefined global $-0" do after :each do $/ = @dollar_slash $-0 = @dollar_dash_zero + $VERBOSE = @verbose end it "can be assigned a String" do diff --git a/spec/ruby/library/stringio/gets_spec.rb b/spec/ruby/library/stringio/gets_spec.rb index 69880672a3..97429e6a29 100644 --- a/spec/ruby/library/stringio/gets_spec.rb +++ b/spec/ruby/library/stringio/gets_spec.rb @@ -76,12 +76,13 @@ describe "StringIO#gets when passed no argument" do @io.gets.should == "this is\n" begin - old_sep, $/ = $/, " " + old_sep = $/ + suppress_warning {$/ = " "} @io.gets.should == "an " @io.gets.should == "example\nfor " @io.gets.should == "StringIO#gets" ensure - $/ = old_sep + suppress_warning {$/ = old_sep} end end diff --git a/spec/ruby/library/stringio/readline_spec.rb b/spec/ruby/library/stringio/readline_spec.rb index 9af633472e..94b67bc92d 100644 --- a/spec/ruby/library/stringio/readline_spec.rb +++ b/spec/ruby/library/stringio/readline_spec.rb @@ -64,12 +64,13 @@ describe "StringIO#readline when passed no argument" do @io.readline.should == "this is\n" begin - old_sep, $/ = $/, " " + old_sep = $/ + suppress_warning {$/ = " "} @io.readline.should == "an " @io.readline.should == "example\nfor " @io.readline.should == "StringIO#readline" ensure - $/ = old_sep + suppress_warning {$/ = old_sep} end end diff --git a/spec/ruby/library/stringio/readlines_spec.rb b/spec/ruby/library/stringio/readlines_spec.rb index 7f9f9f5846..4b007787e2 100644 --- a/spec/ruby/library/stringio/readlines_spec.rb +++ b/spec/ruby/library/stringio/readlines_spec.rb @@ -51,10 +51,11 @@ describe "StringIO#readlines when passed no argument" do it "returns an Array containing lines based on $/" do begin - old_sep, $/ = $/, " " + old_sep = $/; + suppress_warning {$/ = " "} @io.readlines.should == ["this ", "is\nan ", "example\nfor ", "StringIO#readlines"] ensure - $/ = old_sep + suppress_warning {$/ = old_sep} end end diff --git a/spec/ruby/library/stringio/shared/each.rb b/spec/ruby/library/stringio/shared/each.rb index c08d40344c..14b0a013b3 100644 --- a/spec/ruby/library/stringio/shared/each.rb +++ b/spec/ruby/library/stringio/shared/each.rb @@ -71,11 +71,12 @@ describe :stringio_each_no_arguments, shared: true do it "uses $/ as the default line separator" do seen = [] begin - old_rs, $/ = $/, " " + old_rs = $/ + suppress_warning {$/ = " "} @io.send(@method) {|s| seen << s } seen.should eql(["a ", "b ", "c ", "d ", "e\n1 ", "2 ", "3 ", "4 ", "5"]) ensure - $/ = old_rs + suppress_warning {$/ = old_rs} end end diff --git a/spec/ruby/optional/capi/globals_spec.rb b/spec/ruby/optional/capi/globals_spec.rb index ffc579023d..1e8ab0938f 100644 --- a/spec/ruby/optional/capi/globals_spec.rb +++ b/spec/ruby/optional/capi/globals_spec.rb @@ -59,7 +59,7 @@ describe "CApiGlobalSpecs" do end after :each do - $/ = @dollar_slash + suppress_warning {$/ = @dollar_slash} end it "returns \\n by default" do @@ -67,7 +67,7 @@ describe "CApiGlobalSpecs" do end it "returns the value of $/" do - $/ = "foo" + suppress_warning {$/ = "foo"} @f.rb_rs.should == "foo" end end -- cgit v1.2.3