diff options
| author | Baptiste Lepilleur <gaiacrtn@free.fr> | 2003-05-07 19:07:17 +0000 |
|---|---|---|
| committer | Baptiste Lepilleur <gaiacrtn@free.fr> | 2003-05-07 19:07:17 +0000 |
| commit | ad7d9b040b7a78e7ac14f7d3556b2eb5f09f5b81 (patch) | |
| tree | dbfd72bd0f17fbf40d857aa14c121cf0a53f9aa8 /src/cppunit/ShlDynamicLibraryManager.cpp | |
| parent | 31ca191eaeffb4288f01b78d64535c70a07473f2 (diff) | |
| download | cppunit-ad7d9b040b7a78e7ac14f7d3556b2eb5f09f5b81.tar.gz | |
Makefile.
Makefile.am
* configure.in
* config/ac_dll.m4
* examples/cppunittest/Makefile.am
* examples/hierarchy/Makefile.am
* examples/money/Makefile.am
* examples/simple/Makefile.am
* include/cppunit/config/SelectDllLoader.h
* include/cppunit/plugin/TestPlugIn.h
* include/cppunit/tools/Algorithm.h
* src/DllPlugInTester/Makefile.am
* src/cppunit/Makefile.am
* src/cppunit/TestDecorator.cpp
* src/cppunit/ShlDynamicLibraryManager.cpp
* src/cppunit/UnixDynamicLibraryManager.cpp
* src/cppunit/Win32DynamicLibraryManager.cpp: applied patch from
Abdessattar Sassi <abdesassi@users.sourceforge.net> to add support
for plug-in to hp-ux.
Diffstat (limited to 'src/cppunit/ShlDynamicLibraryManager.cpp')
| -rw-r--r-- | src/cppunit/ShlDynamicLibraryManager.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/cppunit/ShlDynamicLibraryManager.cpp b/src/cppunit/ShlDynamicLibraryManager.cpp new file mode 100644 index 0000000..a9849e9 --- /dev/null +++ b/src/cppunit/ShlDynamicLibraryManager.cpp @@ -0,0 +1,52 @@ +#include <cppunit/Portability.h> + +#if defined(CPPUNIT_HAVE_UNIX_SHL_LOADER) +#include <cppunit/plugin/DynamicLibraryManager.h> + +#include <dl.h> +#include <unistd.h> + + +CPPUNIT_NS_BEGIN + + +DynamicLibraryManager::LibraryHandle +DynamicLibraryManager::doLoadLibrary( const std::string &libraryName ) +{ + return ::shl_load(libraryName.c_str(), BIND_IMMEDIATE, 0L); + //return ::dlopen( libraryName.c_str(), RTLD_NOW ); // RTLD_LAZY ? +} + + +void +DynamicLibraryManager::doReleaseLibrary() +{ + ::shl_unload( (shl_t)m_libraryHandle); + //::dlclose( m_libraryHandle); +} + + +DynamicLibraryManager::Symbol +DynamicLibraryManager::doFindSymbol( const std::string &symbol ) +{ + DynamicLibraryManager::Symbol L_symaddr = 0; + if ( ::shl_findsym ( (shl_t*)(&m_libraryHandle), symbol.c_str(), TYPE_UNDEFINED, &L_symaddr ) == 0 ) { + return L_symaddr; + } else { + return 0; + } + //return ::dlsym ( m_libraryHandle, symbol.c_str() ); +} + + +std::string +DynamicLibraryManager::getLastErrorDetail() const +{ + return ""; +} + + +CPPUNIT_NS_END + + +#endif // defined(CPPUNIT_HAVE_UNIX_SHL_LOADER) |
