/**
  MainL()
  Description :		This is the main function which installs the 
					active scheduler and creates an object of the Email server
  @internalTechnology
  @param  none
  @return none
  @pre    None
  @post   None
*/
LOCAL_C void MainL()
	{
	CActiveScheduler* sched = new (ELeave) CActiveScheduler;
	CleanupStack::PushL(sched);
	CActiveScheduler::Install(sched);

	__UHEAP_MARK;
/*	
	// this registers the server with the active scheduler and calls SetActive
	CT_LbsAGPSHAIAssDataServer* server = CT_LbsAGPSHAIAssDataServer::NewL();
*/

	CTestServerBase* s = new (ELeave) CTestServerBase();
	CleanupStack::PushL(s);
	s->ConstructL();
	// signal to the client that we are ready by
	// rendevousing process
	RProcess::Rendezvous(KErrNone);

	// run the active scheduler
	sched->Start();


	CleanupStack::PopAndDestroy(s);
/*
	// clean up
	delete server;
*/
	__UHEAP_MARKEND;
	CleanupStack::PopAndDestroy(sched);
	}
GLDEF_C TInt E32Main()
	{
	__UHEAP_MARK;
	
	CActiveScheduler* scheduler = new (ELeave) CActiveScheduler;
	CActiveScheduler::Install(scheduler);

	CTrapCleanup* cleanup = CTrapCleanup::New();
	if (!cleanup)
		{
		return KErrNoMemory;
		}
		
    CTLbsNetworkGateway* networkGateway = 0;
    TRAPD(err, networkGateway = CTLbsNetworkGateway::NewL());

	if(!err)
		{
		// Sync with the client and enter the active scheduler
		RProcess::Rendezvous(KErrNone);
		scheduler->Start();
		}

	if (KErrNone == err)
		{
		delete networkGateway;
		}
	
	delete cleanup;
	delete scheduler;
	
	__UHEAP_MARKEND;
    
	return err;
    }
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 );
    CChunkMgrTestSuite* server = NULL;

    // Create the test-server
    TRAPD ( err, server = CChunkMgrTestSuite::NewL () );

    if ( !err )
    {
        // Sync with the client and enter the active scheduler
        RProcess::Rendezvous ( KErrNone );
        sched->Start ();
    }

    delete server;
    delete sched;
}
// 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
#if (defined __DATA_CAGING__)
	RProcess().DataCaging(RProcess::EDataCagingOn);
	RProcess().DataCaging(RProcess::ESecureApiOn);
#endif
	CActiveScheduler* sched = NULL;
	sched = new(ELeave) CActiveScheduler;
	CActiveScheduler::Install(sched);
	CTestImpExvCardSuite* server = NULL;
	// Create the CTestServer derived server
	TRAPD(err,server = CTestImpExvCardSuite::NewL());
	if(!err)
		{
		RProcess::Rendezvous(KErrNone);
		sched->Start();
		}

	delete server;
	delete sched;
	}
Пример #5
0
// -----------------------------------------------------------------------------
// TMSCallServer::StartThreadL
//
// -----------------------------------------------------------------------------
//
void TMSCallServer::StartThreadL(TMSCallServerStartParam& aStart)
    {
    TRACE_PRN_FN_ENT;

    CActiveScheduler* sched = new (ELeave) CActiveScheduler;
    CleanupStack::PushL(sched);

    CActiveScheduler::Install(sched);
    TMSCallServer* server = TMSCallServer::NewL(aStart.iTMSServer);
    CleanupStack::PushL(server);

    //Rename tmscall server name
    RThread tmscallServerThread;
    TThreadId threadId;
    TName name;
    name.Append(KTMSCallServerName);
    threadId = tmscallServerThread.Id();
    name.AppendNum(threadId.Id(), EHex);
    //We are ignoring the error code returned from User::RenameThread
    //as it is not important here, may be for profiling
    User::RenameThread(name);

    aStart.iTMSCallServerHandle = server->Server();
    // Sync with the client and enter the active scheduler
    RThread::Rendezvous(KErrNone);
    sched->Start();

    CleanupStack::PopAndDestroy(server); // server
    CleanupStack::PopAndDestroy(sched); // sched

    TRACE_PRN_FN_EXT;
    }
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);
	CTestCalInterimApiInstanceSuiteServer* server = NULL;
	
	// Create the test-server
	TRAPD(err, server = CTestCalInterimApiInstanceSuiteServer::NewL());
	
	if(!err)
		{
		// Sync with the client and enter the active scheduler
		RProcess::Rendezvous(KErrNone);
		
#ifdef __WINS__
		// To start the alarm server	
		server->StartAlarmAlertServer();
#endif
		
		sched->Start();
		}
	delete server;
	delete sched;	
	}
