}
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;
}
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());
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
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);
}
// 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);
{
auto_ptr<wxArchiveInputStream> arc(m_factory->NewStream(in));
auto_ptr<wxArchiveEntry> 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<wxArchiveEntry>(arc->GetNextEntry());
+ auto_ptr<wxArchiveEntry> next(arc->GetNextEntry());
+ entry = next;
}
}
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;
template class ArchiveTestCase<wxZipClassFactory>;
#endif
+#if wxUSE_TARSTREAM
+#include "wx/tarstrm.h"
+template class ArchiveTestCase<wxTarClassFactory>;
+#endif
+
#endif // wxUSE_STREAMS && wxUSE_ARCHIVE_STREAMS