* 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:
nahi 2011-06-11 14:07:42 +00:00
Родитель 35c16fe35f
Коммит 47f89c982c
3 изменённых файлов: 40 добавлений и 9 удалений

Просмотреть файл

@ -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)