applying editor part of patch, see #15003
[wxWidgets.git] / tests / log / logtest.cpp
index 7d859c7d0047bee58facf56b4aa207883a5e8230..4ee9b2b38faa0443bc24a82a56742ea48859cc58 100644 (file)
@@ -19,6 +19,7 @@
 
 #ifndef WX_PRECOMP
     #include "wx/log.h"
+    #include "wx/filefn.h"
 #endif // WX_PRECOMP
 
 #include "wx/scopeguard.h"
@@ -193,7 +194,7 @@ private:
 // register in the unnamed registry so that these tests are run by default
 CPPUNIT_TEST_SUITE_REGISTRATION( LogTestCase );
 
-// also include in it's own registry so that these tests can be run alone
+// also include in its own registry so that these tests can be run alone
 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( LogTestCase, "LogTestCase" );
 
 void LogTestCase::setUp()
@@ -341,17 +342,24 @@ void LogTestCase::CompatLogger2()
 void LogTestCase::SysError()
 {
     wxString s;
-    wxLogSysError("Success");
-    CPPUNIT_ASSERT( m_log->GetLog(wxLOG_Error).StartsWith("Success (", &s) );
-    CPPUNIT_ASSERT( s.StartsWith("error 0") );
 
     wxLogSysError(17, "Error");
     CPPUNIT_ASSERT( m_log->GetLog(wxLOG_Error).StartsWith("Error (", &s) );
-    CPPUNIT_ASSERT( s.StartsWith("error 17") );
+    WX_ASSERT_MESSAGE( ("Error message is \"(%s\"", s), s.StartsWith("error 17") );
+
+    // The last error code seems to be set somewhere in MinGW CRT as its value
+    // is just not what we expect (ERROR_INVALID_PARAMETER instead of 0 and 0
+    // instead of ERROR_FILE_NOT_FOUND) so exclude the tests which rely on last
+    // error being preserved for this compiler.
+#ifndef __MINGW32__
+    wxLogSysError("Success");
+    CPPUNIT_ASSERT( m_log->GetLog(wxLOG_Error).StartsWith("Success (", &s) );
+    WX_ASSERT_MESSAGE( ("Error message is \"(%s\"", s), s.StartsWith("error 0") );
 
     wxOpen("no-such-file", 0, 0);
     wxLogSysError("Not found");
     CPPUNIT_ASSERT( m_log->GetLog(wxLOG_Error).StartsWith("Not found (", &s) );
     WX_ASSERT_MESSAGE( ("Error message is \"(%s\"", s), s.StartsWith("error 2") );
+#endif // __MINGW32__
 }