featuremgmt/featuremgr/test/tef/tef_efm_normal/src/component_test_steps.cpp
branchRCL_3
changeset 24 cc28652e0254
parent 23 26645d81f48d
equal deleted inserted replaced
23:26645d81f48d 24:cc28652e0254
   159 
   159 
   160 void CFeatMgrStressTest::DoThreadActionL()
   160 void CFeatMgrStressTest::DoThreadActionL()
   161 	{
   161 	{
   162 	TThreadId id = RThread().Id();
   162 	TThreadId id = RThread().Id();
   163 	TUid uid = {id.Id()};
   163 	TUid uid = {id.Id()};
   164 	uid.iUid += 0x1001000;
   164 	uid.iUid += 500;
   165 
       
   166 	// Create the thread info instance that would hold the results for the tests below
   165 	// Create the thread info instance that would hold the results for the tests below
   167 	TThreadTestInfo info;
   166 	TThreadTestInfo info;
   168 	info.iId = uid.iUid;
   167 	info.iId = uid.iUid;
   169 	    
   168 	    
   170 	// A. Create a session to the server 
   169 	// A. Create a session to the server 
   508 	/*
   507 	/*
   509 	* SWI Installation Test Cases 
   508 	* SWI Installation Test Cases 
   510 	*/
   509 	*/
   511 	
   510 	
   512 	// Locals for the test scenarios
   511 	// Locals for the test scenarios
       
   512 	RApaLsSession ls;
   513 	RProcess process; 
   513 	RProcess process; 
       
   514 	CApaCommandLine* cmdLine;
   514 	TBitFlags32 flags( 0 ); 	
   515 	TBitFlags32 flags( 0 ); 	
   515 	flags.Set( EFeatureSupported);
   516 	flags.Set( EFeatureSupported);
   516 	flags.Set( EFeatureModifiable );
   517 	flags.Set( EFeatureModifiable );
   517 	TFeatureEntry entry1( KNewUid1, flags, KDefaultData1 );
   518 	TFeatureEntry entry1( KNewUid1, flags, KDefaultData1 );
   518 	TFeatureEntry entry3( KNewUid3, flags, KDefaultData1 );
   519 	TFeatureEntry entry3( KNewUid3, flags, KDefaultData1 );
   531 	err = process.Create(KDummySWIPath, _L("1"));	// 1 = install success
   532 	err = process.Create(KDummySWIPath, _L("1"));	// 1 = install success
   532 	TESTDIAGNOSTICERROR(err==KErrNone,
   533 	TESTDIAGNOSTICERROR(err==KErrNone,
   533 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
   534 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
   534 	if( err==KErrNone )
   535 	if( err==KErrNone )
   535 		{
   536 		{
       
   537 		User::LeaveIfError(ls.Connect());
       
   538 		CleanupClosePushL(ls);
       
   539 		cmdLine = CApaCommandLine::NewLC();
       
   540 		cmdLine->SetExecutableNameL(KDummySWIPath);
       
   541 		cmdLine->SetProcessEnvironmentL(process);
   536 		process.Resume();
   542 		process.Resume();
       
   543 		CleanupStack::PopAndDestroy(2);
       
   544 		cmdLine = NULL;
   537 	
   545 	
   538 		// This delay is used to allow P&S to complete the initial setting of the 
   546 		// This delay is used to allow P&S to complete the initial setting of the 
   539 		// KSAUidSoftwareInstallKeyValue property to ESASwisInstall before we proceed with 
   547 		// KSAUidSoftwareInstallKeyValue property to ESASwisInstall before we proceed with 
   540 		// our test case. Otherwise SWIStart will be called before the property is set 
   548 		// our test case. Otherwise SWIStart will be called before the property is set 
   541 		// properly and will return KErrNotReady. 
   549 		// properly and will return KErrNotReady. 
   554 		TESTDIAGNOSTICERROR(err==KErrNone, 
   562 		TESTDIAGNOSTICERROR(err==KErrNone, 
   555 				_L("RFeatureControl::AddFeature expects KErrNone for KNewUid1; returned value is = %d"),err);
   563 				_L("RFeatureControl::AddFeature expects KErrNone for KNewUid1; returned value is = %d"),err);
   556 		err = control.AddFeature(entry3);
   564 		err = control.AddFeature(entry3);
   557 		TESTDIAGNOSTICERROR(err==KErrNone, 
   565 		TESTDIAGNOSTICERROR(err==KErrNone, 
   558 				_L("RFeatureControl::AddFeature expects KErrNone for KNewUid3; returned value is = %d"),err);
   566 				_L("RFeatureControl::AddFeature expects KErrNone for KNewUid3; returned value is = %d"),err);
   559 	
   567         
   560 		// Enable feature
   568 		// Enable feature
   561 		err = control.EnableFeature(KNewUid1);
   569         err = control.EnableFeature(KNewUid1);
   562 		TESTDIAGNOSTICERROR(err==KErrNone, 
   570         TESTDIAGNOSTICERROR(err==KErrNone, 
   563 		        _L("RFeatureControl::EnableFeature expects KErrNone for KNewUid1; returned value is = %d"),err);
   571                 _L("RFeatureControl::EnableFeature expects KErrNone for KNewUid1; returned value is = %d"),err);
   564 		
   572         
   565 		// Disable feature
   573         // Disable feature
   566 		err = control.DisableFeature(KNewUid1);
   574         err = control.DisableFeature(KNewUid1);
   567 		TESTDIAGNOSTICERROR(err==KErrNone, 
   575         TESTDIAGNOSTICERROR(err==KErrNone, 
   568 		        _L("RFeatureControl::DisableFeature expects KErrNone for KNewUid1; returned value is = %d"),err);
   576                 _L("RFeatureControl::DisableFeature expects KErrNone for KNewUid1; returned value is = %d"),err);
   569 		
   577         
   570 		// Set features
   578 		// Set features
   571 		err = control.SetFeature(KNewUid1, ETrue, KChangeData);
   579 		err = control.SetFeature(KNewUid1, ETrue, KChangeData);
   572 		TESTDIAGNOSTICERROR(err==KErrNone, 
   580 		TESTDIAGNOSTICERROR(err==KErrNone, 
   573 				_L("RFeatureControl::SetFeature expects KErrNone for KNewUid1; returned value is = %d"),err);
   581 				_L("RFeatureControl::SetFeature expects KErrNone for KNewUid1; returned value is = %d"),err);
   574 		err = control.SetFeature(KNewUid3, KChangeData);
   582 		err = control.SetFeature(KNewUid3, KChangeData);
   665 	err = process.Create(KDummySWIPath, _L("1"));	
   673 	err = process.Create(KDummySWIPath, _L("1"));	
   666 	TESTDIAGNOSTICERROR(err==KErrNone,
   674 	TESTDIAGNOSTICERROR(err==KErrNone,
   667 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
   675 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
   668 	if( err==KErrNone )
   676 	if( err==KErrNone )
   669 		{
   677 		{
       
   678 		User::LeaveIfError(ls.Connect());
       
   679 		CleanupClosePushL(ls);
       
   680 		cmdLine = CApaCommandLine::NewLC();
       
   681 		cmdLine->SetExecutableNameL(KDummySWIPath);
       
   682 		cmdLine->SetProcessEnvironmentL(process);
   670 		process.Resume();
   683 		process.Resume();
       
   684 		CleanupStack::PopAndDestroy(2);
       
   685 		cmdLine = NULL;
   671 		
   686 		
   672 		// Allow P&S to complete initialising
   687 		// Allow P&S to complete initialising
   673 		User::After(200000);
   688 		User::After(200000);
   674 		
   689 		
   675 		err = control.Open();       	
   690 		err = control.Open();       	
   715 	err = process.Create(KDummySWIPath, _L("3"));	// 3 = install timed-out
   730 	err = process.Create(KDummySWIPath, _L("3"));	// 3 = install timed-out
   716 	TESTDIAGNOSTICERROR(err==KErrNone,
   731 	TESTDIAGNOSTICERROR(err==KErrNone,
   717 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
   732 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
   718 	if( err==KErrNone )
   733 	if( err==KErrNone )
   719 		{
   734 		{
       
   735 		User::LeaveIfError(ls.Connect());
       
   736 		CleanupClosePushL(ls);
       
   737 		cmdLine = CApaCommandLine::NewLC();
       
   738 		cmdLine->SetExecutableNameL(KDummySWIPath);
       
   739 		cmdLine->SetProcessEnvironmentL(process);
   720 		process.Resume();
   740 		process.Resume();
       
   741 		CleanupStack::PopAndDestroy(2);
       
   742 		cmdLine = NULL;
   721 		
   743 		
   722 		// Allow P&S to complete initialising
   744 		// Allow P&S to complete initialising
   723 		User::After(200000);
   745 		User::After(200000);
   724 
   746 
   725 		err = control.Open();       	
   747 		err = control.Open();       	
   764 	err = process.Create(KDummySWIPath, _L("2"));	// 2 = install abort
   786 	err = process.Create(KDummySWIPath, _L("2"));	// 2 = install abort
   765 	TESTDIAGNOSTICERROR(err==KErrNone,
   787 	TESTDIAGNOSTICERROR(err==KErrNone,
   766 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
   788 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
   767 	if( err==KErrNone )
   789 	if( err==KErrNone )
   768 		{
   790 		{
       
   791 		User::LeaveIfError(ls.Connect());
       
   792 		CleanupClosePushL(ls);
       
   793 		cmdLine = CApaCommandLine::NewLC();
       
   794 		cmdLine->SetExecutableNameL(KDummySWIPath);
       
   795 		cmdLine->SetProcessEnvironmentL(process);
   769 		process.Resume();
   796 		process.Resume();
       
   797 		CleanupStack::PopAndDestroy(2);
       
   798 		cmdLine = NULL;
   770 			
   799 			
   771 		// Allow P&S to complete initialising
   800 		// Allow P&S to complete initialising
   772 		User::After(200000);
   801 		User::After(200000);
   773 
   802 
   774 		err = control.Open();       	
   803 		err = control.Open();       	
   823 	err = process.Create(KDummySWIPath, _L("2"));
   852 	err = process.Create(KDummySWIPath, _L("2"));
   824 	TESTDIAGNOSTICERROR(err==KErrNone,
   853 	TESTDIAGNOSTICERROR(err==KErrNone,
   825 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
   854 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
   826 	if( err==KErrNone )
   855 	if( err==KErrNone )
   827 		{
   856 		{
       
   857 		User::LeaveIfError(ls.Connect());
       
   858 		CleanupClosePushL(ls);
       
   859 		cmdLine = CApaCommandLine::NewLC();
       
   860 		cmdLine->SetExecutableNameL(KDummySWIPath);
       
   861 		cmdLine->SetProcessEnvironmentL(process);
   828 		process.Resume();
   862 		process.Resume();
       
   863 		CleanupStack::PopAndDestroy(2);
       
   864 		cmdLine = NULL;
   829 		
   865 		
   830 		// Allow P&S to complete initialising
   866 		// Allow P&S to complete initialising
   831 		User::After(200000);
   867 		User::After(200000);
   832 
   868 
   833 		err = control.Open();
   869 		err = control.Open();
   882 	err = process.Create(KDummySWIPath, _L("1"));
   918 	err = process.Create(KDummySWIPath, _L("1"));
   883 	TESTDIAGNOSTICERROR(err==KErrNone,
   919 	TESTDIAGNOSTICERROR(err==KErrNone,
   884 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
   920 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
   885 	if( err==KErrNone )
   921 	if( err==KErrNone )
   886 		{
   922 		{
       
   923 		User::LeaveIfError(ls.Connect());
       
   924 		CleanupClosePushL(ls);
       
   925 		cmdLine = CApaCommandLine::NewLC();
       
   926 		cmdLine->SetExecutableNameL(KDummySWIPath);
       
   927 		cmdLine->SetProcessEnvironmentL(process);
   887 		process.Resume();
   928 		process.Resume();
       
   929 		CleanupStack::PopAndDestroy(2);
       
   930 		cmdLine = NULL;
   888 		
   931 		
   889 		// Allow P&S to complete initialising
   932 		// Allow P&S to complete initialising
   890 		User::After(200000);
   933 		User::After(200000);
   891 
   934 
   892 		err = control.Open();       	
   935 		err = control.Open();       	
   925 	err = process.Create(KDummySWIPath, _L("1"));	
   968 	err = process.Create(KDummySWIPath, _L("1"));	
   926 	TESTDIAGNOSTICERROR(err==KErrNone,
   969 	TESTDIAGNOSTICERROR(err==KErrNone,
   927 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
   970 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
   928 	if( err==KErrNone )
   971 	if( err==KErrNone )
   929 		{
   972 		{
       
   973 		User::LeaveIfError(ls.Connect());
       
   974 		CleanupClosePushL(ls);
       
   975 		cmdLine = CApaCommandLine::NewLC();
       
   976 		cmdLine->SetExecutableNameL(KDummySWIPath);
       
   977 		cmdLine->SetProcessEnvironmentL(process);
   930 		process.Resume();
   978 		process.Resume();
       
   979 		CleanupStack::PopAndDestroy(2);
       
   980 		cmdLine = NULL;
   931 		
   981 		
   932 		// Allow P&S to complete initialising
   982 		// Allow P&S to complete initialising
   933 		User::After(200000);
   983 		User::After(200000);
   934 
   984 
   935 		err = control.Open();       	
   985 		err = control.Open();       	
   971 	err = process.Create(KDummySWIPath, _L("4"));	// 4 = uninstall success
  1021 	err = process.Create(KDummySWIPath, _L("4"));	// 4 = uninstall success
   972 	TESTDIAGNOSTICERROR(err==KErrNone,
  1022 	TESTDIAGNOSTICERROR(err==KErrNone,
   973 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
  1023 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
   974 	if( err==KErrNone )
  1024 	if( err==KErrNone )
   975 		{
  1025 		{
       
  1026 		User::LeaveIfError(ls.Connect());
       
  1027 		CleanupClosePushL(ls);
       
  1028 		cmdLine = CApaCommandLine::NewLC();
       
  1029 		cmdLine->SetExecutableNameL(KDummySWIPath);
       
  1030 		cmdLine->SetProcessEnvironmentL(process);
   976 		process.Resume();
  1031 		process.Resume();
       
  1032 		CleanupStack::PopAndDestroy(2);
       
  1033 		cmdLine = NULL;
   977 		
  1034 		
   978 		// Allow P&S to complete initialising
  1035 		// Allow P&S to complete initialising
   979 		User::After(200000);
  1036 		User::After(200000);
   980 
  1037 
   981 		err = control.Open();       	
  1038 		err = control.Open();       	
  1091 	err = process.Create(KDummySWIPath, _L("4"));	
  1148 	err = process.Create(KDummySWIPath, _L("4"));	
  1092 	TESTDIAGNOSTICERROR(err==KErrNone,
  1149 	TESTDIAGNOSTICERROR(err==KErrNone,
  1093 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
  1150 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
  1094 	if( err==KErrNone )
  1151 	if( err==KErrNone )
  1095 		{
  1152 		{
       
  1153 		User::LeaveIfError(ls.Connect());
       
  1154 		CleanupClosePushL(ls);
       
  1155 		cmdLine = CApaCommandLine::NewLC();
       
  1156 		cmdLine->SetExecutableNameL(KDummySWIPath);
       
  1157 		cmdLine->SetProcessEnvironmentL(process);
  1096 		process.Resume();
  1158 		process.Resume();
       
  1159 		CleanupStack::PopAndDestroy(2);
       
  1160 		cmdLine = NULL;
  1097 		
  1161 		
  1098 		// Allow P&S to complete initialising
  1162 		// Allow P&S to complete initialising
  1099 		User::After(200000);
  1163 		User::After(200000);
  1100 
  1164 
  1101 		err = control.Open();       	
  1165 		err = control.Open();       	
  1141 	err = process.Create(KDummySWIPath, _L("6"));	// 6 = uninstall timed-out
  1205 	err = process.Create(KDummySWIPath, _L("6"));	// 6 = uninstall timed-out
  1142 	TESTDIAGNOSTICERROR(err==KErrNone,
  1206 	TESTDIAGNOSTICERROR(err==KErrNone,
  1143 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
  1207 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
  1144 	if( err==KErrNone )
  1208 	if( err==KErrNone )
  1145 		{
  1209 		{
       
  1210 		User::LeaveIfError(ls.Connect());
       
  1211 		CleanupClosePushL(ls);
       
  1212 		cmdLine = CApaCommandLine::NewLC();
       
  1213 		cmdLine->SetExecutableNameL(KDummySWIPath);
       
  1214 		cmdLine->SetProcessEnvironmentL(process);
  1146 		process.Resume();
  1215 		process.Resume();
       
  1216 		CleanupStack::PopAndDestroy(2);
       
  1217 		cmdLine = NULL;
  1147 		
  1218 		
  1148 		// Allow P&S to complete initialising
  1219 		// Allow P&S to complete initialising
  1149 		User::After(200000);
  1220 		User::After(200000);
  1150 
  1221 
  1151 		err = control.Open();       	
  1222 		err = control.Open();       	
  1175 	err = process.Create(KDummySWIPath, _L("5"));	// 5 = Abort uninstall
  1246 	err = process.Create(KDummySWIPath, _L("5"));	// 5 = Abort uninstall
  1176 	TESTDIAGNOSTICERROR(err==KErrNone,
  1247 	TESTDIAGNOSTICERROR(err==KErrNone,
  1177 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
  1248 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
  1178 	if( err==KErrNone )
  1249 	if( err==KErrNone )
  1179 		{
  1250 		{
       
  1251 		User::LeaveIfError(ls.Connect());
       
  1252 		CleanupClosePushL(ls);
       
  1253 		cmdLine = CApaCommandLine::NewLC();
       
  1254 		cmdLine->SetExecutableNameL(KDummySWIPath);
       
  1255 		cmdLine->SetProcessEnvironmentL(process);
  1180 		process.Resume();
  1256 		process.Resume();
       
  1257 		CleanupStack::PopAndDestroy(2);
       
  1258 		cmdLine = NULL;
  1181 			
  1259 			
  1182 		// Allow P&S to complete initialising
  1260 		// Allow P&S to complete initialising
  1183 		User::After(200000);
  1261 		User::After(200000);
  1184 
  1262 
  1185 		err = control.Open();       	
  1263 		err = control.Open();       	
  1234 	err = process.Create(KDummySWIPath, _L("5"));
  1312 	err = process.Create(KDummySWIPath, _L("5"));
  1235 	TESTDIAGNOSTICERROR(err==KErrNone,
  1313 	TESTDIAGNOSTICERROR(err==KErrNone,
  1236 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
  1314 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
  1237 	if( err==KErrNone )
  1315 	if( err==KErrNone )
  1238 		{
  1316 		{
       
  1317 		User::LeaveIfError(ls.Connect());
       
  1318 		CleanupClosePushL(ls);
       
  1319 		cmdLine = CApaCommandLine::NewLC();
       
  1320 		cmdLine->SetExecutableNameL(KDummySWIPath);
       
  1321 		cmdLine->SetProcessEnvironmentL(process);
  1239 		process.Resume();
  1322 		process.Resume();
       
  1323 		CleanupStack::PopAndDestroy(2);
       
  1324 		cmdLine = NULL;
  1240 		
  1325 		
  1241 		// Allow P&S to complete initialising
  1326 		// Allow P&S to complete initialising
  1242 		User::After(200000);
  1327 		User::After(200000);
  1243 
  1328 
  1244 		err = control.Open();
  1329 		err = control.Open();
  1298 	err = process.Create(KDummySWIPath, _L("4"));
  1383 	err = process.Create(KDummySWIPath, _L("4"));
  1299 	TESTDIAGNOSTICERROR(err==KErrNone,
  1384 	TESTDIAGNOSTICERROR(err==KErrNone,
  1300 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
  1385 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
  1301 	if( err==KErrNone )
  1386 	if( err==KErrNone )
  1302 		{
  1387 		{
       
  1388 		User::LeaveIfError(ls.Connect());
       
  1389 		CleanupClosePushL(ls);
       
  1390 		cmdLine = CApaCommandLine::NewLC();
       
  1391 		cmdLine->SetExecutableNameL(KDummySWIPath);
       
  1392 		cmdLine->SetProcessEnvironmentL(process);
  1303 		process.Resume();
  1393 		process.Resume();
       
  1394 		CleanupStack::PopAndDestroy(2);
       
  1395 		cmdLine = NULL;
  1304 		
  1396 		
  1305 		// Allow P&S to complete initialising
  1397 		// Allow P&S to complete initialising
  1306 		User::After(200000);
  1398 		User::After(200000);
  1307 
  1399 
  1308 		err = control.Open();
  1400 		err = control.Open();
  1333 				_L("TFeatureEntry::FeatureData expects 0 for KNewUid3; returned value is = %d"),data);
  1425 				_L("TFeatureEntry::FeatureData expects 0 for KNewUid3; returned value is = %d"),data);
  1334 	
  1426 	
  1335 		// Starting helping exe
  1427 		// Starting helping exe
  1336 		_LIT(KHelpingExePath, "helping_exe.exe");
  1428 		_LIT(KHelpingExePath, "helping_exe.exe");
  1337 		err = process.Create(KHelpingExePath, _L("1"));
  1429 		err = process.Create(KHelpingExePath, _L("1"));
       
  1430 		User::LeaveIfError(ls.Connect());
       
  1431 		CleanupClosePushL(ls);
       
  1432 		cmdLine = CApaCommandLine::NewLC();
       
  1433 		cmdLine->SetExecutableNameL(KHelpingExePath);
       
  1434 		cmdLine->SetProcessEnvironmentL(process);
  1338 		process.Resume();
  1435 		process.Resume();
       
  1436 		CleanupStack::PopAndDestroy(2);
       
  1437 		cmdLine = NULL;
  1339 		
  1438 		
  1340 		// Wait for helping_exe to finish
  1439 		// Wait for helping_exe to finish
  1341 		User::After(600000);
  1440 		User::After(600000);
  1342 	
  1441 	
  1343 		// KNewUid1: added by the external exe (helping_exe)
  1442 		// KNewUid1: added by the external exe (helping_exe)
  1417 	err = process.Create(KDummySWIPath, _L("1"));
  1516 	err = process.Create(KDummySWIPath, _L("1"));
  1418 	TESTDIAGNOSTICERROR(err==KErrNone,
  1517 	TESTDIAGNOSTICERROR(err==KErrNone,
  1419 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
  1518 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
  1420 	if( err==KErrNone )
  1519 	if( err==KErrNone )
  1421 		{
  1520 		{
       
  1521 		User::LeaveIfError(ls.Connect());
       
  1522 		CleanupClosePushL(ls);
       
  1523 		cmdLine = CApaCommandLine::NewLC();
       
  1524 		cmdLine->SetExecutableNameL(KDummySWIPath);
       
  1525 		cmdLine->SetProcessEnvironmentL(process);
  1422 		process.Resume();
  1526 		process.Resume();
       
  1527 		CleanupStack::PopAndDestroy(2);
       
  1528 		cmdLine = NULL;
  1423 		
  1529 		
  1424 		// Allow P&S to complete initialising
  1530 		// Allow P&S to complete initialising
  1425 		User::After(200000);
  1531 		User::After(200000);
  1426 
  1532 
  1427 		err = control.Open();
  1533 		err = control.Open();
  1444 				_L("TFeatureEntry::FeatureData expects 0 for KNewUid1; returned value is = %d"),data);
  1550 				_L("TFeatureEntry::FeatureData expects 0 for KNewUid1; returned value is = %d"),data);
  1445 	
  1551 	
  1446 		// Starting helping exe which is going to call SWIEnd (passing 2 as a parameter to indicate this)
  1552 		// Starting helping exe which is going to call SWIEnd (passing 2 as a parameter to indicate this)
  1447 		_LIT(KHelpingExePath, "helping_exe.exe");
  1553 		_LIT(KHelpingExePath, "helping_exe.exe");
  1448 		err = process.Create(KHelpingExePath, _L("2"));
  1554 		err = process.Create(KHelpingExePath, _L("2"));
       
  1555 		User::LeaveIfError(ls.Connect());
       
  1556 		CleanupClosePushL(ls);
       
  1557 		cmdLine = CApaCommandLine::NewLC();
       
  1558 		cmdLine->SetExecutableNameL(KHelpingExePath);
       
  1559 		cmdLine->SetProcessEnvironmentL(process);
  1449 		process.Resume();
  1560 		process.Resume();
       
  1561 		CleanupStack::PopAndDestroy(2);
       
  1562 		cmdLine = NULL;
  1450 		
  1563 		
  1451 		User::After(500000);
  1564 		User::After(500000);
  1452 			
  1565 			
  1453 		// KNewUid1 : will not be committed to registry by the call to SWIEnd from the helping_exe
  1566 		// KNewUid1 : will not be committed to registry by the call to SWIEnd from the helping_exe
  1454 		err = control.FeatureSupported(query1);
  1567 		err = control.FeatureSupported(query1);
  1497 	err = process.Create(KDummySWIPath, _L("1"));
  1610 	err = process.Create(KDummySWIPath, _L("1"));
  1498 	TESTDIAGNOSTICERROR(err==KErrNone,
  1611 	TESTDIAGNOSTICERROR(err==KErrNone,
  1499 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
  1612 			   _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
  1500 	if( err==KErrNone )
  1613 	if( err==KErrNone )
  1501 		{
  1614 		{
       
  1615 		User::LeaveIfError(ls.Connect());
       
  1616 		CleanupClosePushL(ls);
       
  1617 		cmdLine = CApaCommandLine::NewLC();
       
  1618 		cmdLine->SetExecutableNameL(KDummySWIPath);
       
  1619 		cmdLine->SetProcessEnvironmentL(process);
  1502 		process.Resume();
  1620 		process.Resume();
       
  1621 		CleanupStack::PopAndDestroy(2);
       
  1622 		cmdLine = NULL;
  1503 		
  1623 		
  1504 		// Allow P&S to complete initialising
  1624 		// Allow P&S to complete initialising
  1505 		User::After(200000);
  1625 		User::After(200000);
  1506 
  1626 
  1507 		err = control.Open();
  1627 		err = control.Open();
  1614 		}
  1734 		}
  1615 	process.Close();
  1735 	process.Close();
  1616 	// Wait before starting the next test
  1736 	// Wait before starting the next test
  1617 	User::After(100000);
  1737 	User::After(100000);
  1618 	
  1738 	
  1619 	////////////////////////////////////////////////////////////////////////////////////////////
       
  1620 	// SCENARIO 18: Successful installation and features manipulation (Enable/Disable without modifying data)
       
  1621 	// Add Feature with user data -> P&S install -> SWIStart -> Enable/Disable Feature -> 
       
  1622 	//  -> SWIEnd -> P&S success -> No change to user data
       
  1623 	////////////////////////////////////////////////////////////////////////////////////////////
       
  1624     INFO_PRINTF1(_L("SCENARIO 18: Successful installation and Enable or Disable feature should not modify userdata"));
       
  1625     // Launching dummyswi.exe
       
  1626     err = process.Create(KDummySWIPath, _L("1"));   // 1 = install success
       
  1627     TESTDIAGNOSTICERROR(err==KErrNone,
       
  1628                _L("RProcess::Create expects KErrNone, returned value is = %d"),err);
       
  1629     if( err==KErrNone )
       
  1630         {
       
  1631         process.Resume();
       
  1632     
       
  1633         // Allow P&S to complete initialising
       
  1634         User::After(200000);
       
  1635         
       
  1636         err = control.Open();
       
  1637         TESTDIAGNOSTICERROR(err==KErrNone, _L("RFeatureControl::Open failed, returned value is = %d"),err);
       
  1638         
       
  1639         err = control.AddFeature(entry1);
       
  1640         TESTDIAGNOSTICERROR(err==KErrNone, _L("RFeatureControl::AddFeature expects KErrNone for KNewUid1; returned value is = %d"),err);
       
  1641         
       
  1642         err = control.SWIStart();
       
  1643         TESTDIAGNOSTICERROR(err==KErrNone, _L("RFeatureControl::SWIStart expects KErrNone; returned value is = %d"),err);
       
  1644         
       
  1645         // Enable feature
       
  1646         err = control.EnableFeature(KNewUid1);
       
  1647         TESTDIAGNOSTICERROR(err==KErrNone, _L("RFeatureControl::EnableFeature expects KErrNone for KNewUid1; returned value is = %d"),err);
       
  1648         
       
  1649         // Disable feature
       
  1650         err = control.DisableFeature(KNewUid1);
       
  1651         TESTDIAGNOSTICERROR(err==KErrNone, _L("RFeatureControl::EnableFeature expects KErrNone for KNewUid1; returned value is = %d"),err);
       
  1652         
       
  1653         err = control.SWIEnd();
       
  1654         TESTDIAGNOSTICERROR(err==KErrNone, _L("RFeatureControl::SWIEnd expects KErrNone; returned value is = %d"),err);
       
  1655         
       
  1656         // Delay until the P&S property is set to ESASwisStatusSuccess in dummyswi.exe to indicate successful installation
       
  1657         User::After(1500000);
       
  1658         
       
  1659         err = control.FeatureSupported(query1);
       
  1660         TESTDIAGNOSTICERROR(err==KErrNone, _L("TFeatureEntry::FeatureData expects 0 for KNewUid1; returned value is = %d"),err);
       
  1661         TESTDIAGNOSTICERROR(query1.FeatureData()==KDefaultData1, _L("TFeatureEntry::FeatureData expects non-zero for KNewUid1; returned value is = %d"), err);
       
  1662         
       
  1663         // Delete KNewUid1
       
  1664         err = control.DeleteFeature(KNewUid1);
       
  1665         TESTDIAGNOSTICERROR(err==KErrNone, _L("RFeatureControl::DeleteFeature expects KErrNone for KNewUid1; returned value is = %d"),err);
       
  1666         
       
  1667         query1 = TFeatureEntry(KNewUid1);
       
  1668         
       
  1669         control.Close();
       
  1670 
       
  1671         }
       
  1672     process.Close();
       
  1673     // Wait before starting the next test
       
  1674     User::After(100000);
       
  1675 	
       
  1676 
  1739 
  1677 	return TestStepResult();
  1740 	return TestStepResult();
  1678 	}
  1741 	}
  1679 
  1742