diff -r 000000000000 -r 96e5fb8b040d kerneltest/e32test/usbho/t_usbdi/inc/TestPolicy.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/usbho/t_usbdi/inc/TestPolicy.h Thu Dec 17 09:24:54 2009 +0200 @@ -0,0 +1,133 @@ +#ifndef __TEST_POLICY_H +#define __TEST_POLICY_H + +/* +* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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 TestPolicy.h +* @internalComponent +* +* +*/ + + + +#include +#include +#include + +extern RTest gtest; + +namespace NUnitTesting_USBDI + { + +// Forward declarations + +class CBaseTestCase; + +/** +*/ +class CBasicTestPolicy : public CActive + { +public: + static CBasicTestPolicy* NewL(); + + /** + Destructor + */ + + virtual ~CBasicTestPolicy(); + + /** + Run the test case with the specified identity and receive notification of test case + success or failiure completion + @param aTestCaseId the identity of the test case to run + @param aStatus the request status of the entity that wants test case completion notification + */ + + virtual void RunTestCaseL(const TDesC& aTestCaseId,TRequestStatus& aStatus); + + /** + */ + + virtual void SignalTestComplete(TInt aCompletionCode); + +protected: + CBasicTestPolicy(); + void ConstructL(); + +protected: + void DoCancel(); + void RunL(); + TInt RunError(TInt aError); + +protected: + CBaseTestCase* iTestCase; + TRequestStatus* iNotifierStatus; + }; + +/** +*/ +class CThreadTestPolicy : public CBasicTestPolicy + { +public: + static CThreadTestPolicy* NewL(); + + /** + Destructor + */ + + virtual ~CThreadTestPolicy(); + + /** + Run the test case with the specified identity and receive notification of test case + success or failiure completion + @param aTestCaseId the identity of the test case to run + @param aStatus the request status of the entity that wants test case completion notification + */ + + virtual void RunTestCaseL(const TDesC& aTestCaseId,TRequestStatus& aStatus); + + /** + */ + + virtual void SignalTestComplete(TInt aCompletionCode); + +protected: + void DoCancel(); + void RunL(); + TInt RunError(TInt aError); + +private: + CThreadTestPolicy(); + + void ConstructL(); + + static TInt ThreadFunction(TAny* aThreadParameter); + static TInt DoTestL(const TDesC& aTestCaseId); + +private: + /** + Each test case executes its test code in a spawned thread, so iTestThread is + the handle to the spawned test thread + */ + RThread iTestThread; + + HBufC* iTestCaseId; + }; + + + } + +#endif