/** @file
$ Id $
$ Date $
$ Author $
@ copy & copy ; Marc W & auml ; ckerlin
@ license LGPL , see file < a href = " license.html " > COPYING < / a >
$ Log $
Revision 1.5 2004 / 10 / 13 10 : 49 : 12 marc
check whether shared libraries are evaluated
Revision 1.4 2004 / 08 / 28 16 : 21 : 25 marc
mrw - c + + - 0.92 ( mrw )
- new file : version . cpp
- new file header for all sources
- work around warning in mrw : : auto < T >
- possibility to compile without log4cxx
- work around bugs in demangle . h and libiberty . h
- corrections in documentation
- added simple tracing mechanism
- more warnings
- small corrections in Auto < > : : Free and a new test for it
- possibility to compile without stack trace
*/
# include <mrw/stacktrace.hpp>
# include <cppunit/TestFixture.h>
# include <cppunit/ui/text/TestRunner.h>
# include <cppunit/extensions/HelperMacros.h>
# include <cppunit/extensions/TestFactoryRegistry.h>
namespace mrw {
class StackTraceTest : public CppUnit : : TestFixture {
public :
/// test if symbols are correctely evaluated
void StackTrace ( ) {
mrw : : StackTrace : : createSymtable ( ) ;
mrw : : StackTrace s ; int l ( __LINE__ ) ; std : : string f ( __FILE__ ) ;
std : : stringstream ss ;
ss < < f < < ' : ' < < l ;
std : : string st ( s ) ;
std : : string : : size_type pos ( st . find ( ss . str ( ) ) ) ;
CPPUNIT_ASSERT ( pos ! = std : : string : : npos ) ;
CPPUNIT_ASSERT ( st . find ( " mrw::StackTraceTest::StackTrace() " , pos )
< st . size ( ) ) ;
CPPUNIT_ASSERT ( st . find ( " CppUnit::TestCase::run " )
< st . size ( ) ) ;
CPPUNIT_ASSERT ( st . find ( " ????:0 ???? " )
> = st . size ( ) ) ;
}
CPPUNIT_TEST_SUITE ( StackTraceTest ) ;
CPPUNIT_TEST ( StackTrace ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ;
CPPUNIT_TEST_SUITE_REGISTRATION ( StackTraceTest ) ;
}
int main ( ) {
CppUnit : : TextUi : : TestRunner runner ;
runner . addTest ( CppUnit : : TestFactoryRegistry : : getRegistry ( ) . makeTest ( ) ) ;
return runner . run ( ) ? 0 : 1 ;
}