]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/archive/archivetest.cpp
added wxICON_NONE and implement support for it in wxGTK (closes #2897)
[wxWidgets.git] / tests / archive / archivetest.cpp
index dc75506136916635f41091192d40c87d2a11fb06..c9f6d69c0b618474dc093268f2b275d5d6adae9e 100644 (file)
@@ -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<ClassFactoryT>::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<ClassFactoryT>::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<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;
     }
 }
 
@@ -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<wxArchiveClassFactory>;
 template class ArchiveTestCase<wxZipClassFactory>;
 #endif
 
+#if wxUSE_TARSTREAM
+#include "wx/tarstrm.h"
+template class ArchiveTestCase<wxTarClassFactory>;
+#endif
+
 #endif // wxUSE_STREAMS && wxUSE_ARCHIVE_STREAMS