diff -r 6edeef394eb7 -r 9397a16b6eb8 testexecmdw/tef/tef/tefunit/inc/tefunit.h --- a/testexecmdw/tef/tef/tefunit/inc/tefunit.h Fri Sep 03 07:55:01 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,374 +0,0 @@ -/* -* Copyright (c) 2005-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: -* -*/ - - - -/** - @file TEFUnit.h -*/ - -#ifndef __TEF_UNIT__ -#define __TEF_UNIT__ - -#include -#include -#include - -/********************************************************************************* - * Assert Macros - *********************************************************************************/ -#define __ASSERT_SHARED(aFunction, aMessage) \ - if(!aFunction) \ - { \ - Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrAll, aMessage );\ - User::Leave(KErrTEFUnitFail);\ - } - -#define ASSERT_EQUALS(aExpected, aActual) \ - __ASSERT_SHARED(AssertEquals(aExpected, aActual) , KAssertFailedEquals); - -#define ASSERT_NULL(aPtr) \ - __ASSERT_SHARED(AssertNull(aPtr), KAssertFailedNull); - -#define ASSERT_NOT_NULL(aPtr) \ - __ASSERT_SHARED(!AssertNull(aPtr), KAssertFailedNotNull); - -#define ASSERT_SAME(aExpectedPtr, aActualPtr) \ - __ASSERT_SHARED(AssertSame(aExpectedPtr, aActualPtr), KAssertFailedSame); - -#define ASSERT_NOT_SAME(aExpectedPtr, aActualPtr) \ - __ASSERT_SHARED(!AssertSame(aExpectedPtr, aActualPtr), KAssertFailedNotSame); - -#define ASSERT_TRUE(aCondition) \ - __ASSERT_SHARED(AssertTrue(aCondition), KAssertFailedTrue); - -#define ASSERT_FALSE(aCondition) \ - __ASSERT_SHARED(!AssertTrue(aCondition), KAssertFailedFalse); - -/********************************************************************************* - * CTestConfig class - *********************************************************************************/ - -class CTestConfig -/** -@publishedPartner -@test -*/ - { -public: - CTestConfig(); - CTestConfig(const CTestConfig& aTestConfig ); - CTestConfig( CTestStep* aTestStep ); - ~CTestConfig(); - - TBool GetBool(const TDesC& aSectionName, const TDesC& aKey, TBool& aResult) const; - TBool GetInt(const TDesC& aSectionName, const TDesC& aKey, TInt& aResult) const; - TBool GetHex(const TDesC& aSectionName, const TDesC& aKey, TInt& aResult) const; - TBool GetString(const TDesC& aSectionName, const TDesC& aKey, TPtrC& aResult) const; - - // Use the section name passed in via the script - TBool GetBool(const TDesC& aKey, TBool& aResult) const; - TBool GetInt(const TDesC& aKey, TInt& aResult) const; - TBool GetHex(const TDesC& aKey, TInt& aResult) const; - TBool GetString(const TDesC& aKey, TPtrC& aResult) const; - - TBool WriteBool(const TDesC& aSectionName, const TDesC& aKey, TBool& aValue) const; - TBool WriteInt(const TDesC& aSectionName, const TDesC& aKey, TInt& aValue) const; - TBool WriteHex(const TDesC& aSectionName, const TDesC& aKey, TInt& aValue) const; - TBool WriteString(const TDesC& aSectionName, const TDesC& aKey, TPtrC& aValue) const; - - // Use the section name passed in via the script - TBool WriteBool(const TDesC& aKey, TBool& aValue) const; - TBool WriteInt(const TDesC& aKey, TInt& aValue) const; - TBool WriteHex(const TDesC& aKey, TInt& aValue) const; - TBool WriteString(const TDesC& aKey, TPtrC& aValue) const; - - TBool GetInt(const TDesC& aSectionName, const TDesC& aKey, TInt64& aResult) const; - TBool GetInt(const TDesC& aKey, TInt64& aResult) const; - TBool WriteInt(const TDesC& aSectionName, const TDesC& aKey, TInt64& aValue) const; - TBool WriteInt(const TDesC& aKey, TInt64& aValue) const; - -private: - CTestStep* iTestStep; - }; - - -/********************************************************************************* - * CTestFixture class - *********************************************************************************/ - -class CTestFixture : public CBase -/** -@publishedPartner -@test -*/ - { -public: - virtual ~CTestFixture(); - - virtual void SetupL(); - virtual void TearDownL(); - - void SetConfigL(CTestConfig& aConfig); - void SetLoggerL( CTestExecuteLogger& aLogger ); - inline CTestExecuteLogger& Logger() { return iLogger; } - -protected: - CTestConfig iConfig; - CTestExecuteLogger iLogger; - }; - -/********************************************************************************* - * CActiveTestFixture class - *********************************************************************************/ - -class CActiveTestFixture : public CTestFixture -/** -@publishedPartner -@test -*/ - { -public: - virtual ~CActiveTestFixture(); - virtual void SetupL(); - virtual void TearDownL(); - // Construct the active environment - virtual void ConstructEnvL(); - // Destroy the active environment - virtual void DestroyEnvL(); - // Start the active environnment - virtual void StartEnvL(); - // Stop the active environnment - virtual void StopEnvL(); - CActiveScheduler* iSched; - }; - -class CTestCase; -class CTestSuite; - -/********************************************************************************* - * MVisitor class - *********************************************************************************/ -class MVisitor - { -public: - virtual void VisitL(CTestCase* aTestCase) = 0; - virtual void VisitL(CTestSuite* aTestSuite) = 0; - }; - - -const TInt KMaxTestName = 256; -typedef TBuf TTestName; - -const TInt KMaxPathSize = KMaxTestName*10; -typedef TBuf TTestPath; - -/********************************************************************************* - * CTestBase class - *********************************************************************************/ -class CTestBase : public CBase - { -public: - CTestBase(const TTestName &aName); - virtual ~CTestBase(); - - const TTestName& Name() const; - virtual void RunL(CTestConfig& aConfig, CTestExecuteLogger& aLogger) = 0; - virtual void AcceptL(MVisitor &aVisitor) = 0; - -protected: - TTestName iName; - }; - - -/********************************************************************************* - * CTestCase class - *********************************************************************************/ -class CTestCase : public CTestBase - { -public: - CTestCase(const TTestName& aName); - virtual ~CTestCase(); - - virtual void RunL(CTestConfig& aConfig, CTestExecuteLogger& aLogger) = 0; - virtual void AcceptL(MVisitor &aVisitor); - }; - -/********************************************************************************* - * Test Suite Macros - *********************************************************************************/ -#define START_SUITE \ - CTestSuite* lTestSuite = CTestSuite::NewL(); - -#define SUB_SUITE \ - CTestSuite* lTestSuite = CTestSuite::NewL(aName); - -#define END_SUITE \ - return lTestSuite; -//PDEF115446 start -// By adding a condition marco to reconginize different compiler -#ifndef __GCCXML__ - // this means using gcc or armcc or mwccsym2 - #define ADD_TEST_STEP(name) \ - _LIT( KTest ## name, #name); \ - AddTestCase(lTestSuite, KTest ## name, &name); - - #define ADD_ASYNC_TEST_STEP(name) \ - _LIT( KTest ## name, #name); \ - AddAsyncTestCase(lTestSuite, KTest ## name, &name); -#endif -#ifdef __GCCXML__ - // this means using gccxml - // GCCXML compiler NOT use ADD_TEST_STEP - // Please use 2 parameter Macro ADD_(ASYNC)_TEST_STEP_CLASS -#endif - -//PDEF115446 -//new version marco -//For both GCCXML and Non-GCCXML compiler -#define ADD_TEST_STEP_CLASS(classname, callback) \ - _LIT( KTest ## callback, #callback);\ - AddTestCase(lTestSuite, KTest ## callback, & classname::callback); - -#define ADD_ASYNC_TEST_STEP_CLASS(classname, callback) \ - _LIT( KTest ## callback, #callback);\ - AddAsyncTestCase (lTestSuite, KTest ## callback, & classname::callback); -//PDEF115446 end - -#define ADD_TEST_SUITE(name) \ - _LIT( KTest ## name, #name); \ - lTestSuite->AddL( name::CreateSuiteL( KTest##name)); - - -/********************************************************************************* - * CTestSuite class - *********************************************************************************/ - -class CTestSuite : public CTestBase -/** -@publishedPartner -@test -*/ - { -public: - CTestSuite(const TTestName& aName); - CTestSuite(CTestSuite &rhs); - void ConstructL(); - static CTestSuite* NewL(); - static CTestSuite* NewL(const TTestName& aName); - virtual ~CTestSuite(); - - // Add a test to the suite - virtual void AddL(CTestBase* aTest); - - // Run all the tests in the suite - virtual void RunL(CTestConfig& aConfig, CTestExecuteLogger& aLogger); - - virtual void AcceptL(MVisitor &aVisitor); - - TInt Count(); - TTestName NameL( TInt anIndex ); - CTestBase* TestL( TInt anIndex ); - -private: - RPointerArray iTests; - TInt iError; - }; - - -/********************************************************************************* - * CTestCaseTemplate class - *********************************************************************************/ -template -class CTestCaseTemplate : public CTestCase - { -private: - typedef void (Fixture::*TestMethod)(); - -public: - CTestCaseTemplate(const TDesC &aName, TestMethod aTestMethod ); - virtual ~CTestCaseTemplate(); - - virtual void RunL(CTestConfig& aConfig, CTestExecuteLogger& aLogger); - -protected: - TestMethod iTest; - }; - -/********************************************************************************* - * CActiveTester class - *********************************************************************************/ -const TInt KNumberOfDelays = 3; - -template -class CActiveTester : public CTimer - { -private: - typedef void (Fixture::*TestMethod)(); - -public: - CActiveTester(Fixture* aFixture, TestMethod aTestMethod, TTimeIntervalMicroSeconds32 /*aDelays[KNumberOfDelays]*/ ); - virtual ~CActiveTester(); - - virtual void RunL(); - virtual TInt RunError(TInt /*aError*/); - TInt Error(); - virtual void ConstructEnvL(); - void DestroyEnvL(); - void StartEnvL(); - void SetLoggerL(CTestExecuteLogger& aLogger); - void SetConfigL(CTestConfig& aConfig); - -protected: - enum TTestState - { - EConstruct = 0, - ERunTest, - EDestroy, - EExit - }; - - TTestState iState; - Fixture* iFixture; - TestMethod iTest; - TTimeIntervalMicroSeconds32 iDelays[KNumberOfDelays]; - TInt iError; - }; - - -/********************************************************************************* - * CAsyncTestCase class - *********************************************************************************/ -template -class CAsyncTestCase : public CTestCase - { -private: - typedef void (Fixture::*TestMethod)(); - -public: - CAsyncTestCase(const TDesC &aName, TestMethod aTestMethod ); - virtual ~CAsyncTestCase(); - - virtual void RunL(CTestConfig& aConfig, CTestExecuteLogger& aLogger); - -protected: - TestMethod iTest; - }; - -#include - -#endif // __TEF_UNIT__