mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/openssl/lib/openssl/buffering.rb (module OpenSSL): #flush should
not change sync mode on exception. * test/openssl/test_buffering.rb: added git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31113 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
92946d4474
commit
d6fb308078
3 changed files with 74 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
Wed Mar 16 15:06:21 2011 Eric Hodel <drbrain@segment7.net>
|
||||
|
||||
* ext/openssl/lib/openssl/buffering.rb (module OpenSSL): #flush should
|
||||
not change sync mode on exception.
|
||||
* test/openssl/test_buffering.rb: added
|
||||
|
||||
Wed Mar 16 13:45:28 2011 Eric Hodel <drbrain@segment7.net>
|
||||
|
||||
* ext/openss/lib/openssl/bufering.rb: de-nest Buffering module
|
||||
|
|
|
@ -436,6 +436,8 @@ module OpenSSL::Buffering
|
|||
osync = @sync
|
||||
@sync = true
|
||||
do_write ""
|
||||
return self
|
||||
ensure
|
||||
@sync = osync
|
||||
end
|
||||
|
||||
|
|
66
test/openssl/test_buffering.rb
Normal file
66
test/openssl/test_buffering.rb
Normal file
|
@ -0,0 +1,66 @@
|
|||
require_relative 'utils'
|
||||
require 'stringio'
|
||||
require 'minitest/unit'
|
||||
|
||||
class OpenSSL::TestBuffering < MiniTest::Unit::TestCase
|
||||
|
||||
class IO
|
||||
include OpenSSL::Buffering
|
||||
|
||||
attr_accessor :sync
|
||||
|
||||
def initialize
|
||||
@io = StringIO.new
|
||||
|
||||
super
|
||||
|
||||
@sync = false
|
||||
end
|
||||
|
||||
def string
|
||||
@io.string
|
||||
end
|
||||
|
||||
def sysread *a
|
||||
@io.sysread *a
|
||||
end
|
||||
|
||||
def syswrite *a
|
||||
@io.syswrite *a
|
||||
end
|
||||
end
|
||||
|
||||
def setup
|
||||
@io = IO.new
|
||||
end
|
||||
|
||||
def test_flush
|
||||
@io.write 'a'
|
||||
|
||||
refute @io.sync
|
||||
assert_empty @io.string
|
||||
|
||||
assert_equal @io, @io.flush
|
||||
|
||||
refute @io.sync
|
||||
assert_equal 'a', @io.string
|
||||
end
|
||||
|
||||
def test_flush_error
|
||||
@io.write 'a'
|
||||
|
||||
refute @io.sync
|
||||
assert_empty @io.string
|
||||
|
||||
def @io.syswrite *a
|
||||
raise SystemCallError, 'fail'
|
||||
end
|
||||
|
||||
assert_raises SystemCallError do
|
||||
@io.flush
|
||||
end
|
||||
|
||||
refute @io.sync, 'sync must not change'
|
||||
end
|
||||
|
||||
end if defined?(OpenSSL)
|
Loading…
Reference in a new issue