fails:StringIO#truncate when passed [length] raises an Errno::EINVAL when the passed length is negative
fails:StringIO#truncate when passed [length] tries to convert the passed length to an Integer using #to_int
fails:StringIO#truncate when passed [length] returns the passed length Object, NOT the result of #to_int
fails:StringIO#truncate when self is not writable raises an IOError
