1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Remove warnings of flip-flop deprecation from tests and specs

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
mame 2018-06-15 08:53:16 +00:00
parent bae638ad5b
commit bf7a32d220
5 changed files with 34 additions and 12 deletions

View file

@ -25,7 +25,7 @@ describe "The -e command line option" do
describe "with -n and a Fixnum range" do describe "with -n and a Fixnum range" do
before :each do before :each do
@script = "-ne 'print if %s' #{fixture(__FILE__, "conditional_range.txt")}" @script = "-W0 -ne 'print if %s' #{fixture(__FILE__, "conditional_range.txt")}"
end end
it "mimics an awk conditional by comparing an inclusive-end range with $." do it "mimics an awk conditional by comparing an inclusive-end range with $." do

View file

@ -235,19 +235,22 @@ describe "The if expression" do
describe "with a boolean range ('flip-flop' operator)" do describe "with a boolean range ('flip-flop' operator)" do
before :each do before :each do
ScratchPad.record [] ScratchPad.record []
@verbose = $VERBOSE
$VERBOSE = nil
end end
after :each do after :each do
ScratchPad.clear ScratchPad.clear
$VERBOSE = @verbose
end end
it "mimics an awk conditional with a single-element inclusive-end range" do it "mimics an awk conditional with a single-element inclusive-end range" do
10.times { |i| ScratchPad << i if (i == 4)..(i == 4) } eval "10.times { |i| ScratchPad << i if (i == 4)..(i == 4) }"
ScratchPad.recorded.should == [4] ScratchPad.recorded.should == [4]
end end
it "mimics an awk conditional with a many-element inclusive-end range" do it "mimics an awk conditional with a many-element inclusive-end range" do
10.times { |i| ScratchPad << i if (i == 4)..(i == 7) } eval "10.times { |i| ScratchPad << i if (i == 4)..(i == 7) }"
ScratchPad.recorded.should == [4, 5, 6, 7] ScratchPad.recorded.should == [4, 5, 6, 7]
end end
@ -257,12 +260,12 @@ describe "The if expression" do
end end
it "mimics a sed conditional with a many-element exclusive-end range" do it "mimics a sed conditional with a many-element exclusive-end range" do
10.times { |i| ScratchPad << i if (i == 4)...(i == 5) } eval "10.times { |i| ScratchPad << i if (i == 4)...(i == 5) }"
ScratchPad.recorded.should == [4, 5] ScratchPad.recorded.should == [4, 5]
end end
it "allows combining two flip-flops" do it "allows combining two flip-flops" do
10.times { |i| ScratchPad << i if (i == 4)...(i == 5) or (i == 7)...(i == 8) } eval "10.times { |i| ScratchPad << i if (i == 4)...(i == 5) or (i == 7)...(i == 8) }"
ScratchPad.recorded.should == [4, 5, 7, 8] ScratchPad.recorded.should == [4, 5, 7, 8]
end end
@ -280,18 +283,18 @@ describe "The if expression" do
it "evaluates the second conditions lazily with inclusive-end range" do it "evaluates the second conditions lazily with inclusive-end range" do
collector = proc { |i| ScratchPad << i } collector = proc { |i| ScratchPad << i }
10.times { |i| i if (i == 4)...collector[i] } eval "10.times { |i| i if (i == 4)...collector[i] }"
ScratchPad.recorded.should == [5] ScratchPad.recorded.should == [5]
end end
it "evaluates the second conditions lazily with exclusive-end range" do it "evaluates the second conditions lazily with exclusive-end range" do
collector = proc { |i| ScratchPad << i } collector = proc { |i| ScratchPad << i }
10.times { |i| i if (i == 4)..collector[i] } eval "10.times { |i| i if (i == 4)..collector[i] }"
ScratchPad.recorded.should == [4] ScratchPad.recorded.should == [4]
end end
it "scopes state by flip-flop" do it "scopes state by flip-flop" do
store_me = proc { |i| ScratchPad << i if (i == 4)..(i == 7) } store_me = eval("proc { |i| ScratchPad << i if (i == 4)..(i == 7) }")
store_me[1] store_me[1]
store_me[4] store_me[4]
proc { store_me[1] }.call proc { store_me[1] }.call