static void MainL()
	{
	CActiveScheduler* sched = new(ELeave) CActiveScheduler;
	CleanupStack::PushL (sched);
	CActiveScheduler::Install (sched);

	CCmdTestServer* server = CCmdTestServer::NewLC( );
	RProcess::Rendezvous (KErrNone );
	sched->Start( );

	CleanupStack::PopAndDestroy (server );
	CleanupStack::PopAndDestroy (sched );
	}
TVerdict CSisRegistryWritableSessionStep::doTestStepPostambleL()
	{
	// Remove the installed active scheduler
	CActiveScheduler* s = CActiveScheduler::Current();
	s->Install(NULL);
	delete s;

	iSisRegistry.Close();
	
	__UHEAP_MARKEND;

	return TestStepResult();
	}
Пример #9
0
void MainL()
{
    CActiveScheduler* sched = new(ELeave) CActiveScheduler;
    CleanupStack::PushL(sched);
    CActiveScheduler::Install(sched);

    // Create the CTestServer derived server, sync with the client and enter the active scheduler
    CAppfwkDSCStoreTestServer* server = CAppfwkDSCStoreTestServer::NewL();
    RProcess::Rendezvous(KErrNone);
    sched->Start();

    delete server;
    CleanupStack::PopAndDestroy(sched);
}
TVerdict CSisRegistryWritableSessionStep::doTestStepPostambleL()
	{
	StopTimerAndPrintResultL();
	// Remove the installed active scheduler
	CActiveScheduler* s = CActiveScheduler::Current();
	s->Install(NULL);
	delete s;
	INFO_PRINTF1(_L("Disconnecting to SisRegistry.."));
	iSisRegistry.Close();
	
	__UHEAP_MARKEND;

	return TestStepResult();
	}
/////////////////////////////////////////////////////////////////////
// CSisRegistryStep
/////////////////////////////////////////////////////////////////////
TVerdict CSisRegistryWritableSessionStep::doTestStepPreambleL()
	{
	__UHEAP_MARK;

	// Install an active scheduler
	CActiveScheduler* s = new (ELeave) CActiveScheduler;
	s->Install(s);
	
	INFO_PRINTF1(_L("Connecting to SisRegistry.."));
	User::LeaveIfError(iSisRegistry.Connect());
	INFO_PRINTF1(_L("Connected!"));
	
	return TestStepResult();
	}
static void MainL()
	{
	CActiveScheduler* sched = new(ELeave) CActiveScheduler;
	CleanupStack::PushL(sched);	
	CActiveScheduler::Install(sched);
	
	// Create the CTestServer derived server
	CStartupPropertiesTestServer* server = CStartupPropertiesTestServer::NewLC();
	RProcess::Rendezvous(KErrNone);
	sched->Start();
	
	CleanupStack::PopAndDestroy(server);
	CleanupStack::PopAndDestroy(sched);
	}
// ---------------------------------------------------------------------------
// DoStartL
// ---------------------------------------------------------------------------
//
void DoStartL()
    {
    // Create active scheduler (to run active objects)
    CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
    CleanupStack::PushL(scheduler);
    CActiveScheduler::Install(scheduler);

    CSpsBackupHelperMonitor* monitor = CSpsBackupHelperMonitor::NewL();
    
    scheduler->Start();
    delete monitor;
    
    // Delete active scheduler
    CleanupStack::PopAndDestroy(scheduler);
    }
