2010-10-14 08:30:07 +02:00
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2003-09-08 12:21:15 +00:00
/*************************************************************************
*
2008-04-10 10:30:51 +00:00
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER .
2003-09-08 12:21:15 +00:00
*
2010-02-12 15:01:35 +01:00
* Copyright 2000 , 2010 Oracle and / or its affiliates .
2003-09-08 12:21:15 +00:00
*
2008-04-10 10:30:51 +00:00
* OpenOffice . org - a multi - platform office productivity suite
2003-09-08 12:21:15 +00:00
*
2008-04-10 10:30:51 +00:00
* This file is part of OpenOffice . org .
2003-09-08 12:21:15 +00:00
*
2008-04-10 10:30:51 +00:00
* OpenOffice . org is free software : you can redistribute it and / or modify
* it under the terms of the GNU Lesser General Public License version 3
* only , as published by the Free Software Foundation .
2003-09-08 12:21:15 +00:00
*
2008-04-10 10:30:51 +00:00
* OpenOffice . org is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU Lesser General Public License version 3 for more details
* ( a copy is included in the LICENSE file that accompanied this code ) .
2003-09-08 12:21:15 +00:00
*
2008-04-10 10:30:51 +00:00
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice . org . If not , see
* < http : //www.openoffice.org/license.html>
* for a copy of the LGPLv3 License .
2003-09-08 12:21:15 +00:00
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2006-09-17 07:50:07 +00:00
// MARKER(update_precomp.py): autogen include statement, do not remove
# include "precompiled_sal.hxx"
2003-09-08 12:21:15 +00:00
//------------------------------------------------------------------------
// include files
//------------------------------------------------------------------------
# include <osl_Module_Const.h>
using namespace osl ;
2011-03-02 22:24:11 +01:00
using : : rtl : : OUString ;
using : : rtl : : OUStringToOString ;
using : : rtl : : OString ;
2003-09-08 12:21:15 +00:00
//------------------------------------------------------------------------
// helper functions and classes
//------------------------------------------------------------------------
/** print Boolean value.
*/
inline void printBool ( sal_Bool bOk )
{
2011-02-06 22:57:15 +01:00
printf ( " #printBool# " ) ;
( sal_True = = bOk ) ? printf ( " TRUE! \n " )
: printf ( " FALSE! \n " ) ;
2003-09-08 12:21:15 +00:00
}
/** print a UNI_CODE String.
*/
inline void printUString ( const : : rtl : : OUString & str )
{
rtl : : OString aString ;
2011-02-06 22:57:15 +01:00
printf ( " #printUString_u# " ) ;
2003-09-08 12:21:15 +00:00
aString = : : rtl : : OUStringToOString ( str , RTL_TEXTENCODING_ASCII_US ) ;
2011-02-06 22:57:15 +01:00
printf ( " %s \n " , aString . getStr ( ) ) ;
2003-09-08 12:21:15 +00:00
}
/** get dll file URL.
*/
inline : : rtl : : OUString getDllURL ( void )
{
# if ( defined WNT ) // lib in Unix and lib in Windows are not same in file name.
2010-12-10 18:31:39 +01:00
: : rtl : : OUString libPath ( RTL_CONSTASCII_USTRINGPARAM ( " Module_DLL.dll " ) ) ;
2003-09-08 12:21:15 +00:00
# else
2010-12-10 18:31:39 +01:00
: : rtl : : OUString libPath ( RTL_CONSTASCII_USTRINGPARAM ( " libModule_DLL.so " ) ) ;
2003-09-08 12:21:15 +00:00
# endif
: : rtl : : OUString dirPath , dllPath ;
osl : : Module : : getUrlFromAddress ( ( void * ) & getDllURL , dirPath ) ;
dirPath = dirPath . copy ( 0 , dirPath . lastIndexOf ( ' / ' ) + 1 ) ;
osl : : FileBase : : getAbsoluteFileURL ( dirPath , libPath , dllPath ) ;
return dllPath ;
}
2003-11-18 15:39:02 +00:00
inline sal_Bool isURL ( const : : rtl : : OUString pathname )
{
2010-12-10 18:31:39 +01:00
: : rtl : : OUString aPreURL ( RTL_CONSTASCII_USTRINGPARAM ( " file:/// " ) ) ;
2003-11-18 15:39:02 +00:00
return ( ( pathname . indexOf ( aPreURL ) = = 0 ) ? sal_True : sal_False ) ;
}
/** create a temp test directory using OUString name of full qualified URL or system path.
*/
inline void createTestDirectory ( const : : rtl : : OUString dirname )
{
: : rtl : : OUString aPathURL = dirname . copy ( 0 ) ;
: : osl : : FileBase : : RC nError ;
if ( ! isURL ( dirname ) )
: : osl : : FileBase : : getFileURLFromSystemPath ( dirname , aPathURL ) ; //convert if not full qualified URL
nError = : : osl : : Directory : : create ( aPathURL ) ;
CPPUNIT_ASSERT_MESSAGE ( " In createTestDirectory Function: creation: " , ( : : osl : : FileBase : : E_None = = nError ) | | ( nError = = : : osl : : FileBase : : E_EXIST ) ) ;
}
/** delete a temp test directory using OUString name of full qualified URL or system path.
*/
inline void deleteTestDirectory ( const : : rtl : : OUString dirname )
{
: : rtl : : OUString aPathURL = dirname . copy ( 0 ) ;
: : osl : : FileBase : : RC nError ;
if ( ! isURL ( dirname ) )
: : osl : : FileBase : : getFileURLFromSystemPath ( dirname , aPathURL ) ; //convert if not full qualified URL
: : osl : : Directory testDir ( aPathURL ) ;
if ( testDir . isOpen ( ) = = sal_True )
{
testDir . close ( ) ; //close if still open.
}
nError = : : osl : : Directory : : remove ( aPathURL ) ;
CPPUNIT_ASSERT_MESSAGE ( " In deleteTestDirectory function: remove " , ( : : osl : : FileBase : : E_None = = nError ) | | ( nError = = : : osl : : FileBase : : E_NOENT ) ) ;
}
//check if the file exist
inline sal_Bool ifFileExist ( const : : rtl : : OUString & str )
{
: : rtl : : OUString aUStr ;
if ( isURL ( str ) )
: : osl : : FileBase : : getSystemPathFromFileURL ( str , aUStr ) ;
else
return sal_False ;
: : osl : : File strFile ( aUStr ) ;
2010-12-11 19:43:44 +00:00
: : osl : : FileBase : : RC nError = strFile . open ( osl_File_OpenFlag_Read ) ;
2003-11-18 15:39:02 +00:00
if ( : : File : : E_NOENT = = nError )
return sal_False ;
else {
strFile . close ( ) ;
return sal_True ;
}
}
/** detete a temp test file using OUString name.
*/
inline void deleteTestFile ( const : : rtl : : OUString filename )
{
: : rtl : : OUString aPathURL = filename . copy ( 0 ) ;
: : osl : : FileBase : : RC nError ;
if ( ! isURL ( filename ) )
: : osl : : FileBase : : getFileURLFromSystemPath ( filename , aPathURL ) ; //convert if not full qualified URL
2011-04-20 20:35:58 +02:00
nError = : : osl : : File : : setAttributes ( aPathURL , osl_File_Attribute_GrpWrite | osl_File_Attribute_OwnWrite | osl_File_Attribute_OthWrite ) ; // if readonly, make writtenable.
2003-11-18 15:39:02 +00:00
CPPUNIT_ASSERT_MESSAGE ( " In deleteTestFile Function: set writtenable " , ( : : osl : : FileBase : : E_None = = nError ) | | ( : : osl : : FileBase : : E_NOENT = = nError ) ) ;
nError = : : osl : : File : : remove ( aPathURL ) ;
CPPUNIT_ASSERT_MESSAGE ( " In deleteTestFile Function: remove " , ( : : osl : : FileBase : : E_None = = nError ) | | ( nError = = : : osl : : FileBase : : E_NOENT ) ) ;
}
2003-09-08 12:21:15 +00:00
//------------------------------------------------------------------------
// test code start here
//------------------------------------------------------------------------
namespace osl_Module
{
/** class and member function that is available for module test :
*/
class testClass
{
public :
static void myFunc ( )
{
2011-02-06 22:57:15 +01:00
printf ( " #Sun Microsystem \n " ) ;
2003-09-08 12:21:15 +00:00
} ;
} ;
/** testing the methods:
Module ( ) ;
Module ( const : : rtl : : OUString & strModuleName , sal_Int32 nRtldMode = SAL_LOADMODULE_DEFAULT ) ;
*/
class ctors : public CppUnit : : TestFixture
{
public :
sal_Bool bRes , bRes1 ;
void ctors_none ( )
{
: : osl : : Module aMod ;
bRes = aMod . is ( ) ;
2011-07-10 14:43:03 +03:00
printf ( " Here we are \n " ) ;
2003-09-08 12:21:15 +00:00
CPPUNIT_ASSERT_MESSAGE ( " #test comment#: test constructor without parameter. " ,
sal_False = = bRes ) ;
}
void ctors_name_mode ( )
{
OUString aFileURL ;
2007-11-20 18:29:58 +00:00
bRes = osl : : Module : : getUrlFromAddress ( ( void * ) & : : osl_Module : : testClass : : myFunc , aFileURL ) ;
if ( ! ( bRes ) )
2003-09-08 12:21:15 +00:00
{
CPPUNIT_ASSERT_MESSAGE ( " Cannot locate current module. " , sal_False ) ;
}
: : osl : : Module aMod ( aFileURL ) ;
bRes = aMod . is ( ) ;
aMod . unload ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " #test comment#: test constructor with load action. " ,
sal_True = = bRes ) ;
}
CPPUNIT_TEST_SUITE ( ctors ) ;
CPPUNIT_TEST ( ctors_none ) ;
CPPUNIT_TEST ( ctors_name_mode ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class ctors
/** testing the methods:
static sal_Bool getUrlFromAddress ( void * addr , : : rtl : : OUString & libraryUrl )
*/
class getUrlFromAddress : public CppUnit : : TestFixture
{
public :
sal_Bool bRes , bRes1 ;
void getUrlFromAddress_001 ( )
{
OUString aFileURL ;
2007-11-20 18:29:58 +00:00
bRes = osl : : Module : : getUrlFromAddress ( ( void * ) & : : osl_Module : : testClass : : myFunc , aFileURL ) ;
if ( ! ( bRes ) )
2003-09-08 12:21:15 +00:00
{
CPPUNIT_ASSERT_MESSAGE ( " Cannot locate current module. " , sal_False ) ;
}
CPPUNIT_ASSERT_MESSAGE ( " #test comment#: test get Module URL from address. " ,
sal_True = = bRes & & 0 < aFileURL . lastIndexOf ( ' / ' ) ) ;
}
void getUrlFromAddress_002 ( )
{
2011-02-08 08:50:20 -08:00
# if !defined( MACOSX )
// TODO: Find out why this fails on Mac OS X
2003-09-08 12:21:15 +00:00
: : osl : : Module aMod ( getDllURL ( ) ) ;
2010-12-10 18:31:39 +01:00
FuncPtr pFunc = ( FuncPtr ) aMod . getSymbol ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " firstfunc " ) ) ) ;
2003-09-08 12:21:15 +00:00
OUString aFileURL ;
2007-11-20 18:29:58 +00:00
bRes = osl : : Module : : getUrlFromAddress ( ( void * ) pFunc , aFileURL ) ;
if ( ! ( bRes ) )
2003-09-08 12:21:15 +00:00
{
CPPUNIT_ASSERT_MESSAGE ( " Cannot locate current module. " , sal_False ) ;
}
aMod . unload ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " #test comment#: load an external library, get its function address and get its URL. " ,
sal_True = = bRes & & 0 < aFileURL . lastIndexOf ( ' / ' ) & & aFileURL . equalsIgnoreAsciiCase ( getDllURL ( ) ) ) ;
2011-02-08 08:50:20 -08:00
# endif
2003-09-08 12:21:15 +00:00
}
2004-03-19 13:48:56 +00:00
/* tester comments: another case is getFunctionSymbol_001*/
2003-09-08 12:21:15 +00:00
CPPUNIT_TEST_SUITE ( getUrlFromAddress ) ;
CPPUNIT_TEST ( getUrlFromAddress_001 ) ;
CPPUNIT_TEST ( getUrlFromAddress_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getUrlFromAddress
/** testing the method:
sal_Bool SAL_CALL load ( const : : rtl : : OUString & strModuleName ,
sal_Int32 nRtldMode = SAL_LOADMODULE_DEFAULT )
*/
class load : public CppUnit : : TestFixture
{
public :
sal_Bool bRes , bRes1 ;
void load_001 ( )
{
: : osl : : Module aMod ( getDllURL ( ) ) ;
: : osl : : Module aMod1 ;
aMod1 . load ( getDllURL ( ) ) ;
bRes = oslModule ( aMod ) = = oslModule ( aMod1 ) ;
aMod . unload ( ) ;
aMod1 . unload ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " #test comment#: load function should do the same thing as constructor with library name. " ,
sal_True = = bRes ) ;
}
2003-11-18 15:39:02 +00:00
// load lib which is under a CJK directory
void load_002 ( )
{
2011-02-08 08:50:20 -08:00
# if defined( UNX ) && !defined( MACOSX )
// TODO: Find out why this fails on Mac OS X
2003-11-18 15:39:02 +00:00
//Can not get a CJK directory already exist, so here create one. Perhaps reason is encoding problem.
2010-12-10 18:31:39 +01:00
: : rtl : : OUString aPidDirURL = rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " file:///tmp/ " ) ) + : : rtl : : OUString : : valueOf ( ( long ) getpid ( ) ) ;
2003-11-18 15:39:02 +00:00
: : rtl : : OUString aMyDirURL = aPidDirURL + aKname ;
createTestDirectory ( aPidDirURL ) ;
createTestDirectory ( aMyDirURL ) ;
2010-12-10 18:31:39 +01:00
: : rtl : : OUString aDLLURL = aMyDirURL + rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /libModule_DLL.so " ) ) ;
2003-11-18 15:39:02 +00:00
//check if the lib exist.
//FIXME: if assert condition is false, the case will return, so the directory will not be clean-up
CPPUNIT_ASSERT_MESSAGE ( " #Source file is not exist. please manually clean-up directory and file under /tmp " , ifFileExist ( getDllURL ( ) ) = = sal_True ) ;
: : osl : : FileBase : : RC nError = : : osl : : File : : copy ( getDllURL ( ) , aDLLURL ) ;
CPPUNIT_ASSERT_MESSAGE ( " #copy failed. please manually clean-up directory and file under /tmp " , nError = = : : osl : : FileBase : : E_None ) ;
//ifFileExist returned false but the file exist
CPPUNIT_ASSERT_MESSAGE ( " #This file is not exist, copy failed. please manually clean-up directory and file under /tmp " , ifFileExist ( aDLLURL ) = = sal_True ) ;
//test if can create a normal file
2010-12-10 18:31:39 +01:00
: : rtl : : OUString aFileURL = aMyDirURL + rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /test_file " ) ) ;
2003-11-18 15:39:02 +00:00
: : osl : : File testFile ( aFileURL ) ;
2010-12-11 19:43:44 +00:00
nError = testFile . open ( osl_File_OpenFlag_Create ) ;
2003-11-18 15:39:02 +00:00
CPPUNIT_ASSERT_MESSAGE ( " #create failed. please manually clean-up directory and file under /tmp " , nError = = : : osl : : FileBase : : E_None ) ;
CPPUNIT_ASSERT_MESSAGE ( " #This file is not exist, create failed. please manually clean-up directory and file under /tmp " , ifFileExist ( aFileURL ) = = sal_True ) ;
//load the copied dll
: : osl : : Module aMod ( aDLLURL ) ;
: : osl : : Module aMod1 ;
sal_Bool bOK = aMod1 . load ( aDLLURL ) ;
bRes = oslModule ( aMod ) = = oslModule ( aMod1 ) ;
aMod . unload ( ) ;
aMod1 . unload ( ) ;
deleteTestFile ( aFileURL ) ;
deleteTestFile ( aDLLURL ) ;
deleteTestDirectory ( aMyDirURL ) ;
deleteTestDirectory ( aPidDirURL ) ;
CPPUNIT_ASSERT_MESSAGE ( " #test comment#: load lib which is under a CJK directory. " ,
sal_True = = bRes & & bOK = = sal_True ) ;
# endif
}
2003-09-08 12:21:15 +00:00
CPPUNIT_TEST_SUITE ( load ) ;
CPPUNIT_TEST ( load_001 ) ;
2003-11-18 15:39:02 +00:00
CPPUNIT_TEST ( load_002 ) ;
2003-09-08 12:21:15 +00:00
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class load
/** testing the method:
void SAL_CALL unload ( )
*/
class unload : public CppUnit : : TestFixture
{
public :
sal_Bool bRes , bRes1 ;
void unload_001 ( )
{
: : osl : : Module aMod ( getDllURL ( ) ) ;
aMod . unload ( ) ;
bRes = oslModule ( aMod ) = = NULL ;
CPPUNIT_ASSERT_MESSAGE ( " #test comment#: unload function should do the same thing as destructor. " ,
sal_True = = bRes ) ;
}
CPPUNIT_TEST_SUITE ( unload ) ;
CPPUNIT_TEST ( unload_001 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class unload
/** testing the methods:
sal_Bool SAL_CALL is ( ) const
*/
class is : public CppUnit : : TestFixture
{
public :
sal_Bool bRes , bRes1 ;
void is_001 ( )
{
OUString aFileURL ;
2007-11-20 18:29:58 +00:00
bRes = osl : : Module : : getUrlFromAddress ( ( void * ) & : : osl_Module : : testClass : : myFunc , aFileURL ) ;
if ( ! ( bRes ) )
2003-09-08 12:21:15 +00:00
{
CPPUNIT_ASSERT_MESSAGE ( " Cannot locate current module - using executable instead " , sal_False ) ;
}
: : osl : : Module aMod ;
bRes = aMod . is ( ) ;
aMod . load ( aFileURL ) ;
bRes1 = aMod . is ( ) ;
aMod . unload ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " #test comment#: test if a module is a loaded module. " ,
sal_False = = bRes & & sal_True = = bRes1 ) ;
}
CPPUNIT_TEST_SUITE ( is ) ;
CPPUNIT_TEST ( is_001 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class is
/** testing the methods:
void * SAL_CALL getSymbol ( const : : rtl : : OUString & strSymbolName )
*/
class getSymbol : public CppUnit : : TestFixture
{
public :
sal_Bool bRes ;
void getSymbol_001 ( )
{
2011-02-08 08:50:20 -08:00
# if !defined( MACOSX )
// TODO: Find out why this fails on Mac OS X
2003-09-08 12:21:15 +00:00
: : osl : : Module aMod ( getDllURL ( ) ) ;
2010-12-10 18:31:39 +01:00
FuncPtr pFunc = ( FuncPtr ) aMod . getSymbol ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " firstfunc " ) ) ) ;
2003-09-08 12:21:15 +00:00
bRes = sal_False ;
if ( pFunc )
bRes = pFunc ( bRes ) ;
aMod . unload ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " #test comment#: load a dll and call one function in it. " ,
sal_True = = bRes ) ;
2011-02-08 08:50:20 -08:00
# endif
2003-09-08 12:21:15 +00:00
}
CPPUNIT_TEST_SUITE ( getSymbol ) ;
CPPUNIT_TEST ( getSymbol_001 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getSymbol
/** testing the methods:
2004-03-19 13:48:56 +00:00
operator oslModule ( ) const
2003-09-08 12:21:15 +00:00
*/
class optr_oslModule : public CppUnit : : TestFixture
{
public :
sal_Bool bRes , bRes1 ;
void optr_oslModule_001 ( )
{
2011-02-08 08:50:20 -08:00
# if !defined( MACOSX )
// TODO: Find out why this fails on Mac OS X
2003-09-08 12:21:15 +00:00
: : osl : : Module aMod ;
bRes = ( ( oslModule ) aMod = = NULL ) ;
aMod . load ( getDllURL ( ) ) ;
bRes1 = ( oslModule ) aMod ! = NULL ;
aMod . unload ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " #test comment#: the m_Module of a Module instance will be NULL when is not loaded, it will not be NULL after loaded. " ,
sal_True = = bRes & & sal_True = = bRes1 ) ;
2011-02-08 08:50:20 -08:00
# endif
2003-09-08 12:21:15 +00:00
}
void optr_oslModule_002 ( )
{
2011-02-08 08:50:20 -08:00
# if !defined( MACOSX )
// TODO: Find out why this fails on Mac OS X
2003-09-08 12:21:15 +00:00
: : osl : : Module aMod ( getDllURL ( ) ) ;
2010-12-10 18:31:39 +01:00
: : rtl : : OUString funcName ( RTL_CONSTASCII_USTRINGPARAM ( " firstfunc " ) ) ;
2003-09-08 12:21:15 +00:00
FuncPtr pFunc = ( FuncPtr ) osl_getSymbol ( ( oslModule ) aMod , funcName . pData ) ;
bRes = sal_False ;
if ( pFunc )
bRes = pFunc ( bRes ) ;
aMod . unload ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " #test comment#: use m_Module to call osl_getSymbol() function. " ,
sal_True = = bRes ) ;
2011-02-08 08:50:20 -08:00
# endif
2003-09-08 12:21:15 +00:00
}
CPPUNIT_TEST_SUITE ( optr_oslModule ) ;
CPPUNIT_TEST ( optr_oslModule_001 ) ;
CPPUNIT_TEST ( optr_oslModule_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class optr_oslModule
2004-03-19 13:48:56 +00:00
/** testing the methods:
oslGenericFunction SAL_CALL getFunctionSymbol ( const : : rtl : : OUString & ustrFunctionSymbolName )
*/
class getFunctionSymbol : public CppUnit : : TestFixture
{
public :
sal_Bool bRes , bRes1 ;
void getFunctionSymbol_001 ( )
{
2011-02-08 08:50:20 -08:00
# if !defined( MACOSX )
// TODO: Find out why this fails on Mac OS X
2004-03-19 13:48:56 +00:00
: : osl : : Module aMod ( getDllURL ( ) ) ;
2010-12-10 18:31:39 +01:00
oslGenericFunction oslFunc = aMod . getFunctionSymbol ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " firstfunc " ) ) ) ;
2004-03-19 13:48:56 +00:00
: : rtl : : OUString aLibraryURL ;
bRes = : : osl : : Module : : getUrlFromAddress ( oslFunc , aLibraryURL ) ;
aMod . unload ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " #test comment#: load a dll and get its function addr and get its URL. " ,
sal_True = = bRes & & aLibraryURL . equalsIgnoreAsciiCase ( getDllURL ( ) ) ) ;
2011-02-08 08:50:20 -08:00
# endif
2004-03-19 13:48:56 +00:00
}
CPPUNIT_TEST_SUITE ( getFunctionSymbol ) ;
CPPUNIT_TEST ( getFunctionSymbol_001 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getFunctionSymbol
2003-09-08 12:21:15 +00:00
// -----------------------------------------------------------------------------
2011-02-06 22:57:15 +01:00
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Module : : ctors ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Module : : getUrlFromAddress ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Module : : load ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Module : : unload ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Module : : is ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Module : : getSymbol ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Module : : optr_oslModule ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Module : : getFunctionSymbol ) ;
2003-09-08 12:21:15 +00:00
// -----------------------------------------------------------------------------
} // namespace osl_Module
// -----------------------------------------------------------------------------
// this macro creates an empty function, which will called by the RegisterAllFunctions()
// to let the user the possibility to also register some functions by hand.
2011-02-06 22:57:15 +01:00
CPPUNIT_PLUGIN_IMPLEMENT ( ) ;
2010-10-14 08:30:07 +02:00
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */