+
+#if WXWIN_COMPATIBILITY_2_8
+
+void LogTestCase::CompatLogger()
+{
+ CompatTestLog log;
+ wxLog * const logOld = wxLog::SetActiveTarget(&log);
+ wxON_BLOCK_EXIT1( wxLog::SetActiveTarget, logOld );
+
+ wxLogError("Old error");
+ CPPUNIT_ASSERT_EQUAL( "Old error", log.GetLog(wxLOG_Error) );
+}
+
+void LogTestCase::CompatLogger2()
+{
+ CompatTestLog2 log;
+ wxLog * const logOld = wxLog::SetActiveTarget(&log);
+ wxON_BLOCK_EXIT1( wxLog::SetActiveTarget, logOld );
+
+ wxLogWarning("Old warning");
+ CPPUNIT_ASSERT_EQUAL( "Old warning", log.Get() );
+}
+
+#endif // WXWIN_COMPATIBILITY_2_8
+
+void LogTestCase::SysError()
+{
+ wxString s;
+
+ wxLogSysError(17, "Error");
+ CPPUNIT_ASSERT( m_log->GetLog(wxLOG_Error).StartsWith("Error (", &s) );
+ 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__
+}
+