static void MainL()
	{
	CActiveScheduler* sched = new(ELeave) CActiveScheduler;
	CleanupStack::PushL(sched);
	CActiveScheduler::Install (sched);

	CCLayerTestServerWithSsm* server = NULL;
	server = CCLayerTestServerWithSsm::NewL();
	if(server)
	    {
        RProcess::Rendezvous (KErrNone);
        sched->Start();
	    }
	delete server;
	CleanupStack::PopAndDestroy();// sched;
	}
Пример #15
0
void CSwiEngine::ThreadFunctionL(CSwiTask* aTask)
	{
	CActiveScheduler* scheduler = new (ELeave) CActiveScheduler();
	CleanupStack::PushL(scheduler);
	CActiveScheduler::Install(scheduler);


	// this will add some active objects to AS...
	aTask->WrapTaskL();


	// make it do the work
	scheduler->Start();
	
	// cleanup the worker thread
	CleanupStack::PopAndDestroy(scheduler);
	}
/**
MainL - uses the new Rendezvous() call to sync with the client
*/
LOCAL_C void MainL()
	{
	// Active scheduler only for this thread. Test need to create own active scheduler	
	CActiveScheduler* scheduler = new(ELeave) CActiveScheduler;
	CActiveScheduler::Install(scheduler);

	CTe_graphicsperformanceSuite* server = NULL;

	// Create the CTestServer derived server
	TRAPD(err,server = CTe_graphicsperformanceSuite::NewL());
	if(!err)
		{
		// Sync with the client and enter the active scheduler
		RProcess::Rendezvous(KErrNone);
		scheduler->Start();
		}
	delete server;
	delete scheduler;
	}
