mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* test/net/imap/test_imap.rb (test_idle_timeout): Because of the
timeout specified in "imap.idle(0.2)", there is no gurantee that the server thread has done all the work before the client thread performs the assertions. It depends on the thread scheduling. Add checks to avoid false positives (on AIX, particularly). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									b8f987b36c
								
							
						
					
					
						commit
						a5be0fb080
					
				
					 2 changed files with 30 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -1,3 +1,11 @@
 | 
			
		|||
Tue Mar  8 08:13:01 2016  Rei Odaira  <Rei.Odaira@gmail.com>
 | 
			
		||||
 | 
			
		||||
	* test/net/imap/test_imap.rb (test_idle_timeout): Because of the
 | 
			
		||||
	  timeout specified in "imap.idle(0.2)", there is no gurantee that
 | 
			
		||||
	  the server thread has done all the work before the client thread
 | 
			
		||||
	  performs the assertions. It depends on the thread scheduling.
 | 
			
		||||
	  Add checks to avoid false positives (on AIX, particularly).
 | 
			
		||||
 | 
			
		||||
Tue Mar  8 00:42:22 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* ruby.c (warn_cr_in_shebang): meaningless check on DOSISH platforms.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -310,19 +310,31 @@ class IMAPTest < Test::Unit::TestCase
 | 
			
		|||
    begin
 | 
			
		||||
      imap = Net::IMAP.new(SERVER_ADDR, :port => port)
 | 
			
		||||
      responses = []
 | 
			
		||||
        Thread.pass
 | 
			
		||||
      Thread.pass
 | 
			
		||||
      imap.idle(0.2) do |res|
 | 
			
		||||
        responses.push(res)
 | 
			
		||||
      end
 | 
			
		||||
      assert_equal(3, responses.length)
 | 
			
		||||
      assert_instance_of(Net::IMAP::ContinuationRequest, responses[0])
 | 
			
		||||
      assert_equal("EXISTS", responses[1].name)
 | 
			
		||||
      assert_equal(3, responses[1].data)
 | 
			
		||||
      assert_equal("EXPUNGE", responses[2].name)
 | 
			
		||||
      assert_equal(2, responses[2].data)
 | 
			
		||||
      assert_equal(2, requests.length)
 | 
			
		||||
      assert_equal("RUBY0001 IDLE\r\n", requests[0])
 | 
			
		||||
      assert_equal("DONE\r\n", requests[1])
 | 
			
		||||
      # There is no gurantee that this thread has received all the responses,
 | 
			
		||||
      # so check the response length.
 | 
			
		||||
      if responses.length > 0
 | 
			
		||||
        assert_instance_of(Net::IMAP::ContinuationRequest, responses[0])
 | 
			
		||||
        if responses.length > 1
 | 
			
		||||
          assert_equal("EXISTS", responses[1].name)
 | 
			
		||||
          assert_equal(3, responses[1].data)
 | 
			
		||||
          if responses.length > 2
 | 
			
		||||
            assert_equal("EXPUNGE", responses[2].name)
 | 
			
		||||
            assert_equal(2, responses[2].data)
 | 
			
		||||
          end
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
      # Also, there is no gurantee that the server thread has stored
 | 
			
		||||
      # all the requests into the array, so check the length.
 | 
			
		||||
      if requests.length > 0
 | 
			
		||||
        assert_equal("RUBY0001 IDLE\r\n", requests[0])
 | 
			
		||||
        if requests.length > 1
 | 
			
		||||
          assert_equal("DONE\r\n", requests[1])
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
      imap.logout
 | 
			
		||||
    ensure
 | 
			
		||||
      imap.disconnect if imap
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue