]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/misc/dynamiclib.cpp
using button impl
[wxWidgets.git] / tests / misc / dynamiclib.cpp
index f05090d5751b6ca1f6fde2450dbf4ae58ed20730..55d443c5a97d776b0319b2b0e2eaf2f8c6fd8f6c 100644 (file)
 
 #include "wx/dynlib.h"
 
+#ifdef __UNIX__
+    #include "wx/filename.h"
+    #include "wx/log.h"
+#endif
+
 // ----------------------------------------------------------------------------
 // test class
 // ----------------------------------------------------------------------------
@@ -41,18 +46,29 @@ private:
 // register in the unnamed registry so that these tests are run by default
 CPPUNIT_TEST_SUITE_REGISTRATION( DynamicLibraryTestCase );
 
-// 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( DynamicLibraryTestCase, "DynamicLibraryTestCase" );
 
 void DynamicLibraryTestCase::Load()
 {
-#if defined(__WXMSW__)
+#if defined(__WINDOWS__)
     static const wxChar *LIB_NAME = wxT("kernel32.dll");
     static const wxChar *FUNC_NAME = wxT("lstrlenA");
 #elif defined(__UNIX__)
+#ifdef __DARWIN__
+    static const wxChar *LIB_NAME = wxT("/usr/lib/libc.dylib");
+#else
     // weird: using just libc.so does *not* work!
     static const wxChar *LIB_NAME = wxT("/lib/libc.so.6");
+#endif
     static const wxChar *FUNC_NAME = wxT("strlen");
+
+    if ( !wxFileName::Exists(LIB_NAME) )
+    {
+        wxLogWarning("Shared library \"%s\" doesn't exist, "
+                     "skipping DynamicLibraryTestCase::Load() test.");
+        return;
+    }
 #else
     #error "don't know how to test wxDllLoader on this platform"
 #endif
@@ -70,7 +86,7 @@ void DynamicLibraryTestCase::Load()
     // Call the function dynamically loaded
     CPPUNIT_ASSERT( pfnStrlen("foo") == 3 );
 
-#ifdef __WXMSW__
+#ifdef __WINDOWS__
     static const wxChar *FUNC_NAME_AW = wxT("lstrlen");
 
     typedef int (wxSTDCALL *wxStrlenTypeAorW)(const wxChar *);
@@ -82,5 +98,5 @@ void DynamicLibraryTestCase::Load()
     CPPUNIT_ASSERT_MESSAGE( errMsg2.ToStdString(), pfnStrlenAorW );
 
     CPPUNIT_ASSERT( pfnStrlenAorW(wxT("foobar")) == 6 );
-#endif // __WXMSW__
+#endif // __WINDOWS__
 }