@@ -359,6 +359,9 @@ def test_open
359359
360360 def test_isatty
361361 assert_equal ( false , StringIO . new ( "" ) . isatty )
362+ assert_equal ( false , StringIO . new ( "" ) . tty? )
363+ assert_nothing_raised { StringIO . new ( "" ) . freeze . isatty }
364+ assert_nothing_raised { StringIO . new ( "" ) . freeze . tty? }
362365 end
363366
364367 def test_fsync
@@ -368,6 +371,7 @@ def test_fsync
368371 def test_sync
369372 assert_equal ( true , StringIO . new ( "" ) . sync )
370373 assert_equal ( false , StringIO . new ( "" ) . sync = false )
374+ assert_nothing_raised { StringIO . new ( "" ) . freeze . sync }
371375 end
372376
373377 def test_set_fcntl
@@ -420,8 +424,8 @@ def test_closed
420424 assert_equal ( false , f . closed? )
421425 f . close
422426 assert_equal ( true , f . closed? )
423- ensure
424- f . close unless f . closed?
427+ f . freeze
428+ assert_nothing_raised { f . closed? }
425429 end
426430
427431 def test_closed_read
@@ -431,8 +435,8 @@ def test_closed_read
431435 assert_equal ( false , f . closed_read? )
432436 f . close_read
433437 assert_equal ( true , f . closed_read? )
434- ensure
435- f . close unless f . closed?
438+ f . freeze
439+ assert_nothing_raised { f . closed_read? }
436440 end
437441
438442 def test_closed_write
@@ -442,8 +446,8 @@ def test_closed_write
442446 assert_equal ( false , f . closed_write? )
443447 f . close_write
444448 assert_equal ( true , f . closed_write? )
445- ensure
446- f . close unless f . closed?
449+ f . freeze
450+ assert_nothing_raised { f . closed_write? }
447451 end
448452
449453 def test_dup
@@ -469,8 +473,8 @@ def test_lineno
469473 f . lineno = 1000
470474 assert_equal ( [ 1000 , "baz\n " ] , [ f . lineno , f . gets ] )
471475 assert_equal ( [ 1001 , nil ] , [ f . lineno , f . gets ] )
472- ensure
473- f . close unless f . closed?
476+ f . freeze
477+ assert_nothing_raised { f . lineno }
474478 end
475479
476480 def test_pos
@@ -483,8 +487,8 @@ def test_pos
483487 assert_equal ( [ 4 , "bar\n " ] , [ f . pos , f . gets ] )
484488 assert_equal ( [ 8 , "baz\n " ] , [ f . pos , f . gets ] )
485489 assert_equal ( [ 12 , nil ] , [ f . pos , f . gets ] )
486- ensure
487- f . close unless f . closed?
490+ f . freeze
491+ assert_nothing_raised { f . pos }
488492 end
489493
490494 def test_reopen
@@ -508,13 +512,10 @@ def test_seek
508512 assert_raise ( Errno ::EINVAL ) { f . seek ( 1 , 3 ) }
509513 f . close
510514 assert_raise ( IOError ) { f . seek ( 0 ) }
511- ensure
512- f . close unless f . closed?
513- end
514-
515- def test_seek_frozen_string
516515 f = StringIO . new ( -"1234" )
517516 assert_equal ( 0 , f . seek ( 1 ) )
517+ ensure
518+ f . close unless f . closed?
518519 end
519520
520521 def test_each_byte
@@ -837,11 +838,17 @@ def test_pread
837838 buf = "stale" . b
838839 assert_equal "stale" . b , StringIO . new ( "" ) . pread ( 0 , 0 , buf )
839840 assert_equal "stale" . b , buf
841+
842+ assert_nothing_raised { StringIO . new ( "pread" ) . freeze . pread ( 3 , 0 ) }
840843 end
841844
842845 def test_size
843846 f = StringIO . new ( "1234" )
844847 assert_equal ( 4 , f . size )
848+ assert_equal ( 4 , f . length )
849+ f . freeze
850+ assert_nothing_raised { f . size }
851+ assert_nothing_raised { f . length }
845852 end
846853
847854 # This test is should in ruby/test_method.rb
@@ -1105,6 +1112,65 @@ def test_chilled_string_set_enocoding
11051112 end
11061113 end
11071114
1115+ def test_eof
1116+ f = StringIO . new
1117+ assert_equal ( true , f . eof )
1118+ assert_equal ( true , f . eof? )
1119+ f . ungetc ( "1234" )
1120+ assert_equal ( false , f . eof )
1121+ assert_equal ( false , f . eof? )
1122+ f . freeze
1123+ assert_nothing_raised { f . eof }
1124+ assert_nothing_raised { f . eof? }
1125+ end
1126+
1127+ def test_pid
1128+ f = StringIO . new
1129+ assert_equal ( nil , f . pid )
1130+ f . freeze
1131+ assert_nothing_raised { f . pid }
1132+ end
1133+
1134+ def test_fileno
1135+ f = StringIO . new
1136+ assert_equal ( nil , f . fileno )
1137+ f . freeze
1138+ assert_nothing_raised { f . fileno }
1139+ end
1140+
1141+ def test_external_encoding
1142+ f = StringIO . new
1143+ assert_equal ( Encoding . find ( "external" ) , f . external_encoding )
1144+ f = StringIO . new ( "1234" . encode ( "UTF-16BE" ) )
1145+ assert_equal ( Encoding ::UTF_16BE , f . external_encoding )
1146+ f . freeze
1147+ assert_nothing_raised { f . external_encoding }
1148+ end
1149+
1150+ def test_string
1151+ f = StringIO . new
1152+ assert_equal ( "" , f . string )
1153+ f = StringIO . new ( "1234" )
1154+ assert_equal ( "1234" , f . string )
1155+ f . freeze
1156+ assert_nothing_raised { f . string }
1157+ end
1158+
1159+ def test_initialize_copy
1160+ f = StringIO . new ( "1234" )
1161+ f . read ( 1 )
1162+ f2 = f . dup
1163+ assert_equal ( 1 , f2 . pos )
1164+ f . read ( 1 )
1165+ assert_equal ( 2 , f2 . pos )
1166+ f . ungetc ( "56" )
1167+ assert_equal ( 0 , f2 . pos )
1168+ assert_equal ( "5634" , f2 . string )
1169+ f . freeze
1170+ f2 = f . dup
1171+ assert_not_predicate ( f2 , :frozen? )
1172+ end
1173+
11081174 private
11091175
11101176 def assert_string ( content , encoding , str , mesg = nil )
0 commit comments