Пример #17
0
/*
   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;
	}
Пример #18
0
void DriveEngineL()
	{

	//initialization for COMM port 
	CommInitL();
	
	// Setup Active Scheduler
	CActiveScheduler* myActiveScheduler = new(ELeave) CActiveScheduler;
	CleanupStack::PushL(myActiveScheduler);
	CActiveScheduler::Install(myActiveScheduler);

	// Create Tiny Telnet
	CTinyTelnet* aTinyTelnet = CTinyTelnet::NewLC(console);
	//.. and post request to object
	aTinyTelnet->RequestCharacter();

	myActiveScheduler->Start();

	CleanupStack::PopAndDestroy(2); //aTinyTelnet, myActiveScheduler	
	}
void ThreadDispatchSwpInvalidListFunctionL(CSsmValidSwpListTest* aSsmValidSwpListTest)
	{
	CActiveScheduler* sched = new(ELeave) CActiveScheduler();
	CleanupStack::PushL(sched);
	CActiveScheduler::Install(sched);

	// Create a swp policy resolver and register our property
	CSsmSwpPolicyResolver* resolver = CSsmSwpPolicyResolver::NewL();
	CleanupStack::PushL(resolver);
	resolver->RegisterSwpMappingL(key, KTestSwpPolicyInvalidListFile);


	// Create a cle session proxy
	CCleSessionProxy* cleSession = CCleSessionProxy::NewL();
	CleanupStack::PushL(cleSession);
	cleSession->ConnectL();

	// Create the swp request handler and wire it up to the proxies
	CSsmSwpRequestHandler* handler = CSsmSwpRequestHandler::NewL();
	handler->SetSwpPolicyResolverProxy(resolver);
	handler->SetCleSessionProxy(cleSession);
	CleanupStack::Pop(cleSession);
	CleanupStack::Pop(resolver);
	CleanupStack::PushL(handler);

	//To get the handle to testssmswppolicyserver, since we have to test the exit reason
	if (aSsmValidSwpListTest->Function() == ESwpCmdTooManyMultipleWaitErr1)
		aSsmValidSwpListTest->GetSsmSwpPolicyServerThreadIdL();

	//Request transition according to the reason action, which will define the invalid list
	const TSsmSwp swp(key, aSsmValidSwpListTest->Function());
	
	handler->SubmitRequestL(swp);

	sched->Start();

	CleanupStack::PopAndDestroy(3, sched);
	}
/**
 * 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);
    CT_AccessoriesServer* server = NULL;

    // Create the CTestServer derived server
    TRAPD(err, server = CT_AccessoriesServer::NewL());
    if(!err)
	    {
        // Sync with the client and enter the active scheduler
        RProcess::Rendezvous(KErrNone);
        sched->Start();
        }

    delete server;
    delete sched;
    }
Пример #21
0
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
	}
// 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;
	}
void CMMFAudioPolicyServer::StartThreadL(TServerStart& aStart)
{
    CActiveScheduler* sched = new(ELeave) CActiveScheduler;
    CleanupStack::PushL(sched);

    CActiveScheduler::Install(sched);
    //Rename Audio Policy server name
    RThread audioPolicyThread;
    TName name;
    name.Append(KMMFAudioPolicyServerName);
    //We are ignoring the error code returned from User::RenameThread
    //as it is not important here, may be for profiling
    User::RenameThread(name);
    CMMFAudioPolicyServer* server = CMMFAudioPolicyServer::NewL();
    CleanupStack::PushL(server);

    aStart.iPolicyServerHandle = server->Server();
    // Sync with the client and enter the active scheduler
    RThread::Rendezvous(KErrNone);
    sched->Start();

    CleanupStack::PopAndDestroy(2, sched); // sched, server
}
GLDEF_C TInt E32Main()
	{
	__UHEAP_MARK;
	
	CActiveScheduler* scheduler = new (ELeave) CActiveScheduler;
	CActiveScheduler::Install(scheduler);

	CTrapCleanup* cleanup = CTrapCleanup::New();
	if (!cleanup)
		{
		return KErrNoMemory;
		}
	User::SetJustInTime(EFalse);	
    CTLbsGpsLocManager* agpsManager = 0;
    TRAPD(err, agpsManager = CTLbsGpsLocManager::NewL());

	if(!err)
		{
		// Sync with the client and enter the active scheduler
		RProcess::Rendezvous(KErrNone);
		scheduler->Start();
		}

	User::SetJustInTime(ETrue);	
	if (KErrNone == err)
		{
		delete agpsManager;
		}
	
	delete cleanup;
	delete scheduler;
	
	__UHEAP_MARKEND;
    
	return err;
    }
void CTestMMFHwDeviceObserver::StopActiveScheduler()
	{
	CActiveScheduler* activeScheduler;
	activeScheduler = CActiveScheduler::Current();
	activeScheduler->Stop();
	}
Пример #26
0
EXPORT_C TInt TRPSOwnNumbers::RetrieveOwnNumbersL(RMobilePhone& aPhone)
	{
	
	RDEBUGPRINTLOGGER1(_L("RPS: TRPSOwnNumbers::RetrieveOwnNumbersL"));
	
	RMobileONStore ownNumberStore;
	User::LeaveIfError(ownNumberStore.Open(aPhone));
	CleanupClosePushL(ownNumberStore);
	
	// Get Own Number Information
	RMobileONStore::TMobileONStoreInfoV1 ownNumberInfo;
	RMobileONStore::TMobileONStoreInfoV1Pckg ownNumberInfoPckg(ownNumberInfo);

	TRequestStatus status;
	ownNumberStore.GetInfo(status, ownNumberInfoPckg);
	User::WaitForRequest(status);
	User::LeaveIfError(status.Int());

	//
	// Read entire Own Number store entries if supported
	//
	TInt errorReadingWhole = KErrNone;
	TInt errorsExtractANumber(0);

	if(ownNumberInfo.iCaps & (TUint32)RMobilePhoneStore::KCapsWholeStore)
		{
		// Reads phone's entire ON list
		CMobilePhoneONList* onList = NULL;
		
		// Assumes we have a scheduler to work with.
		CActiveScheduler* sched = CActiveScheduler::Current();
		
		CActiveONRetrieverRps* retriever = new(ELeave)CActiveONRetrieverRps(ownNumberStore, onList, errorReadingWhole, sched);
		CleanupStack::PushL(retriever);
		retriever->StartL();
		sched->Start();

		if(!errorReadingWhole)
			{
			// Verify that the name and number are OK.
			TInt numOfEntry = onList->Enumerate();
			for(TInt x = 0; x < numOfEntry; ++x)
				{		
				
				if(ExtractANumber(onList->GetEntryL(x)) != KErrNone)
					++errorsExtractANumber;
				}
			}
		delete onList;

		CleanupStack::PopAndDestroy();

		}

	TInt lenVoiceNum(iOwnVoiceNumber.Length());
	TInt lenFaxNum(iOwnFaxNumber.Length());
	TInt lenDataNum(iOwnDataNumber.Length());

	if(!(lenVoiceNum && lenFaxNum && lenDataNum))
		{
		// Try reading ON store one entry at a time
		for (TInt i = 1; i <= ownNumberInfo.iTotalEntries; i++)
			{
			RMobileONStore::TMobileONEntryV1 ownNumberEntry;
		
			ownNumberEntry.iIndex = i;
			RMobileONStore::TMobileONEntryV1Pckg ownNumberEntryPckg(ownNumberEntry);

			ownNumberStore.Read(status, ownNumberEntryPckg);
			User::WaitForRequest(status);
			
			ExtractANumber(ownNumberEntry);
			}

			// As the last resort, 
			// if the voice number has not been found, assume it is under the Unspecified service tag
			if(iOwnVoiceNumber.Length() == 0)
				{
				RMobileONStore::TMobileONEntryV1 ownNumberEntry;
				ownNumberEntry.iIndex = 1;
				RMobileONStore::TMobileONEntryV1Pckg ownNumberEntryPckg(ownNumberEntry);
				ownNumberStore.Read(status, ownNumberEntryPckg);
				User::WaitForRequest(status);
			
				if (ownNumberEntry.iService == RMobilePhone::EServiceUnspecified)
					{
					TBuf<1> prependstr;
					prependstr.Zero();
					if(ownNumberEntry.iNumber.iTypeOfNumber == RMobilePhone::EInternationalNumber || 
					   ownNumberEntry.iNumber.iTelNumber.Left(2) == KUKCountryCode)
						{
						prependstr = KPlus;
						}
					iOwnVoiceNumber = prependstr;
					iOwnVoiceNumber += ownNumberEntry.iNumber.iTelNumber;
					}
				}
		}

	CleanupStack::PopAndDestroy(); //ownNumberStore
	
	//often fax and data numbers are blank on the SIM so if that is the case then set them to be same as voice
	//Hopefully attempting to dial a data/fax call using the voice number should still work
	if(iOwnDataNumber.Length() == 0)
		iOwnDataNumber = iOwnVoiceNumber;
	
	if(iOwnFaxNumber.Length() == 0)
		iOwnFaxNumber = iOwnVoiceNumber;
	
	RDEBUGPRINTLOGGER2(_L("RPS: iOwnVoiceNumber=%S"), &iOwnVoiceNumber);
	RDEBUGPRINTLOGGER2(_L("RPS: iOwnDataNumber=%S"), &iOwnDataNumber);
	RDEBUGPRINTLOGGER2(_L("RPS: iOwnFaxNumber=%S"), &iOwnFaxNumber);

	return KErrNone;	
	}
Пример #27
0
TVerdict CTPKCS7ValidTest::doTestStepL()
	{
	if (TestStepResult() != EPass)
		{
		return TestStepResult();
		}

	__UHEAP_MARK;
	TBool expectedValid;
	if (GetBoolFromConfig(ConfigSection(),_L("IsValid"), expectedValid) == EFalse)
		{
		expectedValid = ETrue;
		}
	
	TInt err;

	CPKCS7ContentInfo * contentInfo = NULL;
	TRAP (err, contentInfo = CPKCS7ContentInfo::NewL(iRawData->Des()));
	
	if(err == KErrNone)
		{
		CPKCS7SignedObject * p7 = NULL;
		if( contentInfo->ContentType() == KPkcs7SignedData)
			{
			TRAP (err, p7 = CPKCS7SignedObject::NewL(*contentInfo));
			//expired, and the case where certificate chain root is not on the device	
			if (!expectedValid)
				{
				if (err != KErrNone)
					{
					SetTestStepResult(EPass);
					INFO_PRINTF2(_L("Got %d building PKCS7 object"), err);
					return TestStepResult();
					}
				}

			if (err != KErrNone)
				{
				SetTestStepResult(EFail);
				INFO_PRINTF2(_L("Got %d building PKCS7 object"), err);
				}
			else
				{
				CleanupStack::PushL (p7);
		
				const RPointerArray<CPKCS7SignerInfo>& signers = p7->SignerInfo();
				TBool isValid = EFalse;
				HBufC8* certificateEncoding = NULL;
				if(!p7->ValidateSignerL(*signers[0], certificateEncoding))
					{
					INFO_PRINTF1(_L("Couldn't validate signer"));
					}
				else
					{
					CActiveScheduler* sched = NULL;
					if (CActiveScheduler::Current() == NULL)
						{
						INFO_PRINTF1(_L("Installing scheduler"));
						sched = new (ELeave) CActiveScheduler();
						CleanupStack::PushL (sched);
						__UHEAP_MARK;
						CActiveScheduler::Install (sched);
						}
					RPointerArray<CX509Certificate> roots (&iRootCertificate, 1);
					CPKIXCertChain * chain = CPKIXCertChain::NewLC(iFs, *certificateEncoding, roots);
					TTime tm;
					_LIT(KDateCorrect1,"20040801:"); 
					TBuf <24> theDate(KDateCorrect1); 
					TInt err=tm.Set(theDate); 
					if(err)
						{
						tm.HomeTime();
						}
					CPKIXValidationResult* result = CPKIXValidationResult::NewLC();
					CTPKCS7Validator* validator = new (ELeave) CTPKCS7Validator (chain, result, &tm);
					CleanupStack::PushL (validator);
					validator->doValidate ();
					sched->Start ();
					if (result->Error().iReason == EValidatedOK)
						{
						isValid = ETrue;
						INFO_PRINTF1(_L("Validation success"));
						}
					else
						{
						INFO_PRINTF2(_L("Validation failed: %d"), result->Error().iReason);
						}
            				
					CleanupStack::PopAndDestroy(validator);
					CleanupStack::PopAndDestroy(result);
					CleanupStack::PopAndDestroy(chain);
					if (sched)
						{
						CActiveScheduler::Install (NULL);
						CleanupStack::PopAndDestroy (sched);
						}
					}
				if (certificateEncoding)
					{
					CleanupStack::PopAndDestroy(certificateEncoding);
					}
				CleanupStack::PopAndDestroy (p7);
				if (isValid != expectedValid)
					{
					SetTestStepResult(EFail);
					if (expectedValid)
						{
						INFO_PRINTF1(_L("Expected valid, got invalid"));
						}
					else
						{
						INFO_PRINTF1(_L("Expected invalid, got valid"));
						}
					}
				}

			}
		}
	else
		{
		SetTestStepResult(EFail);
		}

	
	__UHEAP_MARKEND;
	return TestStepResult();
	}
Пример #28
0
TInt E32Main()
	{
	TInt err;
	
	Test.Start(_L("Comm Driver Tests"));
	CommStart();
    Test.Printf(_L("Insert plug in then press a key\r\n"));
	Test.Getch();

	TEST(CTrapCleanup::New()!=NULL);
	CActiveScheduler* Scheduler = new CActiveScheduler;
	TEST(Scheduler!=NULL);
	CActiveScheduler::Install(Scheduler);
/*
	CTestSignals* testsignals = NULL;
	TRAP(err, testsignals = CTestSignals::NewL(0));
	TEST(err==KErrNone);
	testsignals->Start();
	Scheduler->Start();
	delete testsignals;
	
	CTestRandTerm* testrandterm = NULL;
	TRAP(err, testrandterm = CTestRandTerm::NewL(0));
	TEST(err==KErrNone);
	testrandterm->Start();
	Scheduler->Start();
	delete testrandterm;

	CTestPerf* testperf = NULL;
	TRAP(err, testperf = CTestPerf::NewL(0));
	TEST(err==KErrNone);
	testperf->Start();
	Scheduler->Start();
	delete testperf;
*/

	CTestXonXoff* testx = NULL;
	TRAP(err, testx = CTestXonXoff::NewL(0));
	TEST(err==KErrNone);
	testx->Start();
	Scheduler->Start();
	delete testx;

