]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/archive/ziptest.cpp
paint events cannot be constructed outside a native redraw in OSX
[wxWidgets.git] / tests / archive / ziptest.cpp
index 4f17fbe4b04d745c1c7fb5261421b74e37cc1ffd..6976b083bb903ef4b8c6b4f7f09ef01556672648 100644 (file)
@@ -34,12 +34,11 @@ class ZipTestCase : public ArchiveTestCase<wxZipClassFactory>
 {
 public:
     ZipTestCase(string name,
-                int id,
                 int options,
                 const wxString& archiver = wxEmptyString,
                 const wxString& unarchiver = wxEmptyString)
     :
-        ArchiveTestCase<wxZipClassFactory>(name, id, new wxZipClassFactory,
+        ArchiveTestCase<wxZipClassFactory>(name, new wxZipClassFactory,
                                            options, archiver, unarchiver),
         m_count(0)
     { }
@@ -65,7 +64,7 @@ protected:
 
 void ZipTestCase::OnCreateArchive(wxZipOutputStream& zip)
 {
-    m_comment << _T("Comment for test ") << m_id;
+    m_comment << wxT("Comment for test ") << m_id;
     zip.SetComment(m_comment);
 }
 
@@ -85,7 +84,7 @@ void ZipTestCase::OnCreateEntry(wxZipOutputStream& zip,
         switch ((m_id + m_count) % 5) {
             case 0:
             {
-                wxString comment = _T("Comment for ") + entry->GetName();
+                wxString comment = wxT("Comment for ") + entry->GetName();
                 entry->SetComment(comment);
                 // lowercase the expected result, and the notifier should do
                 // the same for the zip entries when ModifyArchive() runs
@@ -111,7 +110,7 @@ void ZipTestCase::OnEntryExtracted(wxZipEntry& entry,
 {
     // provide some context for the error message so that we know which
     // iteration of the loop we were on
-    wxString name = _T(" '") + entry.GetName() + _T("'");
+    wxString name = wxT(" '") + entry.GetName() + wxT("'");
     string error_entry(name.mb_str());
     string error_context(" failed for entry" + error_entry);
 
@@ -161,19 +160,23 @@ class ZipPipeTestCase : public CppUnit::TestCase
 {
 public:
     ZipPipeTestCase(string name, int options) :
-        CppUnit::TestCase(name), m_options(options) { }
+        CppUnit::TestCase(TestId::MakeId() + name),
+        m_options(options),
+        m_id(TestId::GetId())
+    { }
 
 protected:
     void runTest();
     int m_options;
+    int m_id;
 };
 
 void ZipPipeTestCase::runTest()
 {
     TestOutputStream out(m_options);
 
-    wxString testdata = _T("test data to pipe through zip");
-    wxString cmd = _T("echo ") + testdata + _T(" | zip -q - -");
+    wxString testdata = wxT("test data to pipe through zip");
+    wxString cmd = wxT("echo ") + testdata + wxT(" | zip -q - -");
 
     {
         PFileInputStream in(cmd);
@@ -181,7 +184,7 @@ void ZipPipeTestCase::runTest()
             out.Write(in);
     }
 
-    TestInputStream in(out);
+    TestInputStream in(out, m_id % ((m_options & PipeIn) ? 4 : 3));
     wxZipInputStream zip(in);
 
     auto_ptr<wxZipEntry> entry(zip.GetNextEntry());
@@ -214,7 +217,7 @@ public:
 protected:
     ArchiveTestSuite *makeSuite();
 
-    CppUnit::Test *makeTest(string descr, int id, int options,
+    CppUnit::Test *makeTest(string descr, int options,
                             bool genericInterface, const wxString& archiver,
                             const wxString& unarchiver);
 };
@@ -222,22 +225,24 @@ protected:
 ziptest::ziptest()
   : ArchiveTestSuite("zip")
 {
-    AddArchiver(_T("zip -qr %s *"));
-    AddUnArchiver(_T("unzip -q %s"));
+    AddArchiver(wxT("zip -qr %s *"));
+    AddUnArchiver(wxT("unzip -q %s"));
 }
 
 ArchiveTestSuite *ziptest::makeSuite()
 {
     ArchiveTestSuite::makeSuite();
 
-#ifndef WXARC_NO_POPEN 
-    // if have popen then can check the piped output of 'zip - -'
-    if (IsInPath(_T("zip")))
+#if !defined WXARC_NO_POPEN && !defined __WXMSW__
+    // If have popen then can check the piped output of 'zip - -'.
+    // The gnuwin32 build of infozip does work for this, e.g.:
+    //  C:\>echo test data to pipe through zip | zip -q > foo.zip 
+    // doesn't produce a valid zip, so disabled for now.
+    if (IsInPath(wxT("zip")))
         for (int options = 0; options <= PipeIn; options += PipeIn) {
-            string name = Description(_T("ZipPipeTestCase"), options,
-                                      false, _T(""), _T("zip -q - -"));
+            string name = Description(wxT("ZipPipeTestCase"), options,
+                                      false, wxT(""), wxT("zip -q - -"));
             addTest(new ZipPipeTestCase(name, options));
-            m_id++;
         }
 #endif
 
@@ -246,7 +251,6 @@ ArchiveTestSuite *ziptest::makeSuite()
 
 CppUnit::Test *ziptest::makeTest(
     string descr,
-    int   id,
     int   options,
     bool  genericInterface,
     const wxString& archiver,
@@ -257,11 +261,13 @@ CppUnit::Test *ziptest::makeTest(
         return NULL;
 
     if (genericInterface)
+    {
         return new ArchiveTestCase<wxArchiveClassFactory>(
-                            descr, id, new wxZipClassFactory,
+                            descr, new wxZipClassFactory,
                             options, archiver, unarchiver);
-    else
-        return new ZipTestCase(descr, id, options, archiver, unarchiver);
+    }
+
+    return new ZipTestCase(descr, options, archiver, unarchiver);
 }
 
 CPPUNIT_TEST_SUITE_REGISTRATION(ziptest);