@@ -330,6 +330,9 @@ def test_open
330330
331331 def test_isatty
332332 assert_equal ( false , StringIO . new ( "" ) . isatty )
333+ assert_equal ( false , StringIO . new ( "" ) . tty? )
334+ assert_nothing_raised { StringIO . new ( "" ) . freeze . isatty }
335+ assert_nothing_raised { StringIO . new ( "" ) . freeze . tty? }
333336 end
334337
335338 def test_fsync
@@ -339,6 +342,7 @@ def test_fsync
339342 def test_sync
340343 assert_equal ( true , StringIO . new ( "" ) . sync )
341344 assert_equal ( false , StringIO . new ( "" ) . sync = false )
345+ assert_nothing_raised { StringIO . new ( "" ) . freeze . sync }
342346 end
343347
344348 def test_set_fcntl
@@ -391,8 +395,8 @@ def test_closed
391395 assert_equal ( false , f . closed? )
392396 f . close
393397 assert_equal ( true , f . closed? )
394- ensure
395- f . close unless f . closed?
398+ f . freeze
399+ assert_nothing_raised { f . closed? }
396400 end
397401
398402 def test_closed_read
@@ -402,8 +406,8 @@ def test_closed_read
402406 assert_equal ( false , f . closed_read? )
403407 f . close_read
404408 assert_equal ( true , f . closed_read? )
405- ensure
406- f . close unless f . closed?
409+ f . freeze
410+ assert_nothing_raised { f . closed_read? }
407411 end
408412
409413 def test_closed_write
@@ -413,8 +417,8 @@ def test_closed_write
413417 assert_equal ( false , f . closed_write? )
414418 f . close_write
415419 assert_equal ( true , f . closed_write? )
416- ensure
417- f . close unless f . closed?
420+ f . freeze
421+ assert_nothing_raised { f . closed_write? }
418422 end
419423
420424 def test_dup
@@ -440,8 +444,8 @@ def test_lineno
440444 f . lineno = 1000
441445 assert_equal ( [ 1000 , "baz\n " ] , [ f . lineno , f . gets ] )
442446 assert_equal ( [ 1001 , nil ] , [ f . lineno , f . gets ] )
443- ensure
444- f . close unless f . closed?
447+ f . freeze
448+ assert_nothing_raised { f . lineno }
445449 end
446450
447451 def test_pos
@@ -454,8 +458,8 @@ def test_pos
454458 assert_equal ( [ 4 , "bar\n " ] , [ f . pos , f . gets ] )
455459 assert_equal ( [ 8 , "baz\n " ] , [ f . pos , f . gets ] )
456460 assert_equal ( [ 12 , nil ] , [ f . pos , f . gets ] )
457- ensure
458- f . close unless f . closed?
461+ f . freeze
462+ assert_nothing_raised { f . pos }
459463 end
460464
461465 def test_reopen
@@ -479,13 +483,10 @@ def test_seek
479483 assert_raise ( Errno ::EINVAL ) { f . seek ( 1 , 3 ) }
480484 f . close
481485 assert_raise ( IOError ) { f . seek ( 0 ) }
482- ensure
483- f . close unless f . closed?
484- end
485-
486- def test_seek_frozen_string
487486 f = StringIO . new ( -"1234" )
488487 assert_nothing_raised { f . seek ( 0 ) }
488+ ensure
489+ f . close unless f . closed?
489490 end
490491
491492 def test_each_byte
@@ -808,11 +809,17 @@ def test_pread
808809 buf = "stale" . b
809810 assert_equal "stale" . b , StringIO . new ( "" ) . pread ( 0 , 0 , buf )
810811 assert_equal "stale" . b , buf
812+
813+ assert_nothing_raised { StringIO . new ( "pread" ) . freeze . pread ( 3 , 0 ) }
811814 end
812815
813816 def test_size
814817 f = StringIO . new ( "1234" )
815818 assert_equal ( 4 , f . size )
819+ assert_equal ( 4 , f . length )
820+ f . freeze
821+ assert_nothing_raised { f . size }
822+ assert_nothing_raised { f . length }
816823 end
817824
818825 # This test is should in ruby/test_method.rb
@@ -1055,6 +1062,67 @@ def test_chilled_string_string_set
10551062 end
10561063 end
10571064
1065+ def test_eof
1066+ f = StringIO . new
1067+ assert_equal ( true , f . eof )
1068+ assert_equal ( true , f . eof? )
1069+ f . ungetc ( "1234" )
1070+ assert_equal ( false , f . eof )
1071+ assert_equal ( false , f . eof? )
1072+ f . freeze
1073+ assert_nothing_raised { f . eof }
1074+ assert_nothing_raised { f . eof? }
1075+ end
1076+
1077+ def test_pid
1078+ f = StringIO . new
1079+ assert_equal ( nil , f . pid )
1080+ f . freeze
1081+ assert_nothing_raised { f . pid }
1082+ end
1083+
1084+ def test_fileno
1085+ f = StringIO . new
1086+ assert_equal ( nil , f . fileno )
1087+ f . freeze
1088+ assert_nothing_raised { f . fileno }
1089+ end
1090+
1091+ def test_external_encoding
1092+ f = StringIO . new
1093+ assert_equal ( Encoding . find ( "external" ) , f . external_encoding )
1094+ f = StringIO . new ( "1234" . encode ( "UTF-16BE" ) )
1095+ assert_equal ( Encoding ::UTF_16BE , f . external_encoding )
1096+ f . freeze
1097+ assert_nothing_raised { f . external_encoding }
1098+ end
1099+
1100+ def test_string
1101+ f = StringIO . new
1102+ assert_equal ( "" , f . string )
1103+ f = StringIO . new ( "1234" )
1104+ assert_equal ( "1234" , f . string )
1105+ f . freeze
1106+ assert_nothing_raised { f . string }
1107+ end
1108+
1109+ def test_initialize_copy
1110+ f = StringIO . new ( "1234" )
1111+ f . read ( 1 )
1112+ f2 = f . dup
1113+ assert_equal ( 1 , f2 . pos )
1114+ f . read ( 1 )
1115+ assert_equal ( 2 , f2 . pos )
1116+ f . ungetc ( "56" )
1117+ assert_equal ( 0 , f2 . pos )
1118+ assert_equal ( "5634" , f2 . string )
1119+ f . freeze
1120+ assert_nothing_raised do
1121+ f2 = f . dup
1122+ assert_true ( f2 . frozen? )
1123+ end
1124+ end
1125+
10581126 private
10591127
10601128 def assert_string ( content , encoding , str , mesg = nil )
0 commit comments