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:
		
							parent
							
								
									bae638ad5b
								
							
						
					
					
						commit
						bf7a32d220
					
				
					 5 changed files with 34 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue