diff -r 7fdc9a71d314 -r 8ad140f3dd41 stif/stif_plat/inc/TestclassAssert.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stif/stif_plat/inc/TestclassAssert.h Wed Oct 13 16:17:58 2010 +0300 @@ -0,0 +1,231 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: This file contains the header file of the testclass +* assert macros. +* +*/ + +#ifndef TestclassAssert_MACROS_H +#define TestclassAssert_MACROS_H + +_LIT( KAssertFailedEquals, "AssertEquals Failed [F:%s][L:%d]" ); +_LIT( KAssertFailedNotEquals, "AssertNotEquals Failed [F:%s][L:%d]" ); +_LIT( KAssertFailedNull, "AssertNull Failed [F:%s][L:%d]" ); +_LIT( KAssertFailedNotNull, "AssertNotNull Failed [F:%s][L:%d]" ); +_LIT( KAssertFailedSame, "AssertSame Failed [F:%s][L:%d]" ); +_LIT( KAssertFailedNotSame, "AssertNotSame Failed [F:%s][L:%d]" ); +_LIT( KAssertFailedTrue, "AssertTrue Failed [F:%s][L:%d]" ); +_LIT( KAssertFailedFalse, "AssertFalse Failed [F:%s][L:%d]" ); +_LIT( KAssertFailedNotLeaves, "AssertNotLeaves Failed [F:%s][L:%d]" ); +_LIT( KAssertFailedLeaves, "AssertLeaves Failed [F:%s][L:%d]" ); +_LIT( KAssertFailedLeavesWith, "AssertLeavesWith Failed [F:%s][L:%d]" ); + + +#ifdef _UNICODE + #define __STIF_WIDEN2(x) L ## x + #define __STIF_WIDEN(x) __STIF_WIDEN2(x) + #define __STIF_DBG_FILE__ __STIF_WIDEN(__FILE__) +#else + #define __STIF_DBG_FILE__ __FILE__ +#endif + + +// Logs to the STIF log file AND to the RDebug +#define STIF_LOG( aMessage ) \ + iLog->Log( _L( aMessage ) ); RDebug::Print( _L( aMessage ) ); + + +/********************************************************************************* + * Assert Macros + *********************************************************************************/ +#define __STIF_ASSERT_SHARED( aFunction, aMessage ) \ + if(!aFunction) \ + { \ + iLog->Log( aMessage, __STIF_DBG_FILE__, __LINE__ );\ + return KErrGeneral;\ + } + +#define __STIF_ASSERT_SHARED_RET( aFunction, aMessage, aFailedReturn ) \ + if(!aFunction) \ + { \ + iLog->Log( aMessage, __STIF_DBG_FILE__, __LINE__ );\ + return aFailedReturn;\ + } + + +#define STIF_ASSERT_EQUALS( aExpected, aActual ) \ + __STIF_ASSERT_SHARED( AssertEquals( aExpected, aActual ) , KAssertFailedEquals ); + +#define STIF_ASSERT_EQUALS_RET( aExpected, aActual, aFailedRet ) \ + __STIF_ASSERT_SHARED_RET( AssertEquals( aExpected, aActual ) , KAssertFailedEquals, aFailedRet ); + +#define STIF_ASSERT_NOT_EQUALS( aExpected, aActual ) \ + __STIF_ASSERT_SHARED( !AssertEquals( aExpected, aActual ) , KAssertFailedNotEquals ); + +#define STIF_ASSERT_NOT_EQUALS_RET( aExpected, aActual, aFailedRet ) \ + __STIF_ASSERT_SHARED_RET( !AssertEquals( aExpected, aActual ) , KAssertFailedNotEquals, aFailedRet ); + +#define STIF_ASSERT_NULL( aPtr ) \ + __STIF_ASSERT_SHARED( AssertNull( aPtr ), KAssertFailedNull ); + +#define STIF_ASSERT_NULL_RET( aPtr, aFailedRet ) \ + __STIF_ASSERT_SHARED_RET( AssertNull( aPtr ), KAssertFailedNull, aFailedRet ); + +#define STIF_ASSERT_NOT_NULL( aPtr ) \ + __STIF_ASSERT_SHARED( !AssertNull( aPtr ), KAssertFailedNotNull ); + +#define STIF_ASSERT_NOT_NULL_RET( aPtr, aFailedRet ) \ + __STIF_ASSERT_SHARED_RET( !AssertNull( aPtr ), KAssertFailedNotNull, aFailedRet ); + +#define STIF_ASSERT_SAME( aExpectedPtr, aActualPtr ) \ + __STIF_ASSERT_SHARED( AssertSame( aExpectedPtr, aActualPtr ), KAssertFailedSame ); + +#define STIF_ASSERT_SAME_RET( aExpectedPtr, aActualPtr, aFailedRet ) \ + __STIF_ASSERT_SHARED_RET( AssertSame( aExpectedPtr, aActualPtr ), KAssertFailedSame, aFailedRet ); + +#define STIF_ASSERT_NOT_SAME( aExpectedPtr, aActualPtr ) \ + __STIF_ASSERT_SHARED( !AssertSame( aExpectedPtr, aActualPtr ), KAssertFailedNotSame ); + +#define STIF_ASSERT_NOT_SAME_RET( aExpectedPtr, aActualPtr, aFailedRet ) \ + __STIF_ASSERT_SHARED_RET( !AssertSame( aExpectedPtr, aActualPtr ), KAssertFailedNotSame, aFailedRet ); + +#define STIF_ASSERT_TRUE( aCondition ) \ + __STIF_ASSERT_SHARED( AssertTrue( aCondition ), KAssertFailedTrue ); + +#define STIF_ASSERT_TRUE_RET( aCondition, aFailedRet ) \ + __STIF_ASSERT_SHARED_RET( AssertTrue( aCondition ), KAssertFailedTrue, aFailedRet ); + +#define STIF_ASSERT_FALSE( aCondition ) \ + __STIF_ASSERT_SHARED( !AssertTrue( aCondition ), KAssertFailedFalse ); + +#define STIF_ASSERT_FALSE_RET( aCondition, aFailedRet ) \ + __STIF_ASSERT_SHARED_RET( !AssertTrue( aCondition ), KAssertFailedFalse, aFailedRet ); + +// Eclosing block is used to create the scope for the __leaveValue +#define STIF_ASSERT_NOT_LEAVES( aStatement ) \ + { \ + TRAPD( __leaveValue, aStatement ); \ + __STIF_ASSERT_SHARED( AssertEquals( __leaveValue, KErrNone ), KAssertFailedNotLeaves ); \ + } + +#define STIF_ASSERT_NOT_LEAVES_RET( aStatement, aFailedRet ) \ + { \ + TRAPD( __leaveValue, aStatement ); \ + __STIF_ASSERT_SHARED_RET( AssertEquals( __leaveValue, KErrNone ), KAssertFailedNotLeaves, aFailedRet ); \ + } + +// Eclosing block is used to create the scope for the __leaveValue +#define STIF_ASSERT_LEAVES( aStatement ) \ + { \ + TRAPD( __leaveValue, aStatement ); \ + __STIF_ASSERT_SHARED( !AssertEquals( __leaveValue, KErrNone ), KAssertFailedLeaves ); \ + } + +#define STIF_ASSERT_LEAVES_RET( aStatement, aFailedRet ) \ + { \ + TRAPD( __leaveValue, aStatement ); \ + __STIF_ASSERT_SHARED_RET( !AssertEquals( __leaveValue, KErrNone ), KAssertFailedLeaves, aFailedRet ); \ + } + +// Eclosing block is used to create the scope for the __leaveValue +#define STIF_ASSERT_LEAVES_WITH( aLeaveCode, aStatement ) \ + { \ + TRAPD( __leaveValue, aStatement ); \ + __STIF_ASSERT_SHARED( AssertEquals( __leaveValue, aLeaveCode ), KAssertFailedLeaves ); \ + } + +#define STIF_ASSERT_LEAVES_WITH_RET( aLeaveCode, aStatement, aFailedRet ) \ + { \ + TRAPD( __leaveValue, aStatement ); \ + __STIF_ASSERT_SHARED_RET( AssertEquals( __leaveValue, aLeaveCode ), KAssertFailedLeaves, aFailedRet ); \ + } + +#define STIF_ASSERT_PANIC( aPanicCode, aStatement ) \ + { \ + TestModuleIf().SetExitReason( CTestModuleIf::EPanic, aPanicCode ); \ + aStatement; \ + } + +template +inline TBool AssertEquals(const T& aExpected, const T& aActual) +/** + * AssertEquals + * + * + * @param aExpected - Expected result + * @param aActual - Actual result + * @return - True if equal + */ + { + if( aExpected==aActual ) + { + return ETrue; + } + return EFalse; + } + +template +inline TBool AssertNull(const T* aPtr) +/** + * AssertNull + * + * + * @param aPtr - Pointer + * @return - True if NULL + */ + { + if( aPtr==NULL ) + { + return ETrue; + } + return EFalse; + } + +template +inline TBool AssertSame(const T* aExpectedPtr, const T* aActualPtr) +/** + * AssertSame + * + * + * @param aExpectedPtr - Expected pointer + * @param aActualPtr - Actual pointer + * @return - True if equal + */ + { + if( aExpectedPtr==aActualPtr ) + { + return ETrue; + } + return EFalse; + } + +inline TBool AssertTrue(const TBool& aCondition) +/** + * AssertTrue + * + * + * @param aCondition - Condition + * @return - True if aCondition is true + */ + { + if( !aCondition ) + { + return EFalse; + } + return ETrue; + } + +#endif + +// End of File