X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/98de4ac1c5ffe44700d6a43e8fca0a496d6ecada..7e3204b45cf8e1bb882b314d456e75f2a22850d7:/tests/archive/archivetest.cpp diff --git a/tests/archive/archivetest.cpp b/tests/archive/archivetest.cpp index dc75506136..c9f6d69c0b 100644 --- a/tests/archive/archivetest.cpp +++ b/tests/archive/archivetest.cpp @@ -269,10 +269,12 @@ size_t TestInputStream::OnSysRead(void *buffer, size_t size) } if (((m_eoftype & AtLast) != 0 && m_pos >= m_size) || count < size) + { if ((m_eoftype & WithError) != 0) m_lasterror = wxSTREAM_READ_ERROR; else m_lasterror = wxSTREAM_EOF; + } return count; } @@ -645,7 +647,7 @@ void ArchiveTestCase::CreateArchive(wxOutputStream& out, TestEntry& entry = *i->second; if (fn.IsDir()) { - fn.Mkdir(0777, wxPATH_MKDIR_FULL); + wxFileName::Mkdir(fn.GetPath(), 0777, wxPATH_MKDIR_FULL); } else { wxFileName::Mkdir(fn.GetPath(), 0777, wxPATH_MKDIR_FULL); wxFFileOutputStream fileout(fn.GetFullPath()); @@ -802,10 +804,14 @@ void ArchiveTestCase::ExtractArchive(wxInputStream& in) const TestEntry& testEntry = *it->second; +#ifndef __WXMSW__ + // On Windows some archivers compensate for Windows DST handling, but + // other don't, so disable the test for now. wxDateTime dt = testEntry.GetDateTime(); if (dt.IsValid()) CPPUNIT_ASSERT_MESSAGE("timestamp check" + error_context, dt == entry->GetDateTime()); +#endif // non-seekable entries are allowed to have GetSize == wxInvalidOffset // until the end of the entry's data has been read past @@ -1202,7 +1208,8 @@ void CorruptionTestCase::runTest() wxFileOffset len = in.GetLength(); // try flipping one byte in the archive - for (int pos = 0; pos < len; pos++) { + int pos; + for (pos = 0; pos < len; pos++) { char n = in[pos]; in[pos] = ~n; ExtractArchive(in); @@ -1211,7 +1218,7 @@ void CorruptionTestCase::runTest() } // try zeroing one byte in the archive - for (int pos = 0; pos < len; pos++) { + for (pos = 0; pos < len; pos++) { char n = in[pos]; in[pos] = 0; ExtractArchive(in); @@ -1240,15 +1247,15 @@ void CorruptionTestCase::ExtractArchive(wxInputStream& in) { auto_ptr arc(m_factory->NewStream(in)); auto_ptr entry(arc->GetNextEntry()); - + while (entry.get() != NULL) { - wxString name = entry->GetName(); char buf[1024]; - + while (arc->IsOk()) arc->Read(buf, sizeof(buf)); - entry = auto_ptr(arc->GetNextEntry()); + auto_ptr next(arc->GetNextEntry()); + entry = next; } } @@ -1325,7 +1332,7 @@ ArchiveTestSuite *ArchiveTestSuite::makeSuite() addTest(test); } - for (int options = 0; options <= PipeIn; options += PipeIn) + for (int options = 0; options <= PipeIn; options += PipeIn) { wxObject *pObj = wxCreateDynamicObject(m_name + _T("ClassFactory")); wxArchiveClassFactory *factory; @@ -1406,4 +1413,9 @@ template class ArchiveTestCase; template class ArchiveTestCase; #endif +#if wxUSE_TARSTREAM +#include "wx/tarstrm.h" +template class ArchiveTestCase; +#endif + #endif // wxUSE_STREAMS && wxUSE_ARCHIVE_STREAMS