/**
Starts test step
@internalComponent
@return TVerdict pass / fail
@pre N/A
@post N/A
*/
enum TVerdict CT_WServCapCheckStepTSizeMode::runTestCaseL(const TDesC& aExecutable, const TInt& aExitReason)
	{
	__UHEAP_MARK; // mark the heap state

	//Launch window server client process read fron ini file
	RProcess process;
	User::LeaveIfError(process.Create(aExecutable, KNullDesC));
	process.SetPriority(EPriorityHigh);
	TEST(process.Priority() == EPriorityHigh);
	INFO_PRINTF3(_L("Process Priority: Actual: %d, Expected: %d"), process.Priority(), EPriorityHigh);

	//Wait for the client process to terminate
	TRequestStatus status;
	process.Logon(status);
	process.Resume();
	User::WaitForRequest(status);

	//Check the window server client exit reason
	INFO_PRINTF3(_L("Process Check: Actual: %d, Expected: %d"), process.ExitReason(), aExitReason);
	TEST(process.ExitReason() == aExitReason);

	__UHEAP_MARKEND; // check for no memory leak

	return TestStepResult();
	}
Esempio n. 2
0
// Gets the state and priority of process aproc. Writes state into buffer
//pointed to by aprocstate and returns priority as an integer
	int getProcessState(RProcess& aproc,TDes& aprocstate)
		{
		TExitType exittype;
		TProcessPriority prio;
		exittype = aproc.ExitType();
		prio = aproc.Priority();
		switch(exittype)
			{
				case EExitPending:
					aprocstate.Append(_L("R"));
					break;
				case EExitPanic:
					aprocstate.Append(_L("P"));
					break;
				case EExitKill:
				case EExitTerminate:
					aprocstate.Append(_L("X"));
					return -1;
			}
			
		switch(prio)	
			{
			case EPriorityLow:
 			case EPriorityBackground:
			case EPriorityForeground:
				aprocstate.Append(_L("N"));
				break;
 
 			default:
 				// All other cases
				aprocstate.Append(_L("<"));
				break;
		}
		return prio;
		}
Esempio n. 3
0
EXPORT_C int getpriority(int which, int who)
	{
	int priority = -1;
	if ( which == PRIO_PROCESS && who == 0 )
		{
		RProcess pro;
		TProcessPriority pri;
		pri = pro.Priority();		
		priority = convPri( pri );
		}
	else
		{
		errno = ENOSYS;
		}
	return priority;
	}
Esempio n. 4
0
//All child process creation
void CSMPSoakThread::CreateChildProcess(TInt aIndex)
    {
    if(TestSilent)  
            gCmdLine.Format(KCmdLineBackground,(KProcessTable[aIndex].operation).Ptr());
    else if (Period)
        gCmdLine.Format(KCmdLinePeriod,gPeriod,(KProcessTable[aIndex].operation).Ptr());
    else
        gCmdLine.Format(KCmdLineProcess,(KProcessTable[aIndex].operation).Ptr());
    
    TInt r = iProcess.Create(KProcessTable[aIndex].processFileName,gCmdLine);
    test_KErrNone(r);
    iProcess.SetPriority(EPriorityLow);
    gSMPStressDrv.ChangeThreadAffinity(&iThread, KProcessTable[aIndex].cpuAffinity);
    PRINT ((_L("SetProcessPriority  CPU %d Priority %d\n"),gSMPStressDrv.GetThreadCPU(&iThread), iProcess.Priority()));
    }