fails:IO.open raises an Errno::EBADF if the file descriptor is not valid
fails:IO.open raises an IOError if passed a closed stream
fails:IO.open does not propagate a StandardError raised by #close
fails:IO.open does not set last error when a StandardError raised by #close
fails:IO.open propagates an exception raised by #close that is a StandardError