View file

@ -301,8 +301,14 @@ describe "Operators" do
from = 1 from = 1
to = 2 to = 2
# These are Range instances, not flip-flop # These are Range instances, not flip-flop
(from..to ? 3 : 4).should == 3 @verbose = $VERBOSE
(from...to ? 3 : 4).should == 3 $VERBOSE = nil
begin
(eval("from..to") ? 3 : 4).should == 3
(eval("from...to") ? 3 : 4).should == 3
ensure
$VERBOSE = @verbose
end
end end
it "? : is right-associative" do it "? : is right-associative" do

View file

@ -2,7 +2,16 @@
require 'test/unit' require 'test/unit'
class TestFlip < Test::Unit::TestCase class TestFlip < Test::Unit::TestCase
def setup
@verbose_bak, $VERBOSE = $VERBOSE, nil
end
def teardown
$VERBOSE = @verbose_bak
end
def test_flip_flop def test_flip_flop
eval <<-END
assert_equal [4,5], (1..9).select {|n| true if (n==4)..(n==5)} assert_equal [4,5], (1..9).select {|n| true if (n==4)..(n==5)}
assert_equal [4,5], (1..9).select {|n| true if (n==4)...(n==5)} assert_equal [4,5], (1..9).select {|n| true if (n==4)...(n==5)}
assert_equal [2], (1..9).select {|n| true if (n==2)..(n%2).zero?} assert_equal [2], (1..9).select {|n| true if (n==2)..(n%2).zero?}
@ -10,6 +19,7 @@ class TestFlip < Test::Unit::TestCase
assert_equal [4,5,7,8], (1..9).select {|n| true if (n==4)...(n==5) or (n==7)...(n==8)} assert_equal [4,5,7,8], (1..9).select {|n| true if (n==4)...(n==5) or (n==7)...(n==8)}
assert_equal [nil, 2, 3, 4, nil], (1..5).map {|x| x if (x==2..x==4)} assert_equal [nil, 2, 3, 4, nil], (1..5).map {|x| x if (x==2..x==4)}
assert_equal [1, nil, nil, nil, 5], (1..5).map {|x| x if !(x==2..x==4)} assert_equal [1, nil, nil, nil, 5], (1..5).map {|x| x if !(x==2..x==4)}
END
end end
def test_hidden_key def test_hidden_key
@ -25,13 +35,13 @@ class TestFlip < Test::Unit::TestCase
def test_shared_eval def test_shared_eval
bug7671 = '[ruby-core:51296]' bug7671 = '[ruby-core:51296]'
vs = (1..9).to_a vs = (1..9).to_a
vs.select {|n| if n==2..n==16 then 1 end} eval("vs.select {|n| if n==2..n==16 then 1 end}")
v = eval("vs.select {|n| if n==3..n==6 then 1 end}") v = eval("vs.select {|n| if n==3..n==6 then 1 end}")
assert_equal([*3..6], v, bug7671) assert_equal([*3..6], v, bug7671)
end end
def test_shared_thread def test_shared_thread
ff = proc {|n| true if n==3..n==5} ff = eval("proc {|n| true if n==3..n==5}")
v = 1..9 v = 1..9
a = true a = true
th = Thread.new { th = Thread.new {

View file

@ -94,10 +94,13 @@ class TestJIT < Test::Unit::TestCase
end end
def test_compile_insn_setspecial def test_compile_insn_setspecial
verbose_bak, $VERBOSE = $VERBOSE, nil
assert_compile_once("#{<<~"begin;"}\n#{<<~"end;"}", result_inspect: 'true', insns: %i[setspecial]) assert_compile_once("#{<<~"begin;"}\n#{<<~"end;"}", result_inspect: 'true', insns: %i[setspecial])
begin; begin;
true if nil.nil?..nil.nil? true if nil.nil?..nil.nil?
end; end;
ensure
$VERBOSE = verbose_bak
end end
def test_compile_insn_instancevariable def test_compile_insn_instancevariable