From: <ric...@us...> - 2011-09-17 02:20:25
|
Revision: 1102 http://loki-lib.svn.sourceforge.net/loki-lib/?rev=1102&view=rev Author: rich_sposato Date: 2011-09-17 02:20:19 +0000 (Sat, 17 Sep 2011) Log Message: ----------- Uncommented test for const DestructiveCopy pointer after fixing bug. Modified Paths: -------------- trunk/test/SmartPtr/main.cpp Modified: trunk/test/SmartPtr/main.cpp =================================================================== --- trunk/test/SmartPtr/main.cpp 2011-09-17 02:19:01 UTC (rev 1101) +++ trunk/test/SmartPtr/main.cpp 2011-09-17 02:20:19 UTC (rev 1102) @@ -40,6 +40,8 @@ extern void DoLockedPtrTest( void ); extern void DoLockedStorageTest( void ); +extern void TryColvinGibbonsTrick( void ); + unsigned int BaseClass::s_constructions = 0; unsigned int BaseClass::s_destructions = 0; @@ -1488,23 +1490,23 @@ /** @note The following code won't compile because p1 is declared const. You can test if Loki's SmartPtr DestructiveCopy policy was designed correctly by uncommenting these lines and seeing if any errors occur when compiling. If you see errors about converting - from const to non-const, or about assigning a ready-only reference, then DestructiveCopy + from const to non-const, or about assigning a read-only reference, then DestructiveCopy was designed correctly. */ -// DestructiveCopyPtr p2; -// assert( !p2 ); -// p2 = p1; -// assert( !p1 ); -// assert( p2 ); -// DestructiveCopyPtr p3( p2 ); -// assert( p3 ); -// assert( !p2 ); + DestructiveCopyPtr p2; + assert( !p2 ); + p2 = p1; + assert( !p1 ); + assert( p2 ); + DestructiveCopyPtr p3( p2 ); + assert( p3 ); + assert( !p2 ); } { /// @todo The following lines need to be uncommented when bug 3224572 gets fixed. -// DestructiveCopyPtr p1( MakePointer() ); -// assert( p1 ); + DestructiveCopyPtr p1( MakePointer() ); + assert( p1 ); } assert( BaseClass::AllDestroyed() ); @@ -1544,6 +1546,7 @@ DoRefLinkSwapTests(); DoComRefTest(); + TryColvinGibbonsTrick(); DoStrongConstTests(); DoConstConversionTests(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |