зеркало из https://github.com/github/ruby.git
* ext/openssl/lib/openssl/buffering.rb (module OpenSSL):
Buffering#each_byte should return String in accordance with IO in 1.9. * test/openssl/test_buffering.rb (class OpenSSL): add tests for getc and each_byte. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32012 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
35c16fe35f
Коммит
47f89c982c
|
@ -1,3 +1,12 @@
|
|||
Sat Jun 11 23:02:36 2011 Hiroshi Nakamura <nahi@ruby-lang.org>
|
||||
|
||||
* ext/openssl/lib/openssl/buffering.rb (module OpenSSL):
|
||||
Buffering#each_byte should return String in accordance with IO in
|
||||
1.9.
|
||||
|
||||
* test/openssl/test_buffering.rb (class OpenSSL): add tests for getc
|
||||
and each_byte.
|
||||
|
||||
Sat Jun 11 22:41:37 2011 Tadayoshi Funaba <tadf@dotrb.org>
|
||||
|
||||
* time.c: a correction of doc for strftime (%v).
|
||||
|
|
|
@ -252,8 +252,7 @@ module OpenSSL::Buffering
|
|||
# file.
|
||||
|
||||
def getc
|
||||
c = read(1)
|
||||
c ? c[0] : nil
|
||||
read(1)
|
||||
end
|
||||
|
||||
##
|
||||
|
@ -261,7 +260,7 @@ module OpenSSL::Buffering
|
|||
|
||||
def each_byte # :yields: byte
|
||||
while c = getc
|
||||
yield(c)
|
||||
yield(c.ord)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -10,7 +10,10 @@ class OpenSSL::TestBuffering < MiniTest::Unit::TestCase
|
|||
attr_accessor :sync
|
||||
|
||||
def initialize
|
||||
@io = StringIO.new
|
||||
@io = ""
|
||||
def @io.sync
|
||||
true
|
||||
end
|
||||
|
||||
super
|
||||
|
||||
|
@ -18,15 +21,18 @@ class OpenSSL::TestBuffering < MiniTest::Unit::TestCase
|
|||
end
|
||||
|
||||
def string
|
||||
@io.string
|
||||
@io
|
||||
end
|
||||
|
||||
def sysread *a
|
||||
@io.sysread *a
|
||||
def sysread(size)
|
||||
str = @io.slice!(0, size)
|
||||
raise EOFError if str.empty?
|
||||
str
|
||||
end
|
||||
|
||||
def syswrite *a
|
||||
@io.syswrite *a
|
||||
def syswrite(str)
|
||||
@io << str
|
||||
str.size
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -63,4 +69,21 @@ class OpenSSL::TestBuffering < MiniTest::Unit::TestCase
|
|||
refute @io.sync, 'sync must not change'
|
||||
end
|
||||
|
||||
def test_getc
|
||||
@io.syswrite('abc')
|
||||
res = []
|
||||
assert_equal(?a, @io.getc)
|
||||
assert_equal(?b, @io.getc)
|
||||
assert_equal(?c, @io.getc)
|
||||
end
|
||||
|
||||
def test_each_byte
|
||||
@io.syswrite('abc')
|
||||
res = []
|
||||
@io.each_byte do |c|
|
||||
res << c
|
||||
end
|
||||
assert_equal([97, 98, 99], res)
|
||||
end
|
||||
|
||||
end if defined?(OpenSSL)
|
||||
|
|
Загрузка…
Ссылка в новой задаче