diff -r 3406c99bc375 -r 07b41fa8d1dd stif/TestEngine/src/Testcasetimeout.cpp --- a/stif/TestEngine/src/Testcasetimeout.cpp Thu Jul 15 20:25:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,321 +0,0 @@ -/* -* 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 module contains implementation of -* CTestCaseTimeout class member functions. -* -*/ - -// INCLUDE FILES -#include -#include -#include -#include "TestReport.h" -#include "TestEngine.h" -#include "TestEngineCommon.h" -#include "TestCaseController.h" - -// EXTERNAL DATA STRUCTURES -// None - -// EXTERNAL FUNCTION PROTOTYPES -// None - -// CONSTANTS -// None - -// MACROS -// None - -// LOCAL CONSTANTS AND MACROS -// None - -// MODULE DATA STRUCTURES -// None - -// LOCAL FUNCTION PROTOTYPES -// None - -// FORWARD DECLARATIONS -// None - -// ==================== LOCAL FUNCTIONS ======================================= -// None - -// ================= MEMBER FUNCTIONS ========================================= - -/* -------------------------------------------------------------------------------- - - Class: CTestCaseTimeout - - Method: CTestCaseTimeout - - Description: Default constructor - - C++ default constructor can NOT contain any code, that - might leave. - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -CTestCaseTimeout::CTestCaseTimeout() : CActive (CActive::EPriorityStandard) - { - - } - -/* -------------------------------------------------------------------------------- - - Class: CTestCaseTimeout - - Method: ConstructL - - Description: Symbian OS second phase constructor - - Symbian OS default constructor can leave. - - Parameters: - - Return Values: None - - Errors/Exceptions: - - Status: Approved - -------------------------------------------------------------------------------- -*/ -void CTestCaseTimeout::ConstructL( CTestCaseController* aCase, - TTimeIntervalMicroSeconds aTimeout ) - { - iCase = aCase; - iTimeout = aTimeout; - iTimer.CreateLocal(); - - iTestCaseTimeout = 0; // Initialize - - } - -/* -------------------------------------------------------------------------------- - - Class: CTestCaseTimeout - - Method: NewL - - Description: Two-phased constructor. - - Parameters: const TTestReportOutput aReportOutput: in: Report output type - - Return Values: CTestCaseTimeout* : pointer to created object - - Errors/Exceptions: Leaves if memory allocation for object fails - Leaves if ConstructL leaves - - Status: Approved - -------------------------------------------------------------------------------- -*/ -CTestCaseTimeout* CTestCaseTimeout::NewL( CTestCaseController* aCase, - TTimeIntervalMicroSeconds aTimeout ) - { - CTestCaseTimeout* self = new ( ELeave ) CTestCaseTimeout(); - CleanupStack::PushL( self ); - self->ConstructL( aCase, aTimeout ); - CleanupStack::Pop( self ); - return self; - - } - -/* -------------------------------------------------------------------------------- - - Class: CTestCaseTimeout - - Method: ~CTestCaseTimeout - - Description: Destructor. - - Cancel request - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -CTestCaseTimeout::~CTestCaseTimeout() - { - Cancel(); - - } - -/* -------------------------------------------------------------------------------- - - Class: CTestCaseTimeout - - Method: Start - - Description: Start timeout counting - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -void CTestCaseTimeout::Start() - { - // Add to active scheduler - CActiveScheduler::Add ( this ); - SetActive(); - - // Request timer - TTime timeout; - timeout.HomeTime(); - timeout = timeout + iTimeout; - - // Store absolute timeout - iTestCaseTimeout = timeout; - - // Note: iTimer.After() method cannot use because there needed - // TTimeIntervalMicroSeconds32 and it is 32 bit. So then cannot create - // timeout time that is long enough. At() uses 64 bit value=>Long enough. - iTimer.At( iStatus, timeout ); - - } - -/* -------------------------------------------------------------------------------- - - Class: CTestCaseTimeout - - Method: RunL - - Description: RunL handles completed timeouts. - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -void CTestCaseTimeout::RunL() - { - // Timeout - TTime timeout; - timeout.HomeTime(); - // Handle the abort case when system time gets changed, but timeout is - // still valid. All other cases should timeout since they invalidate the - // logic of the timers. - if ( iStatus == KErrAbort) - { - if ( iTestCaseTimeout > timeout ) - { - RDebug::Print( _L( "Absolute timer still valid. Restaring timer. iStatus: %d" ), iStatus.Int() ); - // Start new timer - iStatus = KErrNone; // reset value - iTimer.At ( iStatus, iTestCaseTimeout ); // restart timer - SetActive(); - } - else - { - // Absolute timer no longer valid. Must timeout. - iCase->Timeout(); - } - - } - else - { - // Status was not KErrAbort. Timing out! - iCase->Timeout(); - } - - } - -/* -------------------------------------------------------------------------------- - - Class: CTestCaseTimeout - - Method: DoCancel - - Description: Cancel active request - - Parameters: None - - Return Values: None - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -void CTestCaseTimeout::DoCancel() - { - iTimer.Cancel(); - - } - -/* -------------------------------------------------------------------------------- - - Class: CTestCaseTimeout - - Method: RunError - - Description: Handle errors. Just let framework handle errors because - RunL does not leave. - - Parameters: TInt aError: in: Symbian OS error: Error code - - Return Values: TInt: Symbian OS error code - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -TInt CTestCaseTimeout::RunError( TInt aError ) - { - return aError; - - } - -// ================= OTHER EXPORTED FUNCTIONS ================================= - -// None - -// End of File