/*
* 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 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
*/
#ifndef __TSISREGISTRYSTEP_H__
#define __TSISREGISTRYSTEP_H__
#include <test/testexecutestepbase.h>
// Step names
_LIT(KInstalledUids, "InstalledUids");
_LIT(KInstalledPackages, "InstalledPackages");
_LIT(KRemovablePackages, "RemovablePackages");
_LIT(KInRomNonRemovablePackages, "InRomNonRemovablePackages");
_LIT(KInstalledDrives, "InstalledDrives");
_LIT(KIsUidInstalled, "IsUidInstalled");
_LIT(KIsPackageInstalled, "IsPackageInstalled");
_LIT(KIsControllerInstalled, "IsControllerInstalled");
_LIT(KGetControllers, "GetControllers");
_LIT(KEntryUidOpenClose, "EntryUidOpenClose");
_LIT(KEntryNameOpenClose, "EntryNameOpenClose");
_LIT(KEntryPackageOpenClose, "EntryPackageOpenClose");
_LIT(KEntryMethods, "EntryMethods");
_LIT(KWritableEntryMethods, "WritableEntryMethods");
_LIT(KPoliceSids,"PoliceSids");
_LIT(KEntrySids, "EntrySids");
_LIT(KEntryDelete, "EntryDelete");
_LIT(KBackupRegistry, "BackupRegistry");
_LIT(KCreateTestRegistry, "CreateTestRegistry");
_LIT(KSaveGeneratedRegistry, "SaveGeneratedRegistry");
_LIT(KDeleteRegistry, "DeleteRegistry");
_LIT(KRestoreRegistry, "RestoreRegistry");
_LIT(KSidFileName, "SidToFileName");
_LIT(KModifiableFile, "ModifiableFile");
_LIT(KFileHash, "FileHash");
_LIT(KIsSidPresentStep, "IsSidPresent");
_LIT(KIsPackagePresentStep, "IsPackagePresent");
_LIT(KIntegrityCheckStep, "IntegrityCheck");
_LIT(KDateAndTimeIntegrityCheckStep, "DateAndTimeIntegrityCheck");
_LIT(KLoggingFileInfo, "LoggingFileInfo");
_LIT(KRomStubPerformanceStep, "RomStubPerformanceCheck");
_LIT(KCorruptCacheStep, "CorruptCacheStep");
_LIT(KCorruptCacheRecoverStep, "CorruptCacheRecoverStep");
_LIT(KEmbeddingPackageStep, "EmbeddingPackageStep");
_LIT(KCreateTokenByCopy, "CreateTokenByCopy");
_LIT(KCreateTokenFromStream, "CreateTokenFromStream");
_LIT(KCertificateChainListStep, "CertificateChainListStep");
_LIT(KCreateSisRegistryObject, "CreateSisRegistryObject");
_LIT(KSisRegistryDependencyStep, "SisRegistryDependencyStep");
_LIT(KSisRegistryFileDescStep, "SisRegistryFileDescStep");
_LIT(KControllerInfoStep, "ControllerInfoStep");
_LIT(KSisRegistryPropertyStep, "SisRegistryPropertyStep");
_LIT(KIsFileRegisteredStep, "IsFileRegistered");
_LIT(KGetComponentIdForUidStep, "GetComponentIdForUid");
// The following test steps added for performance tests.
// If they are needed to be used for other tests, they should be extended.
// For example, the retrieved results are compared with the expected ones.
_LIT(KApplicationManagerStep, "ApplicationManager");
_LIT(KSidToPackage, "SidToPackage");
_LIT(KIsSidPresentSingleStep, "IsSidPresentSingle");
_LIT(KAddEntryStep, "AddEntry");
_LIT(KUpdateEntryStep, "UpdateEntry");
_LIT(KDeleteSingleEntry, "DeleteSingleEntry");
_LIT(KIsPackageExistInRomStep, "IsPackageExistInRom");
_LIT(KFileDescriptionsStep, "FileDescriptions");
_LIT(KIsAugmentationStep, "IsAugmentation");
_LIT(KFilesStep, "Files");
_LIT(KAugmentationsStep, "Augmentations");
_LIT(KPackageStep, "Package");
_LIT(KDependentPackagesStep, "DependentPackages");
_LIT(KDependenciesStep, "Dependencies");
_LIT(KEmbeddedPackagesStep, "EmbeddedPackages");
_LIT(KChangeLocale, "ChangeLocale");
// Base class for all steps
class CSisRegistryTestStepBase : public CTestStep
{
public:
void MarkAsPerformanceStep();
protected:
// Extension of config parser to allow you to get array of descriptors
void GetStringArrayFromConfigL(const TDesC& aSectName, const TDesC& aKeyName, RArray<TPtrC>& aArray);
TBool GetUidFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TUid& aUid);
void GetUidArrayFromConfigL(const TDesC& aSectName, const TDesC& aKeyName, RArray<TUid>& aArray);
void GetIntArrayFromConfigL(const TDesC& aSectName, const TDesC& aKeyName, RArray<TInt>& aArray);
HBufC8* GetControllerFromSisLC(const TDesC& aSisFileName);
// Log function
TVerdict PrintErrorAndReturnFailL(const TDesC& aMsg);
// Performance test methods
void StartTimer();
void StopTimerAndPrintResultL();
private:
void PrintPerformanceLog(TTime aTime);
protected:
// For some test cases (AddEntry, UpdateEntry and DeleteEntry), the time is measured externally
// because they are performed via another helper server (sisregistryaccess_server). To eliminate
// the time spent for IPC communication and the time spent to connect to the SISRegistry,
// the actual test time is measured on the sisregistry_access server side and returned to the test code.
TInt iTimeMeasuredExternally;
private:
TBool iIsPerformanceTest;
TTime iStartTime;
};
// Backup Registry Step
class CBackupRegistryStep : public CSisRegistryTestStepBase
{
public:
CBackupRegistryStep();
virtual TVerdict doTestStepL();
};
// Create Test Registry Step
class CCreateTestRegistryStep : public CSisRegistryTestStepBase
{
public:
CCreateTestRegistryStep();
virtual TVerdict doTestStepL();
};
// Delete Registry Step
class CDeleteRegistryStep : public CSisRegistryTestStepBase
{
public:
CDeleteRegistryStep();
virtual TVerdict doTestStepL();
};
// Restore Registry Step
class CRestoreRegistryStep : public CSisRegistryTestStepBase
{
public:
CRestoreRegistryStep();
virtual TVerdict doTestStepL();
};
// Save Registry Step
class CSaveRegistryStep : public CSisRegistryTestStepBase
{
public:
CSaveRegistryStep();
virtual TVerdict doTestStepL();
};
#endif