diff -r 675a964f4eb5 -r 35751d3474b7 cryptomgmtlibs/securitytestfw/test/testhandler2/t_testaction.cpp --- a/cryptomgmtlibs/securitytestfw/test/testhandler2/t_testaction.cpp Tue Jul 21 01:04:32 2009 +0100 +++ b/cryptomgmtlibs/securitytestfw/test/testhandler2/t_testaction.cpp Thu Sep 10 14:01:51 2009 +0300 @@ -1,198 +1,200 @@ -/* -* Copyright (c) 1998-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: -* -*/ - - -#include "t_testaction.h" - -#include "t_output.h" -#include "t_input.h" -#include "t_testactionspec.h" -#include "tScriptSetup.h" -#include "t_testhandler.h" - -EXPORT_C CTestAction::~CTestAction() - { - delete iNameInfo; - } - -EXPORT_C void CTestAction::PerformPrerequisite(TRequestStatus& aStatus) - { - DoPerformPrerequisite(aStatus); - } - -EXPORT_C void CTestAction::PerformPostrequisite(TRequestStatus& aStatus) - { - DoPerformPostrequisite(aStatus); - } - -EXPORT_C void CTestAction::AfterOOMFailure() - { - } - -TBool CTestAction::Finished() - { - return iFinished; - } - -EXPORT_C void CTestAction::ReportAction() - { - iOut.writeString(*iNameInfo); - iOut.writeNewLine(); - DoReportAction(); - } - -EXPORT_C void CTestAction::CheckResult(TInt aError) -{ - - // DoCheckResult must update iResult - //iResult = (iResult && iExpectedResult) || (!iResult && !iExpectedResult); - DoCheckResult(aError); - - if (iKnownFailure) // Expecting an error because of known - iResult = ETrue; // defect current deferred etc - - iOut.writeString(_L("\tStatus : ")); - iOut.writeError(aError); - iOut.writeString(_L(" (")); - iOut.writeNum(aError); - iOut.writeString(_L(")")); - iOut.writeNewLine(); - iOut.writeString(_L("\tTest outcome : ")); - if (iResult) - { - iOut.writeString(_L("PASSED")); - } - else - { - iOut.writeString(_L("FAILED")); - } - iOut.writeNewLine(); - iOut.writeNewLine(); - } - -EXPORT_C void CTestAction::PerformCancel() - { - } - -EXPORT_C void CTestAction::Reset() - { - } - -EXPORT_C CTestAction::CTestAction(CConsoleBase& aConsole, - Output& aOut) -: iFinished(EFalse), iKnownFailure(EFalse), iConsole(aConsole), iOut(aOut) - { - } - -EXPORT_C void CTestAction::ConstructL(const TTestActionSpec& aTestActionSpec) -{ - iNameInfo = aTestActionSpec.iActionName.AllocL(); - - TRAPD(err, iExpectedResult = Input::ParseElementBoolL( - aTestActionSpec.iActionResult, _L8("")) ); - if(err == KErrArgument) - { - //if there is no field or it has invalid text then we assume - //it's a "normal" test. ie it must be true to pass. - iExpectedResult = ETrue; - } - else if(err != KErrNone) - { - User::Leave(err); - } - -// If there's a known defect because of deferred defects etc, the script -// will flag it. We record as much here and, when result is returned, check -// against known failure and adjust result accordingly. This should only be -// used for reported defects that have been deferred etc rather than as a -// workaround for test failures. The failure will be reported in a separate -// part of the log file so it's not overlooked entirely. - - _LIT8(KTrue, "ETrue"); - // _LIT8(KFalse, "EFalse"); - - TInt pos = 0; - err = KErrNone; - - TPtrC8 knownFailure = Input::ParseElement(aTestActionSpec.iActionBody, KKnownDefectStart, KKnownDefectEnd, pos, err); - if (knownFailure.Compare(KTrue)==0) - iKnownFailure = ETrue; - else // Assume if it's not true it's false or not there which == false - iKnownFailure = EFalse; -} - - -EXPORT_C void CTestAction::DoPerformPrerequisite(TRequestStatus& aStatus) - { - iActionState = EAction; - TRequestStatus* status = &aStatus; - User::RequestComplete(status, KErrNone); - } - -EXPORT_C void CTestAction::DoPerformPostrequisite(TRequestStatus& aStatus) - { - TRequestStatus* status = &aStatus; - // pass on any error from peform action - User::RequestComplete(status, aStatus.Int()); - iFinished = ETrue; - } - -EXPORT_C void CTestAction::FailTestNow(TRequestStatus& aStatus) - { - iActionState=EPostrequisite; - iResult=EFalse; - TRequestStatus* status = &aStatus; - User::RequestComplete(status, KErrNone); - } - - -EXPORT_C CTestAction::TScriptError CTestAction::ScriptError(void) - { - return(iScriptError); - } - -EXPORT_C void CTestAction::SetScriptError(const TScriptError &aScriptError, const TDesC& aError) - { - iScriptError = aScriptError; - aScriptErrorDescription.Copy(aError); - }; - -EXPORT_C void CTestAction::ScriptError(TDes& aError) - { - aError.Copy(aScriptErrorDescription); - }; - -void CTestAction::SetTestHandler(CTestHandler& aTestHandler) - { - iTestHandler = &aTestHandler; - } - -EXPORT_C CBase* CTestAction::SharedData() const - { - ASSERT(iTestHandler); - return iTestHandler->SharedData(); - } - -EXPORT_C void CTestAction::SetSharedData(CBase* aData) - { - ASSERT(iTestHandler); - iTestHandler->SetSharedData(aData); - } - -EXPORT_C void CTestAction::ResetState() - { - } +/* +* Copyright (c) 1998-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: +* +*/ + + +#include "t_testaction.h" + +#include "t_output.h" +#include "t_input.h" +#include "t_testactionspec.h" +#include "tScriptSetup.h" +#include "t_testhandler.h" + +EXPORT_C CTestAction::~CTestAction() + { + delete iNameInfo; + } + +EXPORT_C void CTestAction::PerformPrerequisite(TRequestStatus& aStatus) + { + DoPerformPrerequisite(aStatus); + } + +EXPORT_C void CTestAction::PerformPostrequisite(TRequestStatus& aStatus) + { + DoPerformPostrequisite(aStatus); + } + +EXPORT_C void CTestAction::AfterOOMFailure() + { + } + +TBool CTestAction::Finished() + { + return iFinished; + } + +EXPORT_C void CTestAction::ReportAction() + { + iOut.writeString(*iNameInfo); + iOut.writeNewLine(); + DoReportAction(); + } + +EXPORT_C void CTestAction::CheckResult(TInt aError) +{ + + // DoCheckResult must update iResult + //iResult = (iResult && iExpectedResult) || (!iResult && !iExpectedResult); + DoCheckResult(aError); + + if (iKnownFailure) // Expecting an error because of known + iResult = ETrue; // defect current deferred etc + + iOut.writeString(_L("\tStatus : ")); + iOut.writeError(aError); + iOut.writeString(_L(" (")); + iOut.writeNum(aError); + iOut.writeString(_L(")")); + iOut.writeNewLine(); + iOut.writeString(_L("\tTest outcome : ")); + if (iResult) + { + iOut.writeString(_L("PASSED")); + } + else + { + iOut.writeString(_L("FAILED")); + } + iOut.writeNewLine(); + iOut.writeNewLine(); + } + +EXPORT_C void CTestAction::PerformCancel() + { + } + +EXPORT_C void CTestAction::Reset() + { + } + +EXPORT_C CTestAction::CTestAction(CConsoleBase& aConsole, + Output& aOut) +: iFinished(EFalse), iKnownFailure(EFalse), iConsole(aConsole), iOut(aOut) + { + } + +EXPORT_C void CTestAction::ConstructL(const TTestActionSpec& aTestActionSpec) +{ + iNameInfo = aTestActionSpec.iActionName.AllocL(); + + iTefScript = aTestActionSpec.iTefScript; + + TRAPD(err, iExpectedResult = Input::ParseElementBoolL( + aTestActionSpec.iActionResult, _L8("")) ); + if(err == KErrArgument) + { + //if there is no field or it has invalid text then we assume + //it's a "normal" test. ie it must be true to pass. + iExpectedResult = ETrue; + } + else if(err != KErrNone) + { + User::Leave(err); + } + +// If there's a known defect because of deferred defects etc, the script +// will flag it. We record as much here and, when result is returned, check +// against known failure and adjust result accordingly. This should only be +// used for reported defects that have been deferred etc rather than as a +// workaround for test failures. The failure will be reported in a separate +// part of the log file so it's not overlooked entirely. + + _LIT8(KTrue, "ETrue"); + // _LIT8(KFalse, "EFalse"); + + TInt pos = 0; + err = KErrNone; + + TPtrC8 knownFailure = Input::ParseElement(aTestActionSpec.iActionBody, KKnownDefectStart, KKnownDefectEnd, pos, err); + if (knownFailure.Compare(KTrue)==0) + iKnownFailure = ETrue; + else // Assume if it's not true it's false or not there which == false + iKnownFailure = EFalse; +} + + +EXPORT_C void CTestAction::DoPerformPrerequisite(TRequestStatus& aStatus) + { + iActionState = EAction; + TRequestStatus* status = &aStatus; + User::RequestComplete(status, KErrNone); + } + +EXPORT_C void CTestAction::DoPerformPostrequisite(TRequestStatus& aStatus) + { + TRequestStatus* status = &aStatus; + // pass on any error from peform action + User::RequestComplete(status, aStatus.Int()); + iFinished = ETrue; + } + +EXPORT_C void CTestAction::FailTestNow(TRequestStatus& aStatus) + { + iActionState=EPostrequisite; + iResult=EFalse; + TRequestStatus* status = &aStatus; + User::RequestComplete(status, KErrNone); + } + + +EXPORT_C CTestAction::TScriptError CTestAction::ScriptError(void) + { + return(iScriptError); + } + +EXPORT_C void CTestAction::SetScriptError(const TScriptError &aScriptError, const TDesC& aError) + { + iScriptError = aScriptError; + aScriptErrorDescription.Copy(aError); + }; + +EXPORT_C void CTestAction::ScriptError(TDes& aError) + { + aError.Copy(aScriptErrorDescription); + }; + +void CTestAction::SetTestHandler(CTestHandler& aTestHandler) + { + iTestHandler = &aTestHandler; + } + +EXPORT_C CBase* CTestAction::SharedData() const + { + ASSERT(iTestHandler); + return iTestHandler->SharedData(); + } + +EXPORT_C void CTestAction::SetSharedData(CBase* aData) + { + ASSERT(iTestHandler); + iTestHandler->SetSharedData(aData); + } + +EXPORT_C void CTestAction::ResetState() + { + }