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>
|
Wed Mar 16 13:45:28 2011 Eric Hodel <drbrain@segment7.net>
|
||||||
|
|
||||||
* ext/openss/lib/openssl/bufering.rb: de-nest Buffering module
|
* ext/openss/lib/openssl/bufering.rb: de-nest Buffering module
|
||||||
|
|
|
@ -436,6 +436,8 @@ module OpenSSL::Buffering
|
||||||
osync = @sync
|
osync = @sync
|
||||||
@sync = true
|
@sync = true
|
||||||
do_write ""
|
do_write ""
|
||||||
|
return self
|
||||||
|
ensure
|
||||||
@sync = osync
|
@sync = osync
|
||||||
end
|
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…
Add table
Reference in a new issue