fails:StringIO#ungetc when passed [char] writes the passed char before the current position
fails:StringIO#ungetc when passed [char] returns nil
fails:StringIO#ungetc when passed [char] decreases the current position by one
fails:StringIO#ungetc when passed [char] works with read-write
fails:StringIO#ungetc when passed [char] modifies the original string
fails:StringIO#ungetc when passed [char] pads with \000 when the current position is after the end
fails:StringIO#ungetc when passed [char] tries to convert the passed length to an Integer using #to_int
fails:StringIO#ungetc when self is not readable raises an IOError
fails:StringIO#ungetc when self is not readable raises an IOError after close_read
fails:StringIO#ungetc when passed [char] pads with \\000 when the current position is after the end
