CHWRMFmTxClearRtDataStep::CHWRMFmTxClearRtDataStep() /** Each test step initialises it's own name */ { // store the name of this test case // this is the name that is used by the script file //DEF iTestStepName = _L("CPARAM_MESS_NAMEStep"); const TUint32 KCapabilityWriteUserDataBitMask = 0x10000; // 65536LL; const TUint32 KCapabilityCapabilityMultimediaDDBitMask = 0x8; //8LL; //The server name and IPC number is obtained and all messages are checked Sync SR_ServerName = KServerProcessName; SR_MESSAGE_TYPE = KSyncMessage; //Is it Async or sync? SR_MESSAGE_ID = EHWRMFmTxClearRtData ; //It holds the IPC number SR_MESSAGE_MASK = KCapabilityCapabilityMultimediaDDBitMask + KCapabilityWriteUserDataBitMask; //Holds the cap mask for the message //The iServer_Panic is a unique name from Server,but always truncated to KMaxExitCategoryName iServer_Panic = _L("HWRM Server"); //TCapability cap[] = {ECapabilityPARAM_MESS_NAMECAP, ECapability_Limit}; TCapability cap[] = {ECapabilityMultimediaDD, ECapabilityWriteUserData, ECapability_Limit}; TSecurityInfo info; info.Set(RProcess()); TBool result = EFalse; for (TInt i = 0; cap[i] != ECapability_Limit; i++) { if (!(info.iCaps.HasCapability(cap[i]))) { result=ETrue; } } #ifdef HWRM_FMTX_POLICY_CHECKING_DISABLED result = EFalse; #endif iExpect_Rejection = result; iStepCap = KCapabilityCapabilityMultimediaDDBitMask + KCapabilityWriteUserDataBitMask; //Get a unique thread name ChildThread_SR.Format(_L("ChildThread_%S_%d"),&SR_ServerName,SR_MESSAGE_ID); }
TInt PosixFilesystem::SetDefaultDir (RFs& aFs) { TParse parse; parse.Set(RProcess().FileName(), NULL, NULL); #ifdef __SECURE_DATA__ return aFs.SetSessionToPrivate(TDriveUnit(parse.Drive())); #else return aFs.SetSessionPath(parse.DriveAndPath()); #endif }
/* Function to create and start the CTestServer derived server. Secure variant.Much simpler, uses the new Rendezvous() call to sync with the client @param None @return None */ LOCAL_C void MainL() { // Leave the hooks in for platform security RProcess().DataCaging(RProcess::EDataCagingOn); RProcess().DataCaging(RProcess::ESecureApiOn); CActiveScheduler* sched = new(ELeave) CActiveScheduler; CActiveScheduler::Install(sched); CTestPnP* server = NULL; // Create the CTestServer derived server TRAPD(err,server = CTestPnP::NewL()); if(err == KErrNone) { // Sync with the client and enter the active scheduler RProcess::Rendezvous(KErrNone); sched->Start(); } delete server; delete sched; }
CTestEGLRefServer* CTestEGLRefServer::NewL() { CTestEGLRefServer* server = new(ELeave) CTestEGLRefServer(); CleanupStack::PushL(server); // CServer base class call TParsePtrC serverName(RProcess().FileName()); server->StartL(serverName.Name()); CleanupStack::Pop(server); return server; }
LOCAL_C void MainL() { RProcess().DataCaging(RProcess::EDataCagingOn); RProcess().SecureApi(RProcess::ESecureApiOn); CActiveScheduler* sched=NULL; sched=new(ELeave) CActiveScheduler; CActiveScheduler::Install(sched); CAppfwkViewSrvTestServer* server = NULL; // Create the CTestServer derived server TRAPD(err,server = CAppfwkViewSrvTestServer::NewL()); if(!err) { // Sync with the client and enter the active scheduler RProcess::Rendezvous(KErrNone); sched->Start(); } delete server; delete sched; }
void RTestProcess::Create(TTestProcessFunctions aFunction,TInt aArg1,TInt aArg2) { if(aArg1==-1) aArg1 = RProcess().Id(); TBuf<512> commandLine; commandLine.Num((TInt)aFunction); commandLine.Append(_L(" ")); commandLine.AppendNum(aArg1); commandLine.Append(_L(" ")); commandLine.AppendNum(aArg2); #ifdef __FIXED__ //fixed process creating a moving process TFileName filename(RProcess().FileName()); TInt pos=filename.LocateReverse(TChar('\\')); filename.SetLength(pos+1); filename+=_L("T_SHAREDIO.EXE"); TInt r = RProcess::Create(filename,commandLine); #else #ifdef __SECOND_FIXED__ //fixed process creating another fixed process TFileName filename(RProcess().FileName()); TInt pos=filename.LocateReverse(TChar('\\')); filename.SetLength(pos+1); filename+=_L("T_SHAREDIO2.EXE"); TInt r = RProcess::Create(filename,commandLine); #else #ifdef __MOVING_FIXED__ //moving process creating a fixed process TFileName filename(RProcess().FileName()); TInt pos=filename.LocateReverse(TChar('\\')); filename.SetLength(pos+1); filename+=_L("T_SHAREDIO2.EXE"); TInt r = RProcess::Create(filename,commandLine); #else //moving process creating a moving process TInt r = RProcess::Create(RProcess().FileName(),commandLine); #endif #endif #endif test(r==KErrNone); SetJustInTime(EFalse); }
void TestProcessForPlatformSecurityTrap(TTestProcessFunctions aFunction) { TRequestStatus logonStatus2; RTestProcess process; process.Create(~0u,aFunction,RProcess().Id(),EPriorityAbsoluteLow); process.Logon(logonStatus2); process.Resume(); User::WaitForRequest(logonStatus2); test(process.ExitType()==EExitPanic); // Process should have got a Platform Security panic test(logonStatus2==EPlatformSecurityTrap); }
/* Static factory constructor. Uses two phase construction and leaves nothing on the CleanupStack. Creates a CTestPnP object. @param None @return Instance of the test server */ CTestPnP* CTestPnP::NewL() { CTestPnP * server = new (ELeave) CTestPnP(); CleanupStack::PushL(server); // CServer base class call RProcess handle = RProcess(); TParsePtrC serverName(handle.FileName()); server->ConstructL(serverName.Name()); CleanupStack::Pop(server); return server; }
LOCAL_C void TestCaps() // // test format etc that require certain capabilities // { #ifndef __REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__ const char myDiagMsg[]="Capability Check Failure"; #endif //!__REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__ r=RProcess().HasCapability(ECapabilityAllFiles, __PLATSEC_DIAGNOSTIC_STRING(myDiagMsg)); test(!r); r=RProcess().HasCapability(ECapabilityTCB, __PLATSEC_DIAGNOSTIC_STRING(myDiagMsg)); test(!r); r=RProcess().HasCapability(ECapabilityDiskAdmin, __PLATSEC_DIAGNOSTIC_STRING(myDiagMsg)); test(!r); r=RProcess().HasCapability(ECapability_None, __PLATSEC_DIAGNOSTIC_STRING(myDiagMsg)); test(r); driveBuf[0]=(TText)gDriveToTest; r=TheFs.SessionPath(temp); test_KErrNone(r); r=TheFs.CreatePrivatePath(gTheDriveNum); test_Value(r, r == KErrNone || r== KErrAlreadyExists); TBuf<18> tempPri; r=TheFs.PrivatePath(tempPri); test_KErrNone(r); theprivatepath = _L("?:"); theprivatepath.Append(tempPri); TestNoCaps(); TFileName thesessionpath; r=TheFs.SetSessionToPrivate(gTheDriveNum); test_KErrNone(r); r=TheFs.SessionPath(thesessionpath); test_KErrNone(r); test(thesessionpath == theprivatepath); }
/** * Secure variant * Much simpler, uses the new Rendezvous() call to sync with the client */ LOCAL_C void MainL() { #if (defined __DATA_CAGING__) RProcess().DataCaging(RProcess::EDataCagingOn); RProcess().SecureApi(RProcess::ESecureApiOn); #endif CActiveScheduler* sched=NULL; sched=new(ELeave) CActiveScheduler; CActiveScheduler::Install(sched); CTWServScreenConstructServer* server = NULL; // Create the CTestServer derived server TRAPD(err,server = CTWServScreenConstructServer::NewL()); if(!err) { // Sync with the client and enter the active scheduler RProcess::Rendezvous(KErrNone); sched->Start(); } delete server; delete sched; }
/** @SYMTestCaseID APPFWK-APPARC-0010 @SYMPREQ PREQ967 @SYMREQ REQ3889 @SYMTestCaseDesc Tests DeleteDataMapping() which removes the linking of a datatype to the UID of an associated application @SYMTestPriority High @SYMTestStatus Implemented @SYMTestActions Call RApaLsSession::DeleteDataMapping() with datatype and service UID API Calls:\n RApaLsSession::DeleteDataMapping(const TDataType& aDataType, TUid aServiceUid) @SYMTestExpectedResults DeleteDataMapping() causes Main Panic KERN-EXEC 0 */ void CSysStartApparcTestCase::TestDeleteDataTypeL() { RDebug::Print(_L("CSysStartApparcTestCase: Test RApaLsSession::DeleteDataMapping....Check data type mapping deletion")); _LIT8(KLitPlainText,"text/plain"); TSecurityInfo info; info.Set(RProcess()); //Main Panic KERN-EXEC 0 iApaLsSession.DeleteDataMapping(TDataType(KLitPlainText)); }
// Failures are written to WSERV.log void CWsGraphicShareBase::Test(TInt aCondition) { if(!aCondition) { TLogMessageText buf; _LIT(Fail,"AUTO Failed in WsGraphics Test : DrawSharedGraphic"); buf.Format(Fail); iWs.LogMessage(buf); iWs.Flush(); RProcess().Terminate(KErrTestExeFailure); // terminate this process immediately. Expect TWsGraph test step (TAutoServer.exe) to capture this } }
TVerdict CSmsCapsSmsIoctlReadParamsSms::doTestStepL() { TInt testNo=13; RProperty testNumberProperty; User::LeaveIfError(testNumberProperty.Attach(KUidPSSimTsyCategory, KPSSimTsyTestNumber)); CleanupClosePushL(testNumberProperty); TRequestStatus status; testNumberProperty.Subscribe(status); User::LeaveIfError(testNumberProperty.Set(KUidPSSimTsyCategory,KPSSimTsyTestNumber,testNo)); User::WaitForRequest(status); TEST(status.Int() == KErrNone); TInt testNumberCheck; User::LeaveIfError(testNumberProperty.Get(testNumberCheck)); if (testNo != testNumberCheck) User::Leave(KErrNotFound); CleanupStack::PopAndDestroy(&testNumberProperty); RSocket socket; TInt ret=socket.Open(iSocketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol); if(ret!=KErrNone) User::Leave(ret); CleanupClosePushL(socket); TSmsAddr smsaddr; smsaddr.SetSmsAddrFamily(ESmsAddrLocalOperation); ret=socket.Bind(smsaddr); if(RProcess().HasCapability(ECapabilityNetworkServices)) { TESTL(ret != KErrPermissionDenied); } else { // skip this one CleanupStack::PopAndDestroy(&socket); return TestStepResult() ; } socket.Ioctl(KIoctlReadSmsParams,status,NULL,KSolSmsProv); User::WaitForRequest(status); TEST(status.Int() != KErrPermissionDenied); CleanupStack::PopAndDestroy(&socket); return TestStepResult() ; }
LOCAL_C void MainL() /* * Uses the new Rendezvous() call to sync with the client */ { RProcess().DataCaging(RProcess::EDataCagingOn); RProcess().SecureApi(RProcess::ESecureApiOn); CActiveScheduler* sched=new(ELeave) CActiveScheduler; CActiveScheduler::Install(sched); CMPPSmokeTestTefServer* server = NULL; // Create the CTestServer derived server TRAPD(err,server = CMPPSmokeTestTefServer::NewL()); if (KErrNone == err) { // Sync with the client and enter the active scheduler RProcess::Rendezvous(KErrNone); sched->Start(); } delete server; delete sched; }
void CTLbsGpsLocManager::ConstructL() { CActiveScheduler::Add(this); // Create the monitor which detects a closedown signal from // the LBS Root Process. iCloseDownRequestDetector = CLbsCloseDownRequestDetector::NewL(this, RProcess().SecureId()); iPanicRequest.Attach(KLbsTestProcessUid, KTestLbsPanicRequestKey); iPanicRequest.Subscribe(iStatus); SetActive(); RProcess::Rendezvous(KErrNone); }
CcapsignalTestServer* CcapsignalTestServer::NewL() { CcapsignalTestServer *server = new(ELeave) CcapsignalTestServer(); CleanupStack::PushL(server); //server->ConstructL(KServerName); RProcess handle = RProcess(); TParsePtrC serverName(handle.FileName()); server->StartL(serverName.Name()); CleanupStack::Pop(server); return server; }
/** Same code for Secure and non-secure variants Called inside the MainL() function to create and start the CTestServer derived server. @return - Instance of the test server */ CTe_graphicsperformanceSuite* CTe_graphicsperformanceSuite::NewL() { CTe_graphicsperformanceSuite * server = new (ELeave) CTe_graphicsperformanceSuite(); CleanupStack::PushL(server); // Get server name from process so we can use SetCap to change the capabilites and use this server with a different filename RProcess handle = RProcess(); TParsePtrC serverName(handle.FileName()); server->ConstructL(serverName.Name()); CleanupStack::Pop(server); return server; }
void GoL() { CActiveScheduler* s=new(ELeave) CActiveScheduler; CActiveScheduler::Install(s); CSandboxServer* server = new(ELeave) CSandboxServer(); // Scope the TFullName { TFullName serverName = RProcess().FullName(); server->StartL(serverName); } RProcess::Rendezvous(KErrNone); CActiveScheduler::Start(); }
TFileName GetFullFileName(const TDesC& aPath) { TFileName fileName; #ifdef __WINS__ fileName.Append(_L("c:")); #else TFileName fullName = RProcess().FileName(); TParsePtrC parse(fullName); fileName.Append(parse.Drive()); #endif fileName.Append(aPath); return fileName; }
LOCAL_C void doMainL() { CActiveScheduler::Install(new(ELeave)CActiveScheduler); RFs fs; User::LeaveIfError(fs.Connect()); CleanupClosePushL(fs); ScanStartL(fs, RProcess().FileName()); CleanupStack::PopAndDestroy(); // fs delete CActiveScheduler::Current(); }
LOCAL_C void MainL() { // Leave the hooks in for platform security #if (defined __DATA_CAGING__) RProcess().DataCaging(RProcess::EDataCagingOn); RProcess().SecureApi(RProcess::ESecureApiOn); #endif CActiveScheduler* sched = NULL; CleanupStack::PushL(sched); sched=new(ELeave) CActiveScheduler; CActiveScheduler::Install(sched); CTlsOOMServer* server = NULL; TRAPD(err,server = CTlsOOMServer::NewL()); CleanupStack::PushL(server); if(!err) { RProcess::Rendezvous(KErrNone); sched->Start(); } CleanupStack::PopAndDestroy(2, sched); // server }
TVerdict CSmsCapsSmsIoctlSendSms::doTestStepL() { RSocket socket; TRequestStatus status; TInt ret=socket.Open(iSocketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol); if(ret!=KErrNone) User::Leave(ret); CleanupClosePushL(socket); TSmsAddr smsaddr; smsaddr.SetSmsAddrFamily(ESmsAddrRecvAny); ret=socket.Bind(smsaddr); if(RProcess().HasCapability(ECapabilityNetworkServices)) { TESTL(ret != KErrPermissionDenied); } else { // skip this one CleanupStack::PopAndDestroy(&socket); return TestStepResult() ; } // Create message with SRR _LIT(KText,"This is a simple SMS!"); CSmsMessage* msg=CreateSmsMessageL(KText,TSmsDataCodingScheme::ESmsAlphabet7Bit); CleanupStack::PushL(msg); // Send message RSmsSocketWriteStream writestream(socket); TRAP(ret,writestream << *msg); User::LeaveIfError(ret); TRAP(ret,writestream.CommitL()); User::LeaveIfError(ret); TPckgBuf<TUint> sbuf; socket.Ioctl(KIoctlSendSmsMessage,status,&sbuf, KSolSmsProv); User::WaitForRequest(status); TEST(ret != KErrPermissionDenied); CleanupStack::PopAndDestroy(msg); CleanupStack::PopAndDestroy(&socket); return TestStepResult() ; }
// Secure variants much simpler // For EKA2, just an E32Main and a MainL() LOCAL_C void MainL() /** * Secure variant * Much simpler, uses the new Rendezvous() call to sync with the client */ { // Leave the hooks in for platform security RProcess().DataCaging(RProcess::EDataCagingOn); RProcess().DataCaging(RProcess::ESecureApiOn); CActiveScheduler* sched = new(ELeave) CActiveScheduler; CActiveScheduler::Install(sched); CTestHtmlToCrtConverterSuite* server = NULL; // Create the CTestServer derived server TRAPD( err,server = CTestHtmlToCrtConverterSuite::NewL() ); if ( err == KErrNone ) { // Sync with the client and enter the active scheduler RProcess::Rendezvous(KErrNone); sched->Start(); } delete server; delete sched; }
// E32Main and a MainL() LOCAL_C void MainL() /** * Much simpler, uses the new Rendezvous() call to sync with the client */ { // Leave the hooks in for platform security RProcess().DataCaging(RProcess::EDataCagingOn); RProcess().SecureApi(RProcess::ESecureApiOn); CActiveScheduler* sched=NULL; sched=new(ELeave) CActiveScheduler; CActiveScheduler::Install(sched); CMMFDRMPluginServer* server = NULL; TRAPD(err,server = CMMFDRMPluginServer::NewL()); if(!err) { // Sync with the client and enter the active scheduler RProcess::Rendezvous(KErrNone); sched->Start(); } delete server; delete sched; }
const TPtrC CZCDriverTestServer::ServerName() const { #if (!defined EKA2) // On EKA1 our test server is loaded as a dll. // So we cannot rely on the process name return KServerName(); #else // On EKA2, test server runs in its own process. // So we arrive at the server name using the exe from which it is loaded. // This is useful when doing cap tests, as we create duplicate exe's using setcap then. TParsePtrC serverName(RProcess().FileName()); return serverName.Name(); #endif }
LOCAL_C void MainL() // // Secure variant // Much simpler, uses the new Rendezvous() call to sync with the client // { RProcess().DataCaging(RProcess::EDataCagingOn); RProcess().SecureApi(RProcess::ESecureApiOn); CActiveScheduler* sched=NULL; sched=new(ELeave) CActiveScheduler; CActiveScheduler::Install(sched); CTFntStoreServer* server = NULL; // Create the CTestServer derived server TRAPD(err,server = CTFntStoreServer::NewL()); if(!err) { // Sync with the client and enter the active scheduler RProcess::Rendezvous(KErrNone); sched->Start(); } delete server; delete sched; }
/** @SYMTestCaseID APPFWK-APPARC-0008 @SYMPREQ PREQ967 @SYMREQ REQ3889 @SYMTestCaseDesc Tests InsertDataMapping() which links a datatype to the UID of an associated application for launching assigns adds a low priority. Tests InsertDataMappingIfHigher() which remaps the datatype to the specified UID if the specified priority is higher. The "added" parameter indicates if the mapping was successful. @SYMTestPriority High @SYMTestStatus Implemented @SYMTestActions Call RApaLsSession::InsertDataMapping() with datatype, application UID and low priority API Calls:\n RApaLsSession::InsertDataMapping(const TDataType& aDataType, TDataTypePriority aPriority, TUid aUid) @SYMTestExpectedResults InsertDataMapping() causes Main Panic KERN-EXEC 0 */ void CSysStartApparcTestCase::TestInsertDataTypeL() { RDebug::Print(_L("CSysStartApparcTestCase: Test RApaLsSession::InsertDataMapping....Check data type mapping addition")); const TDataTypePriority KPriLow = 1; _LIT8(KLitPlainText,"text/plain"); TSecurityInfo info; info.Set(RProcess()); //Main Panic KERN-EXEC 0 iApaLsSession.InsertDataMapping(TDataType(KLitPlainText), KPriLow, KUidTestApp); }
LOCAL_C void MainL() { // For platform security #if (defined __DATA_CAGING__) RProcess().DataCaging(RProcess::EDataCagingOn); RProcess().SecureApi(RProcess::ESecureApiOn); #endif CActiveScheduler* sched = NULL; sched = new(ELeave) CActiveScheduler; CActiveScheduler::Install(sched); CUpnpMessageTest* server = NULL; // Create the test-server TRAPD(err, server = CUpnpMessageTest::NewL()); if(!err) { // Sync with the client and enter the active scheduler RProcess::Rendezvous(KErrNone); sched->Start(); } delete server; delete sched; }
LOCAL_C void MainL() { // Leave the hooks in for platform security #if (defined __DATA_CAGING__) RProcess().DataCaging(RProcess::EDataCagingOn); RProcess().SecureApi(RProcess::ESecureApiOn); #endif InitCommsL(); CActiveScheduler* sched=NULL; sched=new(ELeave) CActiveScheduler; CleanupStack::PushL(sched); CActiveScheduler::Install(sched); CTRevocationServer* server = NULL; // Create the CTestServer derived server TRAPD(err,server = CTRevocationServer::NewL()); if(!err) { RProcess::Rendezvous(KErrNone); sched->Start(); } CleanupStack::Pop(sched); delete server; delete sched; }
LOCAL_C void MainL() { // Leave the hooks in for platform security #if (defined __DATA_CAGING__) RProcess().DataCaging(RProcess::EDataCagingOn); RProcess().SecureApi(RProcess::ESecureApiOn); #endif //InitCommsL(); CActiveScheduler* sched=NULL; sched=new(ELeave) CActiveScheduler; CActiveScheduler::Install(sched); CSetjmpTestServer* server = NULL; // Create the CTestServer derived server TRAPD(err, server = CSetjmpTestServer::NewL()); if(!err) { // Sync with the client and enter the active scheduler RProcess::Rendezvous(KErrNone); sched->Start(); } delete server; delete sched; }