File tree Expand file tree Collapse file tree 4 files changed +44
-0
lines changed Expand file tree Collapse file tree 4 files changed +44
-0
lines changed Original file line number Diff line number Diff line change @@ -107,6 +107,12 @@ def getbyte
107107 read ( 1 ) &.ord
108108 end
109109
110+ # Get the next 8bit byte. Raises EOFError on EOF
111+ def readbyte
112+ raise EOFError if eof?
113+ getbyte
114+ end
115+
110116 ##
111117 # Reads _size_ bytes from the stream. If _buf_ is provided it must
112118 # reference a string which will receive the data.
Original file line number Diff line number Diff line change @@ -101,6 +101,27 @@ def test_getc
101101 }
102102 end
103103
104+ def test_getbyte
105+ ssl_pair { |s1 , s2 |
106+ s1 << "a"
107+ assert_equal ( 97 , s2 . getbyte )
108+ }
109+ end
110+
111+ def test_readbyte
112+ ssl_pair { |s1 , s2 |
113+ s1 << "b"
114+ assert_equal ( 98 , s2 . readbyte )
115+ }
116+ end
117+
118+ def test_readbyte_eof
119+ ssl_pair { |s1 , s2 |
120+ s2 . close
121+ assert_raise ( EOFError ) { s1 . readbyte }
122+ }
123+ end
124+
104125 def test_gets
105126 ssl_pair { |s1 , s2 |
106127 s1 << "abc\n \n $def123ghi"
Original file line number Diff line number Diff line change @@ -248,6 +248,19 @@ def test_getbyte
248248 }
249249 end
250250
251+ def test_readbyte
252+ start_server { |port |
253+ server_connect ( port ) { |ssl |
254+ str = +( "x" * 100 + "\n " )
255+ ssl . syswrite ( str )
256+ newstr = str . bytesize . times . map { |i |
257+ ssl . readbyte
258+ } . pack ( "C*" )
259+ assert_equal ( str , newstr )
260+ }
261+ }
262+ end
263+
251264 def test_sync_close
252265 start_server do |port |
253266 begin
Original file line number Diff line number Diff line change @@ -8,6 +8,10 @@ def test_getbyte_eof
88 open_file ( "" ) { |f | assert_nil f . getbyte }
99 end
1010
11+ def test_readbyte_eof
12+ open_file ( "" ) { |f | assert_raise ( EOFError ) { f . readbyte } }
13+ end
14+
1115 def test_eof_0
1216 open_file ( "" ) { |f |
1317 assert_equal ( "" , f . read ( 0 ) )
You can’t perform that action at this time.
0 commit comments