X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/69fc85873dfe7a9ea4f25ffc34bec7c0ee719368..968b44d37b9fcdc5232fb68312a65e4fc6b5f4ab:/tests/misc/dynamiclib.cpp?ds=sidebyside diff --git a/tests/misc/dynamiclib.cpp b/tests/misc/dynamiclib.cpp index f05090d575..55d443c5a9 100644 --- a/tests/misc/dynamiclib.cpp +++ b/tests/misc/dynamiclib.cpp @@ -19,6 +19,11 @@ #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__ }