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_Value(r, r == KErrNone || r==KErrNotFound); |
133 test(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 // |
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_Value(r, r == KErrNone || r==KErrPathNotFound); |
287 test(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_KErrNone(r); |
291 test(r==KErrNone); |
292 r=file.Replace(TheFs,aFileName,0); |
292 r=file.Replace(TheFs,aFileName,0); |
293 test_KErrNone(r); |
293 test(r==KErrNone); |
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_KErrNone(r); |
298 test(r==KErrNone); |
299 r=file.Write(aFileContents); |
299 r=file.Write(aFileContents); |
300 test_KErrNone(r); |
300 test(r==KErrNone); |
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_Value(r, r == KErrNone || r==KErrPathNotFound); |
317 test(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_KErrNone(r); |
321 test(r==KErrNone); |
322 r=file.Replace(TheFs,aFileName,0); |
322 r=file.Replace(TheFs,aFileName,0); |
323 test_KErrNone(r); |
323 test(r==KErrNone); |
324 } |
324 } |
325 r=file.Write(aFileContents); |
325 r=file.Write(aFileContents); |
326 test_KErrNone(r); |
326 test(r==KErrNone); |
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_Value(r, r == KErrNone || r==KErrPathNotFound); |
338 test(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_KErrNone(r); |
342 test(r==KErrNone); |
343 r=file.Replace(TheFs,aFileName,0); |
343 r=file.Replace(TheFs,aFileName,0); |
344 test_KErrNone(r); |
344 test(r==KErrNone); |
345 } |
345 } |
346 file.Close(); |
346 file.Close(); |
347 r=TheFs.SetAtt(aFileName,anAttributes,0); |
347 r=TheFs.SetAtt(aFileName,anAttributes,0); |
348 test_KErrNone(r); |
348 test(r==KErrNone); |
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_KErrNone(r); |
358 test(r==KErrNone); |
359 r=TheFs.SessionPath(gSessionPath); |
359 r=TheFs.SessionPath(gSessionPath); |
360 test_KErrNone(r); |
360 test(r==KErrNone); |
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_Value(r, r == KErrNone || r==KErrAlreadyExists); |
379 test(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_Value(r, r == aResult); |
390 test(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_KErrNone(r); |
409 test(r==KErrNone); |
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_KErrNone(r); |
414 test(r==KErrNone); |
415 test(bufPtr==aContents); |
415 test(bufPtr==aContents); |
416 r=f.Read(bufPtr); |
416 r=f.Read(bufPtr); |
417 test_KErrNone(r); |
417 test(r==KErrNone); |
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_KErrNone(r); |
436 test(r==KErrNone); |
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_KErrNone(r); |
441 test(r==KErrNone); |
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_KErrNone(r); |
454 test(r==KErrNone); |
455 r=TheFs.SessionPath(gSessionPath); |
455 r=TheFs.SessionPath(gSessionPath); |
456 test_KErrNone(r); |
456 test(r==KErrNone); |
457 r=TheFs.MkDirAll(gSessionPath); |
457 r=TheFs.MkDirAll(gSessionPath); |
458 test_Value(r, r == KErrNone || r==KErrAlreadyExists); |
458 test(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_KErrNone(r); |
469 test(r==KErrNone); |
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_KErrNone(r); |
485 test(r==KErrNone); |
486 while(count) |
486 while(count) |
487 { |
487 { |
488 TInt r=format.Next(count); |
488 TInt r=format.Next(count); |
489 test_KErrNone(r); |
489 test(r==KErrNone); |
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_KErrNone(r); |
515 test(r==KErrNone); |
516 gSessionPath[0]=(TText)driveLetter; |
516 gSessionPath[0]=(TText)driveLetter; |
517 r=TheFs.SetSessionPath(gSessionPath); |
517 r=TheFs.SetSessionPath(gSessionPath); |
518 test_KErrNone(r); |
518 test(r==KErrNone); |
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 |
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_KErrNone(r); |
652 test(r==KErrNone); |
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_KErrNone(r); |
668 test(r==KErrNone); |
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(); |