From 6eb8acae90ce774c054f0ea9b393df5a7601ffd7 Mon Sep 17 00:00:00 2001 From: hsbt Date: Tue, 27 May 2014 10:03:09 +0000 Subject: * test/openssl/test_pair.rb: Modify TestSSL#test_read_and_write to handle partial sysreads. [Bug #7398][ruby-core:49563] * test/openssl/test_ssl.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46164 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/openssl/test_pair.rb | 8 ++++++-- test/openssl/test_ssl.rb | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'test') diff --git a/test/openssl/test_pair.rb b/test/openssl/test_pair.rb index c7cfd69129..c2ad735d2a 100644 --- a/test/openssl/test_pair.rb +++ b/test/openssl/test_pair.rb @@ -112,9 +112,13 @@ module OpenSSL::TestPairM ssl_pair {|s1, s2| s2.write "a\nbcd" assert_equal("a\n", s1.gets) - assert_equal("bcd", s1.readpartial(10)) + result = "" + result << s1.readpartial(10) until result.length == 3 + assert_equal("bcd", result) s2.write "efg" - assert_equal("efg", s1.readpartial(10)) + result = "" + result << s1.readpartial(10) until result.length == 3 + assert_equal("efg", result) s2.close assert_raise(EOFError) { s1.readpartial(10) } assert_raise(EOFError) { s1.readpartial(10) } diff --git a/test/openssl/test_ssl.rb b/test/openssl/test_ssl.rb index 339451e7be..23dc572870 100644 --- a/test/openssl/test_ssl.rb +++ b/test/openssl/test_ssl.rb @@ -78,13 +78,17 @@ class OpenSSL::TestSSL < OpenSSL::SSLTestCase ITERATIONS.times{|i| str = "x" * 100 + "\n" ssl.syswrite(str) - assert_equal(str, ssl.sysread(str.size)) + newstr = '' + newstr << ssl.sysread(str.size - newstr.size) until newstr.size == str.size + assert_equal(str, newstr) str = "x" * i * 100 + "\n" buf = "" ssl.syswrite(str) assert_equal(buf.object_id, ssl.sysread(str.size, buf).object_id) - assert_equal(str, buf) + newstr = buf + newstr << ssl.sysread(str.size - newstr.size) until newstr.size == str.size + assert_equal(str, newstr) } # puts and gets -- cgit v1.2.3