--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tzservices/tzserver/test/Common/inc/DstStep.h Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,148 @@
+/**
+* Copyright (c) 2004-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:
+*
+*/
+
+
+
+#if (!defined __DSTSTEP_H__)
+#define __DSTSTEP_H__
+
+#include <test/testexecutestepbase.h>
+#include "DstServer.h"
+#include <tz.h>
+
+class CDstStep;
+/////////////////////////////////////////////////////////////////////////
+// CDSTActiveWorker
+//
+class CDSTActiveWorker : public CActive
+ {
+public:
+ static CDSTActiveWorker* NewL(const CDstStep& aTestStep);
+ ~CDSTActiveWorker();
+ void Start();
+
+private:
+ CDSTActiveWorker(const CDstStep& aTestStep);
+ void CompleteSelf();
+
+ // from CActive
+ void RunL();
+ void DoCancel();
+ TInt RunError(TInt aError);
+
+private:
+ CDstStep& iTestStep;
+ };
+
+/////////////////////////////////////////////////////////////////////////
+// CDstStep
+//
+class CDstStep : public CTestStep
+ {
+public:
+ friend class CDSTActiveWorker;
+ CDstStep();
+ ~CDstStep();
+
+ // Called by Asynchronous test steps when they complete their
+ // test
+ void TestCompleted(TInt aCondition);
+
+ // Called by test step sub-class,
+ // immediately after connecting to the session and before
+ // any other Component Under Test is created,
+ // to register the file session for stress testing.
+ void SetFileSession(RFs& aFs);
+
+ // Logs the description if error Condition
+ // the whole test step is considered failed if any logged check is a failure
+ void LogCheck(const TDesC& aDescription, TInt aCondition);
+
+ // Reads a TTime-like format string but allows the use of proper month and day values
+ static TTime ReadTimeParamStringL(const TDesC& aParamString);
+
+protected:
+ // Template Method Called by doTestStepL thru StartTest()
+ virtual TInt CreateAndRunTestUnitL() = 0;
+
+ // Template Method called by TestCompleted() thru FinishTest()
+ virtual void DestroyTestUnit() = 0;
+
+ // Template Method called by doTestStepPreambleL()
+ virtual void PrepareTestEnvironmentL();
+
+private:
+
+ enum TState
+ {
+ EIdle=0,
+ ERunningLeakTest,
+ ERunningFileTest,
+ ERunningNormalTest,
+ };
+
+ enum TTestCmd
+ {
+ ECreateUnit=0,
+ EDestroyUnit
+ };
+
+
+ // Called by ActiveWorker to start the test
+ TInt RunTest();
+
+ // Tidies up after each run of a test. The test may be run several times
+ // before the test step returns to TestExecute
+ TInt FinishTest();
+
+
+ // Kicks-off each run of a test. see FinishTest()
+ TInt StartTest();
+
+ // from CTestStep
+ TVerdict doTestStepL(); // Pure virtual
+ TVerdict doTestStepPostambleL(); // virtual
+ TVerdict doTestStepPreambleL();
+
+protected:
+ RTz iTimeZoneServer;
+ RFs iFileServ;
+
+private:
+ TState iState;
+ TTestCmd iTestCmd;
+ TInt iTestCondition;
+ TInt iMaxRunTestCount;
+ TInt iTestCount;
+ TInt iMaxLeakTestCount;
+ TInt iFirstLeakIter;
+ TInt iMaxFileTestCount;
+ TInt iStartPHandleCount;
+ TInt iStartTHandleCount;
+ TBool iCheckHandles;
+
+ TInt iChecksPassed; // accummulates the number of checks passed
+ TInt iChecksFailed; // accummulates the number of checks failed
+
+ CActiveScheduler* iScheduler;
+ CDSTActiveWorker* iActiveWorker;
+ RFs* iFs; // not owned
+ };
+
+#endif
+
+