summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-29 15:52:51 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-29 15:52:51 +0000
commite4fdcb540c02f94188e1cda2b551198e395aac7e (patch)
tree8167809b5870f654a7399432ec3168d85fa5a3bd
parentb39a6bef9cb42dd7e31dcf6f11e5cbb32f825f50 (diff)
merge revision(s) 54025: [Backport #12167]
* 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/branches/ruby_2_3@54411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog8
-rw-r--r--test/net/imap/test_imap.rb32
-rw-r--r--version.h2
3 files changed, 31 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 33fc9febfe..85ef74170b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Wed Mar 30 00:52:47 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).
+
Wed Mar 30 00:41:42 2016 Rei Odaira <Rei.Odaira@gmail.com>
* test/socket/test_socket.rb (test_udp_recvmsg_truncation):
diff --git a/test/net/imap/test_imap.rb b/test/net/imap/test_imap.rb
index 3476b66c79..cdd9323c10 100644
--- a/test/net/imap/test_imap.rb
+++ b/test/net/imap/test_imap.rb
@@ -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
diff --git a/version.h b/version.h
index 55cb7eca3f..74d8d4d856 100644
--- a/version.h
+++ b/version.h
@@ -1,6 +1,6 @@
#define RUBY_VERSION "2.3.0"
#define RUBY_RELEASE_DATE "2016-03-30"
-#define RUBY_PATCHLEVEL 59
+#define RUBY_PATCHLEVEL 60
#define RUBY_RELEASE_YEAR 2016
#define RUBY_RELEASE_MONTH 3