diff -r 7333d7932ef7 -r 8b7f4e561641 installationservices/swinstallationfw/test/tusif/source/tsifcommonverificationstep.cpp --- a/installationservices/swinstallationfw/test/tusif/source/tsifcommonverificationstep.cpp Tue Aug 31 15:21:33 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,300 +0,0 @@ -/* -* Copyright (c) 2008-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 - @internalTechnology -*/ - -#include "tsifcommonverificationstep.h" -#include "tsifsuitedefs.h" -#include -#include -#include -#include -#include -#include - -using namespace Usif; - -namespace - { - TBool CheckPathExistenceL(const TDesC& filePath) - { - TBool exists = EFalse; - - RFs fs; - User::LeaveIfError(fs.Connect()); - CleanupClosePushL(fs); - TEntry entry; - TInt error = fs.Entry(filePath, entry); - if (error == KErrNone) - { - exists = ETrue; - } - else if (error != KErrPathNotFound && error != KErrNotFound) - { - User::Leave(error); - } - - CleanupStack::PopAndDestroy(&fs); - return exists; - } - } - -CSifCommonVerificationStep::~CSifCommonVerificationStep() -/** -* Destructor -*/ - { - INFO_PRINTF1(_L("Cleanup in CSifCommonVerificationStep::~CSifCommonVerificationStep()")); - } - -CSifCommonVerificationStep::CSifCommonVerificationStep() -/** -* Constructor -*/ - { - } - -void CSifCommonVerificationStep::ImplTestStepPreambleL() -/** -* @return - TVerdict code -* Override of base class virtual -*/ - { - INFO_PRINTF1(_L("I am in CSifCommonVerificationStep::ImplTestStepPreambleL().")); - } - -TScomoState CSifCommonVerificationStep::GetScomoStateL(TComponentId aComponentId) - { - RSoftwareComponentRegistry scr; - User::LeaveIfError(scr.Connect()); - CleanupClosePushL(scr); - - CComponentEntry* entry = CComponentEntry::NewLC(); - if (!scr.GetComponentL(aComponentId, *entry)) - { - INFO_PRINTF1(_L("CSifCommonVerificationStep::GetScomoStateL() failed!")); - CleanupStack::PopAndDestroy(2, &scr); - User::Leave(KErrNotFound); - } - - TScomoState scomoState = entry->ScomoState(); - CleanupStack::PopAndDestroy(2, &scr); - - return scomoState; - } - -void CSifCommonVerificationStep::ImplTestStepL() -/** -* @return - TVerdict code -* Override of base class pure virtual -* Our implementation only gets called if the base class doTestStepPreambleL() did -* not leave. That being the case, the current test result value will be EPass. -*/ - { - INFO_PRINTF1(_L("I am in CSifCommonVerificationStep::ImplTestStepL().")); - - // Read the configuration from the ini file - TBool verifyExistence = ETrue; - if (!GetBoolFromConfig(ConfigSection(), KTe_VerifyPackageExistence, verifyExistence)) - { - SetTestStepResult(EFail); - INFO_PRINTF2(_L("Failed to read %S from ini file."), &KTe_VerifyPackageExistence); - return; - } - - TInt exeReturnCode = 0; - TInt refScomoState = 0; - TPtrC componentName, componentVendor, executableName; - if (!GetStringFromConfig(ConfigSection(), KTe_ComponentName, componentName) || - !GetStringFromConfig(ConfigSection(), KTe_ComponentVendor, componentVendor) || - (verifyExistence && !GetIntFromConfig(ConfigSection(), KTe_ScomoState, refScomoState))) - { - SetTestStepResult(EFail); - INFO_PRINTF4(_L("Failed to read %S, %S or %S from ini file."), &KTe_ComponentName, &KTe_ComponentVendor, &KTe_ScomoState); - return; - } - - TBool launchExecutable = GetStringFromConfig(ConfigSection(), KTe_ExecutableName, executableName); - if (launchExecutable && verifyExistence) - { - if (!GetIntFromConfig(ConfigSection(), KTe_ExecutableReturnCode, exeReturnCode)) - { - SetTestStepResult(EFail); - INFO_PRINTF2(_L("Failed to read %S from ini file."), &KTe_ExecutableReturnCode); - return; - } - } - - // Look for a component in the SCR - TScomoState scomoState = EDeactivated; - TBool foundInScr = EFalse; - TComponentId componentId = FindComponentInScrL(componentName, componentVendor); - if (componentId != 0) - { - foundInScr = ETrue; - scomoState = GetScomoStateL(componentId); - } - - // Look for a component in the SIS Registry - TBool checkSisRegistry = ETrue; - GetBoolFromConfig(ConfigSection(), KTe_CheckSisRegistry, checkSisRegistry); - TBool foundInSisRegistry = EFalse; - if (checkSisRegistry) - { - Swi::RSisRegistrySession sisRegistry; - User::LeaveIfError(sisRegistry.Connect()); - CleanupClosePushL(sisRegistry); - - RCPointerArray installedPackages; - sisRegistry.InstalledPackagesL(installedPackages); - CleanupClosePushL(installedPackages); - - const TInt numPackages = installedPackages.Count(); - for (TInt i=0; iName(); - const TDesC& vendor = installedPackages[i]->Vendor(); - if (name == componentName && vendor == componentVendor) - { - foundInSisRegistry = ETrue; - break; - } - } - CleanupStack::PopAndDestroy(2, &sisRegistry); - } - - // Launch the executable - TInt apaErr = KErrNone; - TRequestStatus launchStatus; - if (launchExecutable) - { - RApaLsSession apa; - apaErr = apa.Connect(); - if (apaErr != KErrNone) - { - INFO_PRINTF2(_L("Failed to connect to the application architecture server, error code: %d"), apaErr); - User::Leave(apaErr); - } - CleanupClosePushL(apa); - - CApaCommandLine* cmdLine = CApaCommandLine::NewLC(); - cmdLine->SetExecutableNameL(executableName); - - TThreadId threadId; - apaErr = apa.StartApp(*cmdLine, threadId, &launchStatus); - if (apaErr == KErrNone) - { - INFO_PRINTF3(_L("Launched: %S with error code: %d"), &executableName, launchStatus.Int()); - User::WaitForRequest(launchStatus); - } - else if (apaErr != KErrNotFound) - { - INFO_PRINTF2(_L("Failed to call RApaLsSession::StartApp(), error code: %d"), apaErr); - User::Leave(apaErr); - } - CleanupStack::PopAndDestroy(2, &apa); - } - - // Look for the component's files - TInt numDefinedFiles = 0; - TInt numFoundFiles = 0; - const TInt maxComponentFiles = 16; - for (TInt i=0; iDes()); - filePatternPtr.Copy(KTe_PackageFile); - filePatternPtr.AppendNum(i); - TPtrC filePath; - if (!GetStringFromConfig(ConfigSection(), *filePattern, filePath)) - { - CleanupStack::PopAndDestroy(filePattern); - break; - } - ++numDefinedFiles; - - // Verify file existence - if (CheckPathExistenceL(filePath)) - { - ++numFoundFiles; - } - - CleanupStack::PopAndDestroy(filePattern); - } - - // Calculate the test step result - TVerdict verdict = EFail; - if (verifyExistence) - { - if (foundInScr && scomoState == refScomoState && checkSisRegistry == foundInSisRegistry && numDefinedFiles == numFoundFiles) - { - if (launchExecutable) - { - if (exeReturnCode == launchStatus.Int()) - { - verdict = EPass; - } - } - else - { - verdict = EPass; - } - } - } - else // verify NonExistence - { - if (!foundInScr && numFoundFiles == 0) - { - verdict = EPass; - - if (checkSisRegistry && foundInSisRegistry) - { - verdict = EFail; - } - if (launchExecutable && apaErr != KErrNotFound) - { - verdict = EFail; - } - } - } - - SetTestStepResult(verdict); - - INFO_PRINTF1(_L("================== Begin Of Common Verification Steps ==================")); - INFO_PRINTF3(_L("Verification of existence/non-existence: (%d/%d)"), verifyExistence, !verifyExistence); - INFO_PRINTF3(_L("Component name: %S, vendor: %S"), &componentName, &componentVendor); - INFO_PRINTF2(_L("Found in Scr = %d"), foundInScr); - INFO_PRINTF2(_L("Found in Swi = %d"), foundInSisRegistry); - INFO_PRINTF2(_L("Scomo state = %d"), scomoState); - INFO_PRINTF2(_L("Exe return code = %d"), exeReturnCode); - INFO_PRINTF3(_L("Test executable: %S launched with error code = %d"), &executableName, apaErr); - INFO_PRINTF3(_L("Component files: defined = %d, found = %d"), numDefinedFiles, numFoundFiles); - INFO_PRINTF1(_L("=================== End Of Common Verification Steps ===================")); - } - -void CSifCommonVerificationStep::ImplTestStepPostambleL() -/** -* @return - TVerdict code -* Override of base class virtual -*/ - { - }