EXPORT_C TInt RUpsTestServ::Connect(const TDesC& aServerName, TBool aDebugMode) /** * @param aServerName - Human readable name of the test server * @param aDebugMode - Set to true for just in time debugging * @return int - Standard error codes * Secure version of the API call. Expects the server binary to be * ServerXXX.exe */ { if(aServerName.Length() > iServerName.MaxLength()) return KErrTooBig; iServerName = aServerName; // Assume the server is already running and attempt to create a session // 4 message slots TInt err = CreateSession(aServerName,Version(),-1); if(err == KErrNotFound || err == KErrServerTerminated) { // Server not running // Construct the server binary name TBuf<KMaxTestExecuteNameLength> serverFile; RProcess server; _LIT(KEmpty,""); _LIT(KExe,".exe"); serverFile.Copy(aServerName); serverFile.Append(KExe); err = server.Create(serverFile,KEmpty); if(err != KErrNone) return err; // Synchronise with the server TRequestStatus reqStatus; server.Rendezvous(reqStatus); // Set just in time debugging for the process if(aDebugMode) server.SetJustInTime(ETrue); else server.SetJustInTime(EFalse); // Start the test harness server.Resume(); // Server will call the reciprocal static synchronise call User::WaitForRequest(reqStatus); server.Close(); if(reqStatus.Int() != KErrNone) return reqStatus.Int(); // Create the root server session err = CreateSession(aServerName,Version(),-1); } return err; }
TInt LaunchServer(RProcess& aServer) { TheTest.Printf(_L("Launching LogServer...\n")); const TUid KServerUid3 = {0x0101f401d}; const TUidType serverUid(KNullUid,KNullUid,KServerUid3); TInt err = aServer.Create(KServerProcess, _L(""),serverUid); if(err == KErrNone) { aServer.SetPriority(EPriorityForeground); //Start server and wait until it is running TRequestStatus serverStat; aServer.SetJustInTime(false); aServer.Resume(); aServer.Rendezvous(serverStat); User::WaitForRequest(serverStat); } return err; }
static TInt LaunchLogServer() { RProcess process; TInt err = process.Create(KServerProcess,_L("")); if(err == KErrNone) { TRequestStatus serverStat; process.SetJustInTime(EFalse); process.Resume(); process.Rendezvous(serverStat); User::WaitForRequest(serverStat); } return err; }
TInt LaunchServer(RProcess& aServer) { TheTest.Printf(_L("Launching BackupServer...\n")); TInt err = aServer.Create(KServerLauncherProcess, _L("")); TheTest(err == KErrNone); //Start server and wait until it is running TRequestStatus serverStat; aServer.SetJustInTime(false); aServer.Resume(); aServer.Rendezvous(serverStat); User::WaitForRequest(serverStat); err = serverStat.Int(); return err; }