#include #include using namespace lw; class LogLevelTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE( LogLevelTest ); CPPUNIT_TEST( testToString ); CPPUNIT_TEST_SUITE_END( ); public: void testToString( ); }; CPPUNIT_TEST_SUITE_REGISTRATION( LogLevelTest ); /*----------------------------------------------------------------------------*/ class LogPathTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE( LogPathTest ); CPPUNIT_TEST( testEmpty ); CPPUNIT_TEST( testArrayCopy ); CPPUNIT_TEST( testArrayCopyEmpty ); CPPUNIT_TEST( testArrayCopyInvalidControl ); CPPUNIT_TEST( testArrayCopyInvalidSlash ); CPPUNIT_TEST( testArrayCopyInvalidEmpty ); CPPUNIT_TEST( testArrayMove ); CPPUNIT_TEST( testArrayMoveEmpty ); CPPUNIT_TEST( testArrayMoveInvalidControl ); CPPUNIT_TEST( testArrayMoveInvalidSlash ); CPPUNIT_TEST( testArrayMoveInvalidEmpty ); CPPUNIT_TEST( testInitList ); CPPUNIT_TEST( testInitListEmpty ); CPPUNIT_TEST( testInitListInvalidControl ); CPPUNIT_TEST( testInitListInvalidSlash ); CPPUNIT_TEST( testInitListInvalidEmpty ); CPPUNIT_TEST( testFromStringEmpty ); CPPUNIT_TEST( testFromStringSlash ); CPPUNIT_TEST( testFromStringSlashes ); CPPUNIT_TEST( testFromStringValid ); CPPUNIT_TEST( testFromStringValidSlashes ); CPPUNIT_TEST( testFromStringValidInitialSlash ); CPPUNIT_TEST( testFromStringValidTrailingSlash ); CPPUNIT_TEST( testFromStringInvalid ); CPPUNIT_TEST( testSwap ); CPPUNIT_TEST( testParentEmpty ); CPPUNIT_TEST( testParentOne ); CPPUNIT_TEST( testParentValid ); CPPUNIT_TEST( testParentInvalidChild ); CPPUNIT_TEST( testParentInvalid ); CPPUNIT_TEST( testChildValid ); CPPUNIT_TEST( testChildInvalidName ); CPPUNIT_TEST( testChildInvalidParent ); CPPUNIT_TEST( testToStringEmpty ); CPPUNIT_TEST( testToStringValid ); CPPUNIT_TEST( testToStringInvalidSlash ); CPPUNIT_TEST( testToStringInvalidControl ); CPPUNIT_TEST( testToStringInvalidEmpty ); CPPUNIT_TEST( testIsParentYes ); CPPUNIT_TEST( testIsParentNo ); CPPUNIT_TEST( testIsParentYesInvalidParent ); CPPUNIT_TEST( testIsParentYesInvalidChild ); CPPUNIT_TEST( testIsParentNoInvalidParent ); CPPUNIT_TEST( testIsParentNoInvalidChild ); CPPUNIT_TEST( testEquals ); CPPUNIT_TEST( testNotEquals ); CPPUNIT_TEST_SUITE_END( ); public: void testEmpty( ); void testArrayCopy( ); void testArrayCopyEmpty( ); void testArrayCopyInvalidControl( ); void testArrayCopyInvalidSlash( ); void testArrayCopyInvalidEmpty( ); void testArrayMove( ); void testArrayMoveEmpty( ); void testArrayMoveInvalidControl( ); void testArrayMoveInvalidSlash( ); void testArrayMoveInvalidEmpty( ); void testInitList( ); void testInitListEmpty( ); void testInitListInvalidControl( ); void testInitListInvalidSlash( ); void testInitListInvalidEmpty( ); void testFromStringEmpty( ); void testFromStringSlash( ); void testFromStringSlashes( ); void testFromStringValid( ); void testFromStringValidSlashes( ); void testFromStringValidInitialSlash( ); void testFromStringValidTrailingSlash( ); void testFromStringInvalid( ); void testSwap( ); void testParentEmpty( ); void testParentOne( ); void testParentValid( ); void testParentInvalidChild( ); void testParentInvalid( ); void testChildValid( ); void testChildInvalidName( ); void testChildInvalidParent( ); void testToStringEmpty( ); void testToStringValid( ); void testToStringInvalidSlash( ); void testToStringInvalidControl( ); void testToStringInvalidEmpty( ); void testIsParentYes( ); void testIsParentNo( ); void testIsParentYesInvalidParent( ); void testIsParentYesInvalidChild( ); void testIsParentNoInvalidParent( ); void testIsParentNoInvalidChild( ); void testEquals( ); void testNotEquals( ); }; CPPUNIT_TEST_SUITE_REGISTRATION( LogPathTest ); /*----------------------------------------------------------------------------*/ void LogLevelTest::testToString( ) { T_StringBuilder sb; sb << E_LogLevel::TRACE << ' ' << E_LogLevel::DEBUG << ' ' << E_LogLevel::INFO << ' ' << E_LogLevel::NOTICE << ' ' << E_LogLevel::WARNING << ' ' << E_LogLevel::ERROR << ' ' << E_LogLevel::CRITICAL; T_String s( std::move( sb ) ); CPPUNIT_ASSERT( s == "trace debug info notice warning error critical" ); } /*----------------------------------------------------------------------------*/ void LogPathTest::testEmpty( ) { T_LogPath lp; CPPUNIT_ASSERT( lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 0 ) , lp.size( ) ); } /*----------------------------------------------------------------------------*/ void LogPathTest::testArrayCopy( ) { T_Array< T_String > test; test.add( T_String::Pooled( "a" ) ); test.add( T_String::Pooled( "b" ) ); test.add( T_String::Pooled( "c" ) ); T_LogPath lp( test ); CPPUNIT_ASSERT( lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "c" ); } void LogPathTest::testArrayCopyEmpty( ) { T_Array< T_String > test; T_LogPath lp( test ); CPPUNIT_ASSERT( lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 0 ) , lp.size( ) ); } void LogPathTest::testArrayCopyInvalidControl( ) { T_Array< T_String > test; test.add( T_String::Pooled( "a" ) ); test.add( T_String::Pooled( "b" ) ); test.add( T_String::Pooled( "c\n" ) ); T_LogPath lp( test ); CPPUNIT_ASSERT( !lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "c\n" ); } void LogPathTest::testArrayCopyInvalidSlash( ) { T_Array< T_String > test; test.add( T_String::Pooled( "a" ) ); test.add( T_String::Pooled( "b" ) ); test.add( T_String::Pooled( "c/" ) ); T_LogPath lp( test ); CPPUNIT_ASSERT( !lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "c/" ); } void LogPathTest::testArrayCopyInvalidEmpty( ) { T_Array< T_String > test; test.add( T_String::Pooled( "a" ) ); test.add( T_String::Pooled( "b" ) ); test.add( T_String::Pooled( "" ) ); T_LogPath lp( test ); CPPUNIT_ASSERT( !lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "" ); } /*----------------------------------------------------------------------------*/ void LogPathTest::testArrayMove( ) { T_Array< T_String > test; test.add( T_String::Pooled( "a" ) ); test.add( T_String::Pooled( "b" ) ); test.add( T_String::Pooled( "c" ) ); RPC_String s0( &test[ 0 ] ); RPC_String s1( &test[ 1 ] ); RPC_String s2( &test[ 2 ] ); T_LogPath lp( std::move( test ) ); CPPUNIT_ASSERT( lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "c" ); CPPUNIT_ASSERT_EQUAL( s0 , &lp[ 0 ] ); CPPUNIT_ASSERT_EQUAL( s1 , &lp[ 1 ] ); CPPUNIT_ASSERT_EQUAL( s2 , &lp[ 2 ] ); } void LogPathTest::testArrayMoveEmpty( ) { T_Array< T_String > test; T_LogPath lp( std::move( test ) ); CPPUNIT_ASSERT( lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 0 ) , lp.size( ) ); } void LogPathTest::testArrayMoveInvalidControl( ) { T_Array< T_String > test; test.add( T_String::Pooled( "a" ) ); test.add( T_String::Pooled( "b" ) ); test.add( T_String::Pooled( "c\n" ) ); T_LogPath lp( std::move( test ) ); CPPUNIT_ASSERT( !lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "c\n" ); } void LogPathTest::testArrayMoveInvalidSlash( ) { T_Array< T_String > test; test.add( T_String::Pooled( "a" ) ); test.add( T_String::Pooled( "b" ) ); test.add( T_String::Pooled( "c/" ) ); T_LogPath lp( std::move( test ) ); CPPUNIT_ASSERT( !lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "c/" ); } void LogPathTest::testArrayMoveInvalidEmpty( ) { T_Array< T_String > test; test.add( T_String::Pooled( "a" ) ); test.add( T_String::Pooled( "b" ) ); test.add( T_String::Pooled( "" ) ); T_LogPath lp( std::move( test ) ); CPPUNIT_ASSERT( !lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "" ); } /*----------------------------------------------------------------------------*/ void LogPathTest::testInitList( ) { T_LogPath lp{ "a" , "b" , "c" }; CPPUNIT_ASSERT( lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "c" ); } void LogPathTest::testInitListEmpty( ) { T_LogPath lp{ }; CPPUNIT_ASSERT( lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 0 ) , lp.size( ) ); } void LogPathTest::testInitListInvalidControl( ) { T_LogPath lp{ "a" , "b" , "c\n" }; CPPUNIT_ASSERT( !lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "c\n" ); } void LogPathTest::testInitListInvalidSlash( ) { T_LogPath lp{ "a" , "b" , "c/" }; CPPUNIT_ASSERT( !lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "c/" ); } void LogPathTest::testInitListInvalidEmpty( ) { T_LogPath lp{ "a" , "b" , "" }; CPPUNIT_ASSERT( !lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "" ); } /*----------------------------------------------------------------------------*/ void LogPathTest::testFromStringEmpty( ) { T_LogPath lp( T_LogPath::FromString( "" ) ); CPPUNIT_ASSERT( lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 0 ) , lp.size( ) ); } void LogPathTest::testFromStringSlash( ) { T_LogPath lp( T_LogPath::FromString( "/" ) ); CPPUNIT_ASSERT( lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 0 ) , lp.size( ) ); } void LogPathTest::testFromStringSlashes( ) { T_LogPath lp( T_LogPath::FromString( "/////" ) ); CPPUNIT_ASSERT( lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 0 ) , lp.size( ) ); } void LogPathTest::testFromStringValid( ) { T_LogPath lp( T_LogPath::FromString( "a/b/c" ) ); CPPUNIT_ASSERT( lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "c" ); } void LogPathTest::testFromStringValidSlashes( ) { T_LogPath lp( T_LogPath::FromString( "a//b////c" ) ); CPPUNIT_ASSERT( lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "c" ); } void LogPathTest::testFromStringValidInitialSlash( ) { T_LogPath lp( T_LogPath::FromString( "/a/b/c" ) ); CPPUNIT_ASSERT( lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "c" ); } void LogPathTest::testFromStringValidTrailingSlash( ) { T_LogPath lp( T_LogPath::FromString( "a/b/c/" ) ); CPPUNIT_ASSERT( lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b" ); CPPUNIT_ASSERT( lp[ 2 ] == "c" ); } void LogPathTest::testFromStringInvalid( ) { T_LogPath lp( T_LogPath::FromString( "a/b\n/c" ) ); CPPUNIT_ASSERT( !lp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 3 ) , lp.size( ) ); CPPUNIT_ASSERT( lp[ 0 ] == "a" ); CPPUNIT_ASSERT( lp[ 1 ] == "b\n" ); CPPUNIT_ASSERT( lp[ 2 ] == "c" ); } /*----------------------------------------------------------------------------*/ void LogPathTest::testSwap( ) { T_LogPath lp1{ "a" }; T_LogPath lp2{ "b" , "c" }; RPC_String p[] = { &lp1[ 0 ] , &lp2[ 0 ] , &lp2[ 1 ] }; swap( lp1 , lp2 ); CPPUNIT_ASSERT_EQUAL( uint32_t( 2 ) , lp1.size( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 1 ) , lp2.size( ) ); CPPUNIT_ASSERT_EQUAL( p[ 0 ] , &lp2[ 0 ] ); CPPUNIT_ASSERT_EQUAL( p[ 1 ] , &lp1[ 0 ] ); CPPUNIT_ASSERT_EQUAL( p[ 2 ] , &lp1[ 1 ] ); } /*----------------------------------------------------------------------------*/ void LogPathTest::testParentEmpty( ) { T_LogPath lp; T_LogPath plp( lp.parent( ) ); CPPUNIT_ASSERT( plp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 0 ) , plp.size( ) ); } void LogPathTest::testParentOne( ) { T_LogPath lp{ "a" }; T_LogPath plp( lp.parent( ) ); CPPUNIT_ASSERT( plp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 0 ) , plp.size( ) ); } void LogPathTest::testParentValid( ) { T_LogPath lp{ "a" , "b" }; T_LogPath plp( lp.parent( ) ); CPPUNIT_ASSERT( plp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 1 ) , plp.size( ) ); CPPUNIT_ASSERT( plp[ 0 ] == "a" ); } void LogPathTest::testParentInvalidChild( ) { T_LogPath lp{ "a" , "b/" }; T_LogPath plp( lp.parent( ) ); CPPUNIT_ASSERT( plp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 1 ) , plp.size( ) ); CPPUNIT_ASSERT( plp[ 0 ] == "a" ); } void LogPathTest::testParentInvalid( ) { T_LogPath lp{ "a/" , "b" }; T_LogPath plp( lp.parent( ) ); CPPUNIT_ASSERT( !plp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 1 ) , plp.size( ) ); CPPUNIT_ASSERT( plp[ 0 ] == "a/" ); } /*----------------------------------------------------------------------------*/ void LogPathTest::testChildValid( ) { T_LogPath lp{ "a" }; T_LogPath clp( lp.child( "b" ) ); CPPUNIT_ASSERT( clp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 2 ) , clp.size( ) ); CPPUNIT_ASSERT( clp[ 0 ] == "a" ); CPPUNIT_ASSERT( clp[ 1 ] == "b" ); } void LogPathTest::testChildInvalidName( ) { T_LogPath lp{ "a" }; T_LogPath clp( lp.child( "b\n" ) ); CPPUNIT_ASSERT( !clp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 2 ) , clp.size( ) ); CPPUNIT_ASSERT( clp[ 0 ] == "a" ); CPPUNIT_ASSERT( clp[ 1 ] == "b\n" ); } void LogPathTest::testChildInvalidParent( ) { T_LogPath lp{ "a\n" }; T_LogPath clp( lp.child( "b" ) ); CPPUNIT_ASSERT( !clp.isValid( ) ); CPPUNIT_ASSERT_EQUAL( uint32_t( 2 ) , clp.size( ) ); CPPUNIT_ASSERT( clp[ 0 ] == "a\n" ); CPPUNIT_ASSERT( clp[ 1 ] == "b" ); } /*----------------------------------------------------------------------------*/ void LogPathTest::testToStringEmpty( ) { T_LogPath lp; CPPUNIT_ASSERT( lp.toString( ) == "/" ); } void LogPathTest::testToStringValid( ) { T_LogPath lp{ "a" , "b" , "c" }; CPPUNIT_ASSERT( lp.toString( ) == "/a/b/c" ); } void LogPathTest::testToStringInvalidSlash( ) { T_LogPath lp{ "a" , "/b" , "c" }; CPPUNIT_ASSERT( lp.toString( ) == "/a//b/c" ); } void LogPathTest::testToStringInvalidControl( ) { T_LogPath lp{ "a" , "b\n" , "c" }; CPPUNIT_ASSERT( lp.toString( ) == "/a/b\n/c" ); } void LogPathTest::testToStringInvalidEmpty( ) { T_LogPath lp{ "a" , "" , "c" }; CPPUNIT_ASSERT( lp.toString( ) == "/a//c" ); } /*----------------------------------------------------------------------------*/ void LogPathTest::testIsParentYes( ) { T_LogPath gc{ "a" , "b" }; T_LogPath c{ "a" }; T_LogPath p; CPPUNIT_ASSERT( p.isParentOf( c ) ); CPPUNIT_ASSERT( c.isParentOf( gc ) ); CPPUNIT_ASSERT( c.isChildOf( p ) ); CPPUNIT_ASSERT( gc.isChildOf( c ) ); } void LogPathTest::testIsParentNo( ) { T_LogPath p1{ "a" , "b" , "c" }; T_LogPath p2{ "a" , "b" , "d" , "e" }; CPPUNIT_ASSERT( !p1.isParentOf( p2 ) ); CPPUNIT_ASSERT( !p2.isParentOf( p1 ) ); CPPUNIT_ASSERT( !p1.isChildOf( p2 ) ); CPPUNIT_ASSERT( !p2.isChildOf( p1 ) ); } void LogPathTest::testIsParentYesInvalidParent( ) { T_LogPath p1{ "a\n" }; T_LogPath p2{ "a\n" , "b" }; CPPUNIT_ASSERT( p1.isParentOf( p2 ) ); CPPUNIT_ASSERT( p2.isChildOf( p1 ) ); } void LogPathTest::testIsParentYesInvalidChild( ) { T_LogPath p1{ "a" }; T_LogPath p2{ "a" , "b\n" }; CPPUNIT_ASSERT( p1.isParentOf( p2 ) ); CPPUNIT_ASSERT( p2.isChildOf( p1 ) ); } void LogPathTest::testIsParentNoInvalidParent( ) { T_LogPath p1{ "b\n" }; T_LogPath p2{ "c" , "b" }; CPPUNIT_ASSERT( !p1.isParentOf( p2 ) ); CPPUNIT_ASSERT( !p2.isParentOf( p1 ) ); CPPUNIT_ASSERT( !p1.isChildOf( p2 ) ); CPPUNIT_ASSERT( !p2.isChildOf( p1 ) ); } void LogPathTest::testIsParentNoInvalidChild( ) { T_LogPath p1{ "b" }; T_LogPath p2{ "c" , "b\n" }; CPPUNIT_ASSERT( !p1.isParentOf( p2 ) ); CPPUNIT_ASSERT( !p2.isParentOf( p1 ) ); CPPUNIT_ASSERT( !p1.isChildOf( p2 ) ); CPPUNIT_ASSERT( !p2.isChildOf( p1 ) ); } /*----------------------------------------------------------------------------*/ void LogPathTest::testEquals( ) { T_LogPath p1{ "a" }; T_LogPath p2( p1 ); T_LogPath p3{ "b" , "c" }; T_LogPath p4{ "d" }; CPPUNIT_ASSERT( p1 == p1 ); CPPUNIT_ASSERT( p1 == p2 ); CPPUNIT_ASSERT( !( p1 == p3 ) ); CPPUNIT_ASSERT( !( p1 == p4 ) ); } void LogPathTest::testNotEquals( ) { T_LogPath p1{ "a" }; T_LogPath p2( p1 ); T_LogPath p3{ "b" , "c" }; T_LogPath p4{ "d" }; CPPUNIT_ASSERT( !( p1 != p1 ) ); CPPUNIT_ASSERT( !( p1 != p2 ) ); CPPUNIT_ASSERT( p1 != p3 ); CPPUNIT_ASSERT( p1 != p4 ); }