118 return ret; |
118 return ret; |
119 } |
119 } |
120 do |
120 do |
121 { |
121 { |
122 semName.Format(_L("%S%d"), &semaphoreName, x); |
122 semName.Format(_L("%S%d"), &semaphoreName, x); |
|
123 if (semName.Length() > KMaxKernelName) |
|
124 { |
|
125 // if the cfg file name is larger than maximum length of acceptable length of semaphore . |
|
126 RDebug::Print(_L("Test Module name or Configuration File name is too long.")); |
|
127 |
|
128 semName.Close(); |
|
129 return KErrBadName; |
|
130 } |
|
131 |
123 ret = startSemaphore.CreateGlobal(semName, 0); |
132 ret = startSemaphore.CreateGlobal(semName, 0); |
124 RDebug::Print(_L("RTestServer::Connect() Creating global semaphore [%S] with result [%d]"), &semName, ret); |
133 RDebug::Print(_L("RTestServer::Connect() Creating global semaphore [%S] with result [%d]"), &semName, ret); |
125 if(ret != KErrAlreadyExists) |
134 if(ret != KErrAlreadyExists) |
126 { |
135 { |
127 semaphoreName.Copy(semName); |
136 semaphoreName.Copy(semName); |
151 RProcess pr; |
160 RProcess pr; |
152 |
161 |
153 // Data to be passed to new process. It will contain module name and synchronization semaphore name separated with space. |
162 // Data to be passed to new process. It will contain module name and synchronization semaphore name separated with space. |
154 // I.e. it will be: "mymodule startupSemaphore0" |
163 // I.e. it will be: "mymodule startupSemaphore0" |
155 RBuf data; |
164 RBuf data; |
156 ret = data.Create(KMaxName); |
165 ret = data.Create(KMaxFileName); |
157 if(ret != KErrNone) |
166 if(ret != KErrNone) |
158 { |
167 { |
159 RDebug::Print(_L("RTestServer::Connect() Could not create buffer for data to be passed to process [%d]"), ret); |
168 RDebug::Print(_L("RTestServer::Connect() Could not create buffer for data to be passed to process [%d]"), ret); |
160 return ret; |
169 return ret; |
161 } |
170 } |
816 /* |
825 /* |
817 ------------------------------------------------------------------------------- |
826 ------------------------------------------------------------------------------- |
818 |
827 |
819 Class: RTestExecution |
828 Class: RTestExecution |
820 |
829 |
|
830 Method: RunTestCase |
|
831 |
|
832 Description: Runs a test case |
|
833 |
|
834 Parameters: TFullTestResultPckg& aResult :out: Case result |
|
835 const TDesC& aTestCaseArgs: Test case arguments |
|
836 TRequestStatus& aStatus :out: Request to be completed |
|
837 |
|
838 Return Values: None |
|
839 |
|
840 Errors/Exceptions: None |
|
841 |
|
842 Status: Approved |
|
843 |
|
844 ------------------------------------------------------------------------------- |
|
845 */ |
|
846 EXPORT_C void RTestExecution::RunTestCase( TFullTestResultPckg& aResult, |
|
847 const TDesC& aTestCaseArgs, |
|
848 TRequestStatus& aStatus |
|
849 ) |
|
850 { |
|
851 TIpcArgs args( &aResult, &aTestCaseArgs, TIpcArgs::ENothing ); |
|
852 SendReceive( ETestExecutionRunTestCase, args, aStatus ); |
|
853 } |
|
854 |
|
855 /* |
|
856 ------------------------------------------------------------------------------- |
|
857 |
|
858 Class: RTestExecution |
|
859 |
821 Method: NotifyProgress |
860 Method: NotifyProgress |
822 |
861 |
823 Description: Notify about test case progress, i.e test case prints. |
862 Description: Notify about test case progress, i.e test case prints. |
824 |
863 |
825 Parameters: TTestProgressPckg& aProgress :out: Print info |
864 Parameters: TTestProgressPckg& aProgress :out: Print info |