added a unit test for input/output file streams and fixed the problem it exposed (#3335)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-06-15 17:34:50 +00:00
parent d1b021ffb9
commit 02e22828eb
13 changed files with 156 additions and 24 deletions

View File

@@ -220,9 +220,16 @@ size_t wxTempFileOutputStream::OnSysWrite(const void *buffer, size_t size)
// ----------------------------------------------------------------------------
wxFileStream::wxFileStream(const wxString& fileName)
: wxFileInputStream(fileName)
: wxFileInputStream(),
wxFileOutputStream()
{
wxFileOutputStream::m_file = wxFileInputStream::m_file;
wxFileOutputStream::m_file =
wxFileInputStream::m_file = new wxFile(fileName, wxFile::read_write);
// this is a bit ugly as streams are symmetric but we still have to delete
// the file we created above exactly once so we decide to (arbitrarily) do
// it in wxFileInputStream
wxFileInputStream::m_file_destroy = true;
}
bool wxFileStream::IsOk() const
@@ -400,10 +407,18 @@ bool wxFFileOutputStream::IsOk() const
// wxFFileStream
// ----------------------------------------------------------------------------
wxFFileStream::wxFFileStream(const wxString& fileName)
: wxFFileInputStream(fileName)
wxFFileStream::wxFFileStream(const wxString& fileName, const wxString& mode)
: wxFFileInputStream(),
wxFFileOutputStream()
{
wxFFileOutputStream::m_file = wxFFileInputStream::m_file;
wxASSERT_MSG( mode.find_first_of('+') != wxString::npos,
"must be opened in read-write mode for this class to work" );
wxFFileOutputStream::m_file =
wxFFileInputStream::m_file = new wxFFile(fileName, mode);
// see comment in wxFileStream ctor
wxFFileInputStream::m_file_destroy = true;
}
bool wxFFileStream::IsOk() const