/*
	CTestXonXoff* testx1 = NULL;
	TRAP(err, testx1 = CTestXonXoff::NewL(0));
	TEST(err==KErrNone);
	testx1->Start();

	CTestXonXoff* testx2 = NULL;
	TRAP(err, testx2 = CTestXonXoff::NewL(1));
	TEST(err==KErrNone);
	testx2->Start();

	Scheduler->Start();

	delete testx1;
	delete testx2;
*/
	Test.End();
	return KErrNone;
	}
LOCAL_C void LaunchClientProcessL()
	{
	__UHEAP_MARK;
	RProcess::Rendezvous(KErrNone);

    RSemaphore sem;
    User::LeaveIfError(sem.OpenGlobal(KEglStressTest));
    CleanupClosePushL(sem);

    //Access data passed from the main process
    TStressProcessInfo info;
    TPckg<TStressProcessInfo> pckgInfo(info);
    User::LeaveIfError(User::GetDesParameter(KMultiProcessSlot, pckgInfo));

    //Create RSgDriver and open the image
    RSgDriver driver;
    User::LeaveIfError(driver.Open());
    CleanupClosePushL(driver);

    RSgImage image;
    User::LeaveIfError(image.Open(info.iSgId));
    CleanupClosePushL(image);

    EGLDisplay display;
    EGL_LEAVE_NULL(display, eglGetDisplay(EGL_DEFAULT_DISPLAY));
    EGL_LEAVE_ERROR(eglInitialize(display, NULL, NULL));
    EGL_LEAVE_ERROR(eglBindAPI(EGL_OPENVG_API));

    //Initialise to remove arm compiler warnings
    EGLConfig config = 0;
    EGLContext context = EGL_NO_CONTEXT;
    EGLSurface surface = EGL_NO_SURFACE;

    if(info.iTestType == EStressRead)
        {
        TSgImageInfo sginfo;
        User::LeaveIfError(image.GetInfo(sginfo));

        //Create an independant pixmap surface on which to copy the vgimage 
        RSgImage image2;
        User::LeaveIfError(image2.Create(sginfo, NULL, NULL));
        CleanupClosePushL(image2);
        ChooseConfigAndCreateContextL(display, context, config, image2, KStressTestChildAppPanic, info.iAlphaPre);
        EGL_LEAVE_NULL(surface, CreatePixmapSurfaceL(display, config, image2, info.iAlphaPre)); 
        CleanupStack::PopAndDestroy(&image2);
        }
    else
        {
        ChooseConfigAndCreateContextL(display, context, config, image, KStressTestChildAppPanic, info.iAlphaPre);
        EGL_LEAVE_NULL(surface, CreatePixmapSurfaceL(display, config, image, info.iAlphaPre));       
        }

    EGL_LEAVE_ERROR(eglMakeCurrent(display, surface, surface, context));

    VGImage vgImage;
    GenerateVgImageL(display, &image, vgImage);

    /* Create and install the active scheduler */
    CActiveScheduler* sched = new(ELeave) CActiveScheduler;
    CActiveScheduler::Install(sched);
    CleanupStack::PushL(sched);

    TInt width = vgGetParameteri(vgImage, VG_IMAGE_WIDTH);
    VgLeaveIfErrorL();

    TInt height = vgGetParameteri(vgImage, VG_IMAGE_HEIGHT);
    VgLeaveIfErrorL();

    VGImageFormat format = static_cast<VGImageFormat>(vgGetParameteri(vgImage, VG_IMAGE_FORMAT));
    VgLeaveIfErrorL();

    TBool testPass = ETrue;

    CTReadWriteChild* painter = CTReadWriteChild::NewL(vgImage, width, height, info.iByteSize, format, info.iTestType, testPass);
    CleanupStack::PushL(painter);
    painter->After(TTimeIntervalMicroSeconds32(0));

    //Data access is synchronised from the main process
    sem.Wait();
    sched->Start();

    if(testPass == EFalse)
        {
		// Leave with a 'known' test error so that we can catch this particular failure 
        User::Leave(KTestStressUnexpectedPixelError);
        }
    
    CleanupStack::PopAndDestroy(5, &sem); //painter, sched, image, driver, sem
      
    __UHEAP_MARKEND;
    }