--- a/testexecmdw/tef/tef/tefutilities/platsec/src/testplatsecsetcapabilities.cpp Fri Sep 03 07:55:01 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,303 +0,0 @@
-/*
-* Copyright (c) 2005-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 contains CTestPlatSecSetCapabilities class functions implementation.
-* This class sets the capabilities of the executables and libraries.
-*
-*/
-
-
-#include "testplatsecsetcapabilities.h"
-
-//TEF include
-#include <test/testexecutelog.h>
-
-/*@{*/
-_LIT(KExecutableName, "executable");
-_LIT(KCapabalities, "capabilities");
-_LIT(KDestinationPath, "destinationPath");
-/*@}*/
-
-// Test step name
-_LIT(KSetCapabilitiesStep, "SetCapabilities");
-
-/**
- Destructor
-*/
-CTestPlatSecSetCapabilities::~CTestPlatSecSetCapabilities()
- {
- }
-
-/**
- Constructor
-*/
-CTestPlatSecSetCapabilities::CTestPlatSecSetCapabilities()
- {
- SetTestStepName(KSetCapabilitiesStep);
- }
-
-/**
- The implementation of the CTestStepPlatTest::doTestStepL() pure virutal
- function. Sets the defined capabilities to the executables. It reads
- the executable name, destination executable name and its capabilities
- from the ini file.
- @return TVerdict - result of the test step
- @leave - system wide error codes
-*/
-TVerdict CTestPlatSecSetCapabilities::doTestStepL()
- {
- INFO_PRINTF1(_L("Setting the capabilities of the executable."));
-
- TPtrC ServerName(GetServerName());
- INFO_PRINTF1(_L("Server Name"));
- INFO_PRINTF2(_L("Server Name %S"), &ServerName);
-
- //read the executable name from the ini file
- TPtrC executableName;
- if(!GetStringFromConfig(ConfigSection(), KExecutableName, executableName))
- {
- ERR_PRINTF1(_L("Executable/Server name not provided in INI file"));
- SetTestStepResult(EFail);
- }
- else
- {
- INFO_PRINTF2(_L("Executable name read from the ini file is %S"),&executableName);
- //read capabilities to be set
- TPtrC capabilities;
- if(!GetStringFromConfig(ConfigSection(), KCapabalities, capabilities))
- {
- ERR_PRINTF1(_L("Capabilities to be set are not specified in the INI file"));
- SetTestStepResult(EFail);
- }
- else
- {
- INFO_PRINTF2(_L("New capabilities for the executable : %S"),&capabilities);
- //read the destination executable name including path
- TPtrC destination;
- if(!GetStringFromConfig(ConfigSection(), KDestinationPath, destination))
- {
- ERR_PRINTF1(_L("Destination not specified in the INI file"));
- SetTestStepResult(EFail);
- }
- else
- {
- INFO_PRINTF2(_L("Destination path specified is : %S"),&destination);
- //set the capabilities
- SetCapabilitiesL(executableName, capabilities,destination);
- }
- }
- }
- return TestStepResult();
- }
-
-/**
- Sets the capabilites for a given executable. Uses SetCap.exe
- @param aExecutable - name of the executable
- @param aCapabilities - capabilities to be set for the executable
- @param aDestination - name of the output executable
- @leave - system wide error codes
- @return None
-*/
-void CTestPlatSecSetCapabilities::SetCapabilitiesL(const TDesC& aExecutable, const TDesC& aCapabilities,const TDesC& aDestination)
- {
- //create the commandline arguments
- TBuf<KMaxTestExecuteCommandLength> buf(aCapabilities);
- TUint hexCapability = CreateHexCapabilities(buf);
-
- INFO_PRINTF2( _L("Capality Hex value is %X"),hexCapability);
- TBuf<KMaxTestExecuteCommandLength> commandLine(aExecutable);
- commandLine.Append(_L(" "));
- commandLine.AppendNumUC(hexCapability,EHex);
- commandLine.Append(_L(" "));
- commandLine.Append(aDestination);
-
- INFO_PRINTF2( _L("command line arguments for setcap is %S"),&commandLine);
-
- //instantiate Setcap.exe as a new process with the executable and capabilities as command line arguments
- RProcess process;
- CleanupClosePushL(process);
- TInt err=KErrNone;
- User::LeaveIfError(err = process.Create(_L("setcap.exe"),commandLine));
- if(err!=KErrNone)
- {
- ERR_PRINTF2(_L("Creating the process failed with error : %D"),err);
- SetTestStepResult(EFail);
- }
- else
- {
- TRAPD(error,process.Resume();)
- if(error!=KErrNone)
- {
- ERR_PRINTF2(_L("Creating the process failed with error : %D"),err);
- SetTestStepResult(EFail);
- }
- }
- CleanupStack::PopAndDestroy(1);
- }
-
-/**
- Creates the hex values to be passed to SetCap.exe.
- @param aCapabilities - capabilites for which hex values to be created
- @return TInt - integer value after manipulating all capabilities
- @leave - none
-*/
-TInt CTestPlatSecSetCapabilities::CreateHexCapabilities(TDesC& aCapabilities )
- {
- TInt capability=0;
- TInt capCountCheck=0;
- TLex parser(aCapabilities);
-
- //create the capability hex value
- while(!parser.Eos())
- {
- TPtrC token(parser.NextToken());
- INFO_PRINTF2( _L("Adding capability %S"),&token);
-
- TCapability capabilityValue;
-
- TInt err = GetCapability(token, capabilityValue);
- if (err != KErrNone)
- {
- WARN_PRINTF1(_L("Unrecognised capability, rejected"));
- }
- else
- {
- capCountCheck++;
- if(capabilityValue == ECapability_None)
- {
- capability = ECapability_None;
- break;
- }
- else
- {
- capability = capability | (1<<capabilityValue);
- }
- }
- if(capCountCheck == 0)
- {
- WARN_PRINTF1(_L("No capability given is valid, capability set to None"));
- capability = ECapability_None;
- }
- }
- return capability;
- }
-
-/**
- Get the capability id (enum value) for the capability name
- given as string.
- @param aCapability - Capability name
- @param aCapabilityValue - value for the capability name
- @return TInt - error codes
- @leave - None
-*/
-TInt CTestPlatSecSetCapabilities::GetCapability(TPtrC aCapability, TCapability& aCapabilityValue)
- {
- INFO_PRINTF2(_L("The capability get is %S"), &aCapability);
- TInt ret=KErrNone;
-
- TBuf<KMaxTestExecuteCommandLength> capCaseValue(aCapability);
- capCaseValue.LowerCase();
-
- if(!capCaseValue.Compare(_L("tcb" )))
- {
- aCapabilityValue=ECapabilityTCB;
- }
- else if(!capCaseValue.Compare(_L("commdd" )))
- {
- aCapabilityValue=ECapabilityCommDD;
- }
- else if(!capCaseValue.Compare(_L("powermgmt" )))
- {
- aCapabilityValue=ECapabilityPowerMgmt;
- }
- else if(!capCaseValue.Compare(_L("multimediadd" )))
- {
- aCapabilityValue=ECapabilityMultimediaDD;
- }
- else if(!capCaseValue.Compare(_L("readdevicedata" )))
- {
- aCapabilityValue=ECapabilityReadDeviceData;
- }
- else if(!capCaseValue.Compare(_L("writedevicedata" )))
- {
- aCapabilityValue=ECapabilityWriteDeviceData;
- }
- else if(!capCaseValue.Compare(_L("drm" )))
- {
- aCapabilityValue=ECapabilityDRM;
- }
- else if(!capCaseValue.Compare(_L("trustedui" )))
- {
- aCapabilityValue=ECapabilityTrustedUI;
- }
- else if(!capCaseValue.Compare(_L("protserv" )))
- {
- aCapabilityValue=ECapabilityProtServ;
- }
- else if(!capCaseValue.Compare(_L("diskadmin" )))
- {
- aCapabilityValue=ECapabilityDiskAdmin;
- }
- else if(!capCaseValue.Compare(_L("networkcontrol" )))
- {
- aCapabilityValue=ECapabilityNetworkControl;
- }
- else if(!capCaseValue.Compare(_L("allfiles" )))
- {
- aCapabilityValue=ECapabilityAllFiles;
- }
- else if(!capCaseValue.Compare(_L("swevent" )))
- {
- aCapabilityValue=ECapabilitySwEvent;
- }
- else if(!capCaseValue.Compare(_L("networkservices" )))
- {
- aCapabilityValue=ECapabilityNetworkServices;
- }
- else if(!capCaseValue.Compare(_L("localservices" )))
- {
- aCapabilityValue=ECapabilityLocalServices;
- }
- else if(!capCaseValue.Compare(_L("readuserdata" )))
- {
- aCapabilityValue=ECapabilityReadUserData;
- }
- else if(!capCaseValue.Compare(_L("writeuserdata")))
- {
- aCapabilityValue=ECapabilityWriteUserData;
- }
- else if(!capCaseValue.Compare(_L("location")))
- {
- aCapabilityValue=ECapabilityLocation;
- }
- else if(!capCaseValue.Compare(_L("surroundingsdd")))
- {
- aCapabilityValue=ECapabilitySurroundingsDD;
- }
- else if(!capCaseValue.Compare(_L("userenvironment")))
- {
- aCapabilityValue=ECapabilityUserEnvironment;
- }
- else if(!capCaseValue.Compare(_L("none")))
- {
- aCapabilityValue=ECapability_None;
- }
- else
- {
- INFO_PRINTF2(_L("Unrecognised capability %S, will be rejected"), &capCaseValue);
- ret=KErrNotFound;
- }
-
- return ret;
- }