kerneltest/f32test/concur/t_cfsmain.cpp
changeset 109 b3a1d9898418
parent 0 a41df078684a
child 257 3e88ff8f41d5
equal deleted inserted replaced
102:ef2a444a7410 109:b3a1d9898418
   128 // return true if fat on aDrive
   128 // return true if fat on aDrive
   129 //
   129 //
   130 	{
   130 	{
   131 	TFileName f;
   131 	TFileName f;
   132 	TInt r=aFsSession.FileSystemName(f,aDrive);
   132 	TInt r=aFsSession.FileSystemName(f,aDrive);
   133 	test(r==KErrNone || r==KErrNotFound);
   133 	test_Value(r, r == KErrNone || r==KErrNotFound);
   134 	return (f.CompareF(KFatName)==0);
   134 	return (f.CompareF(KFatName)==0);
   135 	}
   135 	}
   136 
   136 
   137 GLDEF_C void CreateLongName(TDes& aFileName,TInt64& aSeed,TInt aLength)
   137 GLDEF_C void CreateLongName(TDes& aFileName,TInt64& aSeed,TInt aLength)
   138 //
   138 //
   217 //
   217 //
   218 	{
   218 	{
   219 
   219 
   220 	TEntry entry;
   220 	TEntry entry;
   221 	TInt r=TheFs.Entry(aName,entry);
   221 	TInt r=TheFs.Entry(aName,entry);
   222 	test(r==KErrNone);
   222 	test_KErrNone(r);
   223 	test(entry.iAtt==anAttributes);
   223 	test(entry.iAtt==anAttributes);
   224 	if (aModified!=TTime(0))
   224 	if (aModified!=TTime(0))
   225 		test(entry.iModified==aModified);
   225 		test(entry.iModified==aModified);
   226 	}
   226 	}
   227 
   227 
   282 //
   282 //
   283 	{
   283 	{
   284 
   284 
   285 	RFile file;
   285 	RFile file;
   286 	TInt r=file.Replace(TheFs,aFileName,0);
   286 	TInt r=file.Replace(TheFs,aFileName,0);
   287 	test(r==KErrNone || r==KErrPathNotFound);
   287 	test_Value(r, r == KErrNone || r==KErrPathNotFound);
   288 	if (r==KErrPathNotFound)
   288 	if (r==KErrPathNotFound)
   289 		{
   289 		{
   290 		r=TheFs.MkDirAll(aFileName);
   290 		r=TheFs.MkDirAll(aFileName);
   291 		test(r==KErrNone);
   291 		test_KErrNone(r);
   292 		r=file.Replace(TheFs,aFileName,0);
   292 		r=file.Replace(TheFs,aFileName,0);
   293 		test(r==KErrNone);
   293 		test_KErrNone(r);
   294 		}
   294 		}
   295 	TCheckedUid checkedUid(aUidType);
   295 	TCheckedUid checkedUid(aUidType);
   296 	TPtrC8 uidData((TUint8*)&checkedUid,sizeof(TCheckedUid));
   296 	TPtrC8 uidData((TUint8*)&checkedUid,sizeof(TCheckedUid));
   297 	r=file.Write(uidData);
   297 	r=file.Write(uidData);
   298 	test(r==KErrNone);
   298 	test_KErrNone(r);
   299 	r=file.Write(aFileContents);
   299 	r=file.Write(aFileContents);
   300 	test(r==KErrNone);
   300 	test_KErrNone(r);
   301 	file.Close();
   301 	file.Close();
   302 	}
   302 	}
   303 
   303 
   304 GLDEF_C void MakeFile(const TDesC& aFileName,const TDesC8& aFileContents)
   304 GLDEF_C void MakeFile(const TDesC& aFileName,const TDesC8& aFileContents)
   305 //
   305 //
   312 	if(r!=KErrNone && r!=KErrPathNotFound)
   312 	if(r!=KErrNone && r!=KErrPathNotFound)
   313 		{
   313 		{
   314 		test.Printf(_L("ERROR: r=%d"),r);
   314 		test.Printf(_L("ERROR: r=%d"),r);
   315 		test(EFalse);
   315 		test(EFalse);
   316 		}
   316 		}
   317 	test(r==KErrNone || r==KErrPathNotFound);
   317 	test_Value(r, r == KErrNone || r==KErrPathNotFound);
   318 	if (r==KErrPathNotFound)
   318 	if (r==KErrPathNotFound)
   319 		{
   319 		{
   320 		r=TheFs.MkDirAll(aFileName);
   320 		r=TheFs.MkDirAll(aFileName);
   321 		test(r==KErrNone);
   321 		test_KErrNone(r);
   322 		r=file.Replace(TheFs,aFileName,0);
   322 		r=file.Replace(TheFs,aFileName,0);
   323 		test(r==KErrNone);
   323 		test_KErrNone(r);
   324 		}
   324 		}
   325 	r=file.Write(aFileContents);
   325 	r=file.Write(aFileContents);
   326 	test(r==KErrNone);
   326 	test_KErrNone(r);
   327 	file.Close();
   327 	file.Close();
   328 	}
   328 	}
   329 
   329 
   330 GLDEF_C void MakeFile(const TDesC& aFileName,TInt anAttributes)
   330 GLDEF_C void MakeFile(const TDesC& aFileName,TInt anAttributes)
   331 //
   331 //
   333 //
   333 //
   334 	{
   334 	{
   335 
   335 
   336 	RFile file;
   336 	RFile file;
   337 	TInt r=file.Replace(TheFs,aFileName,0);
   337 	TInt r=file.Replace(TheFs,aFileName,0);
   338 	test(r==KErrNone || r==KErrPathNotFound);
   338 	test_Value(r, r == KErrNone || r==KErrPathNotFound);
   339 	if (r==KErrPathNotFound)
   339 	if (r==KErrPathNotFound)
   340 		{
   340 		{
   341 		r=TheFs.MkDirAll(aFileName);
   341 		r=TheFs.MkDirAll(aFileName);
   342 		test(r==KErrNone);
   342 		test_KErrNone(r);
   343 		r=file.Replace(TheFs,aFileName,0);
   343 		r=file.Replace(TheFs,aFileName,0);
   344 		test(r==KErrNone);
   344 		test_KErrNone(r);
   345 		}
   345 		}
   346 	file.Close();
   346 	file.Close();
   347 	r=TheFs.SetAtt(aFileName,anAttributes,0);
   347 	r=TheFs.SetAtt(aFileName,anAttributes,0);
   348 	test(r==KErrNone);
   348 	test_KErrNone(r);
   349 	}
   349 	}
   350 
   350 
   351 GLDEF_C void SetSessionPath(const TDesC& aPathName)
   351 GLDEF_C void SetSessionPath(const TDesC& aPathName)
   352 //
   352 //
   353 // Set the session path and update gSessionPath
   353 // Set the session path and update gSessionPath
   354 //
   354 //
   355 	{
   355 	{
   356 
   356 
   357 	TInt r=TheFs.SetSessionPath(aPathName);
   357 	TInt r=TheFs.SetSessionPath(aPathName);
   358 	test(r==KErrNone);
   358 	test_KErrNone(r);
   359 	r=TheFs.SessionPath(gSessionPath);
   359 	r=TheFs.SessionPath(gSessionPath);
   360 	test(r==KErrNone);
   360 	test_KErrNone(r);
   361 	}
   361 	}
   362 
   362 
   363 GLDEF_C void MakeFile(const TDesC& aFileName)
   363 GLDEF_C void MakeFile(const TDesC& aFileName)
   364 //
   364 //
   365 // Make a file
   365 // Make a file
   374 // Make a directory
   374 // Make a directory
   375 //
   375 //
   376 	{
   376 	{
   377 
   377 
   378 	TInt r=TheFs.MkDirAll(aDirName);
   378 	TInt r=TheFs.MkDirAll(aDirName);
   379 	test(r==KErrNone || r==KErrAlreadyExists);
   379 	test_Value(r, r == KErrNone || r==KErrAlreadyExists);
   380 	}
   380 	}
   381 
   381 
   382 GLDEF_C TInt CheckFileExists(const TDesC& aName,TInt aResult,TBool aCompRes/*=ETrue*/)
   382 GLDEF_C TInt CheckFileExists(const TDesC& aName,TInt aResult,TBool aCompRes/*=ETrue*/)
   383 //
   383 //
   384 // Check aName exists
   384 // Check aName exists
   385 //
   385 //
   386 	{
   386 	{
   387 
   387 
   388 	TEntry entry;
   388 	TEntry entry;
   389 	TInt r=TheFs.Entry(aName,entry);
   389 	TInt r=TheFs.Entry(aName,entry);
   390 	test(r==aResult);
   390 	test_Value(r, r == aResult);
   391 	if (aResult!=KErrNone)
   391 	if (aResult!=KErrNone)
   392 		return(0);
   392 		return(0);
   393 	TParsePtrC nameParse(aName);
   393 	TParsePtrC nameParse(aName);
   394 	TParsePtrC entryParse(entry.iName);
   394 	TParsePtrC entryParse(entry.iName);
   395 	TBool nameMatch=(entryParse.Name()==nameParse.Name());
   395 	TBool nameMatch=(entryParse.Name()==nameParse.Name());
   404 //
   404 //
   405 	{
   405 	{
   406 
   406 
   407 	RFile f;
   407 	RFile f;
   408 	TInt r=f.Open(TheFs,aName,EFileRead);
   408 	TInt r=f.Open(TheFs,aName,EFileRead);
   409 	test(r==KErrNone);
   409 	test_KErrNone(r);
   410 	HBufC8* testBuf=HBufC8::NewL(aContents.Length());
   410 	HBufC8* testBuf=HBufC8::NewL(aContents.Length());
   411 	test(testBuf!=NULL);
   411 	test(testBuf!=NULL);
   412 	TPtr8 bufPtr(testBuf->Des());
   412 	TPtr8 bufPtr(testBuf->Des());
   413 	r=f.Read(bufPtr);
   413 	r=f.Read(bufPtr);
   414 	test(r==KErrNone);
   414 	test_KErrNone(r);
   415 	test(bufPtr==aContents);
   415 	test(bufPtr==aContents);
   416 	r=f.Read(bufPtr);
   416 	r=f.Read(bufPtr);
   417 	test(r==KErrNone);
   417 	test_KErrNone(r);
   418 	test(bufPtr.Length()==0);
   418 	test(bufPtr.Length()==0);
   419 	f.Close();
   419 	f.Close();
   420 	User::Free(testBuf);
   420 	User::Free(testBuf);
   421 	}
   421 	}
   422 
   422 
   431 	TheFs.SetAtt(_L("\\F32-TST\\SCANTEST\\Left\\Dir3\\Dir4\\Hidden\\System"), 0, KEntryAttSystem);
   431 	TheFs.SetAtt(_L("\\F32-TST\\SCANTEST\\Left\\Dir3\\Dir4\\Hidden\\System"), 0, KEntryAttSystem);
   432 	test.Next(_L("Delete test directory"));
   432 	test.Next(_L("Delete test directory"));
   433 	CFileMan* fMan=CFileMan::NewL(TheFs);
   433 	CFileMan* fMan=CFileMan::NewL(TheFs);
   434 	test(fMan!=NULL);
   434 	test(fMan!=NULL);
   435 	TInt r=TheFs.SessionPath(gSessionPath);
   435 	TInt r=TheFs.SessionPath(gSessionPath);
   436 	test(r==KErrNone);
   436 	test_KErrNone(r);
   437 	r=TheFs.CheckDisk(gSessionPath);
   437 	r=TheFs.CheckDisk(gSessionPath);
   438 	if (r!=KErrNone && r!=KErrNotSupported)
   438 	if (r!=KErrNone && r!=KErrNotSupported)
   439 		ReportCheckDiskFailure(r);
   439 		ReportCheckDiskFailure(r);
   440 	r=fMan->RmDir(gSessionPath);
   440 	r=fMan->RmDir(gSessionPath);
   441 	test(r==KErrNone);
   441 	test_KErrNone(r);
   442 	delete fMan;
   442 	delete fMan;
   443 	}
   443 	}
   444 
   444 
   445 GLDEF_C void CreateTestDirectory(const TDesC& aSessionPath)
   445 GLDEF_C void CreateTestDirectory(const TDesC& aSessionPath)
   446 //
   446 //
   449 	{
   449 	{
   450 	TParsePtrC path(aSessionPath);
   450 	TParsePtrC path(aSessionPath);
   451 	test(path.DrivePresent()==EFalse);
   451 	test(path.DrivePresent()==EFalse);
   452 
   452 
   453 	TInt r=TheFs.SetSessionPath(aSessionPath);
   453 	TInt r=TheFs.SetSessionPath(aSessionPath);
   454 	test(r==KErrNone);
   454 	test_KErrNone(r);
   455 	r=TheFs.SessionPath(gSessionPath);
   455 	r=TheFs.SessionPath(gSessionPath);
   456 	test(r==KErrNone);
   456 	test_KErrNone(r);
   457 	r=TheFs.MkDirAll(gSessionPath);
   457 	r=TheFs.MkDirAll(gSessionPath);
   458 	test(r==KErrNone || r==KErrAlreadyExists);
   458 	test_Value(r, r == KErrNone || r==KErrAlreadyExists);
   459 	}
   459 	}
   460 
   460 
   461 GLDEF_C TInt CurrentDrive()
   461 GLDEF_C TInt CurrentDrive()
   462 //
   462 //
   463 // Return the current drive number
   463 // Return the current drive number
   464 //
   464 //
   465 	{
   465 	{
   466 
   466 
   467 	TInt driveNum;
   467 	TInt driveNum;
   468 	TInt r=TheFs.CharToDrive(gSessionPath[0],driveNum);
   468 	TInt r=TheFs.CharToDrive(gSessionPath[0],driveNum);
   469 	test(r==KErrNone);
   469 	test_KErrNone(r);
   470 	return(driveNum);
   470 	return(driveNum);
   471 	}
   471 	}
   472 
   472 
   473 GLDEF_C void Format(TInt aDrive)
   473 GLDEF_C void Format(TInt aDrive)
   474 //
   474 //
   480 	TBuf<4> driveBuf=_L("?:\\");
   480 	TBuf<4> driveBuf=_L("?:\\");
   481 	driveBuf[0]=(TText)(aDrive+'A');
   481 	driveBuf[0]=(TText)(aDrive+'A');
   482 	RFormat format;
   482 	RFormat format;
   483 	TInt count;
   483 	TInt count;
   484 	TInt r=format.Open(TheFs,driveBuf,EHighDensity,count);
   484 	TInt r=format.Open(TheFs,driveBuf,EHighDensity,count);
   485 	test(r==KErrNone);
   485 	test_KErrNone(r);
   486 	while(count)
   486 	while(count)
   487 		{
   487 		{
   488 		TInt r=format.Next(count);
   488 		TInt r=format.Next(count);
   489 		test(r==KErrNone);
   489 		test_KErrNone(r);
   490 		}
   490 		}
   491 	format.Close();
   491 	format.Close();
   492 	}
   492 	}
   493 
   493 
   494 LOCAL_C void PushLotsL()
   494 LOCAL_C void PushLotsL()
   510 	{
   510 	{
   511 
   511 
   512 	gSessionPath=_L("?:\\F32-TST\\");
   512 	gSessionPath=_L("?:\\F32-TST\\");
   513 	TChar driveLetter;
   513 	TChar driveLetter;
   514 	TInt r=TheFs.DriveToChar(aDrive,driveLetter);
   514 	TInt r=TheFs.DriveToChar(aDrive,driveLetter);
   515 	test(r==KErrNone);
   515 	test_KErrNone(r);
   516 	gSessionPath[0]=(TText)driveLetter;
   516 	gSessionPath[0]=(TText)driveLetter;
   517 	r=TheFs.SetSessionPath(gSessionPath);
   517 	r=TheFs.SetSessionPath(gSessionPath);
   518 	test(r==KErrNone);
   518 	test_KErrNone(r);
   519 
   519 
   520 // !!! Disable platform security tests until we get the new APIs
   520 // !!! Disable platform security tests until we get the new APIs
   521 //	if(User::Capability() & KCapabilityRoot)
   521 //	if(User::Capability() & KCapabilityRoot)
   522 //		CheckMountLFFS(TheFs,driveLetter);
   522 //		CheckMountLFFS(TheFs,driveLetter);
   523 
   523 
   622 
   622 
   623 	test.Title();
   623 	test.Title();
   624 	test.Start(_L("Starting tests..."));
   624 	test.Start(_L("Starting tests..."));
   625 
   625 
   626 	r=TheFs.Connect();
   626 	r=TheFs.Connect();
   627 	test(r==KErrNone);
   627 	test_KErrNone(r);
   628 
   628 
   629 	ParseCommandArguments(); //need this for drive letter to test
   629 	ParseCommandArguments(); //need this for drive letter to test
   630 
   630 
   631 	TheFs.SetAllocFailure(gAllocFailOn);
   631 	TheFs.SetAllocFailure(gAllocFailOn);
   632 	TTime timerC;
   632 	TTime timerC;
   647 	sessionp[0]=(TText)gDriveToTest;
   647 	sessionp[0]=(TText)gDriveToTest;
   648 	test.Printf(_L("sp1=%S"),&sessionp);
   648 	test.Printf(_L("sp1=%S"),&sessionp);
   649 
   649 
   650 	TInt theDrive;
   650 	TInt theDrive;
   651 	r=TheFs.CharToDrive(gDriveToTest,theDrive);
   651 	r=TheFs.CharToDrive(gDriveToTest,theDrive);
   652 	test(r==KErrNone);
   652 	test_KErrNone(r);
   653 	
   653 	
   654 	// set up debug register
   654 	// set up debug register
   655 	test.Printf(_L("debug register = 0x%X"), gDebugFlags);
   655 	test.Printf(_L("debug register = 0x%X"), gDebugFlags);
   656 	TheFs.SetDebugRegister(gDebugFlags);
   656 	TheFs.SetDebugRegister(gDebugFlags);
   657 
   657 
   663 
   663 
   664 	TTime endTimeC;
   664 	TTime endTimeC;
   665 	endTimeC.HomeTime();
   665 	endTimeC.HomeTime();
   666 	TTimeIntervalSeconds timeTakenC;
   666 	TTimeIntervalSeconds timeTakenC;
   667 	r=endTimeC.SecondsFrom(timerC,timeTakenC);
   667 	r=endTimeC.SecondsFrom(timerC,timeTakenC);
   668 	test(r==KErrNone);
   668 	test_KErrNone(r);
   669 	test.Printf(_L("Time taken for test = %d seconds\n"),timeTakenC);
   669 	test.Printf(_L("Time taken for test = %d seconds\n"),timeTakenC);
   670 	TheFs.SetAllocFailure(gAllocFailOff);
   670 	TheFs.SetAllocFailure(gAllocFailOff);
   671 	TheFs.Close();
   671 	TheFs.Close();
   672 	test.End();
   672 	test.End();
   673 	test.Close();
   673 	test.Close();