зеркало из https://github.com/github/ruby.git
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:
Родитель
bae638ad5b
Коммит
bf7a32d220
|
@ -25,7 +25,7 @@ describe "The -e command line option" do
|
|||
|
||||
describe "with -n and a Fixnum range" 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
|
||||
|
||||
it "mimics an awk conditional by comparing an inclusive-end range with $." do
|
||||
|
|
|
@ -235,19 +235,22 @@ describe "The if expression" do
|
|||
describe "with a boolean range ('flip-flop' operator)" do
|
||||
before :each do
|
||||
ScratchPad.record []
|
||||
@verbose = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
end
|
||||
|
||||
after :each do
|
||||
ScratchPad.clear
|
||||
$VERBOSE = @verbose
|
||||
end
|
||||
|
||||
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]
|
||||
end
|
||||
|
||||
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]
|
||||
end
|
||||
|
||||
|
@ -257,12 +260,12 @@ describe "The if expression" do
|
|||
end
|
||||
|
||||
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]
|
||||
end
|
||||
|
||||
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]
|
||||
end
|
||||
|
||||
|
@ -280,18 +283,18 @@ describe "The if expression" do
|
|||
|
||||
it "evaluates the second conditions lazily with inclusive-end range" do
|
||||
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]
|
||||
end
|
||||
|
||||
it "evaluates the second conditions lazily with exclusive-end range" do
|
||||
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]
|
||||
end
|
||||
|
||||
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[4]
|
||||
proc { store_me[1] }.call
|
||||
|
|
|
@ -301,8 +301,14 @@ describe "Operators" do
|
|||
from = 1
|
||||
to = 2
|
||||
# These are Range instances, not flip-flop
|
||||
(from..to ? 3 : 4).should == 3
|
||||
(from...to ? 3 : 4).should == 3
|
||||
@verbose = $VERBOSE
|
||||
$VERBOSE = nil
|
||||
begin
|
||||
(eval("from..to") ? 3 : 4).should == 3
|
||||
(eval("from...to") ? 3 : 4).should == 3
|
||||
ensure
|
||||
$VERBOSE = @verbose
|
||||
end
|
||||
end
|
||||
|
||||
it "? : is right-associative" do
|
||||
|
|
|
@ -2,7 +2,16 @@
|
|||
require 'test/unit'
|
||||
|
||||
class TestFlip < Test::Unit::TestCase
|
||||
def setup
|
||||
@verbose_bak, $VERBOSE = $VERBOSE, nil
|
||||
end
|
||||
|
||||
def teardown
|
||||
$VERBOSE = @verbose_bak
|
||||
end
|
||||
|
||||
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 [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 [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)}
|
||||
END
|
||||
end
|
||||
|
||||
def test_hidden_key
|
||||
|
@ -25,13 +35,13 @@ class TestFlip < Test::Unit::TestCase
|
|||
def test_shared_eval
|
||||
bug7671 = '[ruby-core:51296]'
|
||||
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}")
|
||||
assert_equal([*3..6], v, bug7671)
|
||||
end
|
||||
|
||||
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
|
||||
a = true
|
||||
th = Thread.new {
|
||||
|
|
|
@ -94,10 +94,13 @@ class TestJIT < Test::Unit::TestCase
|
|||
end
|
||||
|
||||
def test_compile_insn_setspecial
|
||||
verbose_bak, $VERBOSE = $VERBOSE, nil
|
||||
assert_compile_once("#{<<~"begin;"}\n#{<<~"end;"}", result_inspect: 'true', insns: %i[setspecial])
|
||||
begin;
|
||||
true if nil.nil?..nil.nil?
|
||||
end;
|
||||
ensure
|
||||
$VERBOSE = verbose_bak
|
||||
end
|
||||
|
||||
def test_compile_insn_instancevariable
|
||||
|
|
Загрузка…
Ссылка в новой задаче