diff -r a179b74831c9 -r c1f20ce4abcf kerneltest/f32test/server/t_wcache.cpp --- a/kerneltest/f32test/server/t_wcache.cpp Thu Aug 19 11:14:22 2010 +0300 +++ b/kerneltest/f32test/server/t_wcache.cpp Tue Aug 31 16:34:26 2010 +0300 @@ -28,6 +28,8 @@ #include #include "t_server.h" #include +#include +#include "tf32testtimer.h" const TInt KTotalCacheSize = 32 * 1024 * 1024; const TInt KDefaultCacheSize = (128 + 12) * 1024; // This size is the default configuration size @@ -89,7 +91,6 @@ const TInt KOneMeg = KOneK * 1024; const TInt KBlockSize = KOneK; const TInt KWaitRequestsTableSize = 256; -const TInt KMs = 1000; TInt gSecondFileSize = 0; TInt gFirstFileSize = 0; @@ -102,9 +103,6 @@ TBuf16<25> gCurrentFile; TInt gNextFile = 0; -TTime gTime1; -TTime gTime2; - // Concurrent Threads RThread gThread1; @@ -513,25 +511,22 @@ @return time taken to perform the operation in uS */ -TInt WriteTestFile(RFile& aFile, TDes16& aFileName, TInt aSize, TInt aBlockSize, TInt aMode) +TTimeIntervalMicroSeconds WriteTestFile(RFile& aFile, TDes16& aFileName, TInt aSize, TInt aBlockSize, TInt aMode) { RTest test(_L("T_WCACHE")); - TTime startTime; - TTime endTime; TInt r = 0; - - startTime.HomeTime(); + + TF32TestTimer timer; + timer.Start(); r = WriteFile(gTheFs,aFile, aFileName , aSize * KOneK, aBlockSize, gBufWritePtr, aMode); test_KErrNone(r); - - endTime.HomeTime(); - - gTimeTakenBigFile = I64LOW(endTime.MicroSecondsFrom(startTime).Int64()); - + + timer.Stop(); + gTimeTakenBigFile = timer.Time(); test.Close(); - return I64LOW(gTimeTakenBigFile.Int64()); + return timer.Time(); } /** Measure the time taken for this file to be read synchronously @@ -545,18 +540,16 @@ @return time taken to perform the operation in uS */ -TInt ReadTestFile(RFile& aFile, TDes16& aFileName, TInt aSize, TInt aBlockSize, TInt aMode) +TTimeIntervalMicroSeconds ReadTestFile(RFile& aFile, TDes16& aFileName, TInt aSize, TInt aBlockSize, TInt aMode) { - TTime startTime; - TTime endTime; + TF32TestTimer timer; + timer.Start(); + ReadFile(gTheFs,aFile, aFileName, aSize * KOneK, aBlockSize, aMode); + timer.Stop(); - startTime.HomeTime(); - ReadFile(gTheFs,aFile, aFileName, aSize * KOneK, aBlockSize, aMode); - endTime.HomeTime(); - - gTimeTakenBigFile = I64LOW(endTime.MicroSecondsFrom(startTime).Int64()); - - return I64LOW(gTimeTakenBigFile.Int64()) ; + gTimeTakenBigFile = timer.Time(); + + return timer.Time(); } /** Read asynchronously the test file from the disc @@ -569,22 +562,19 @@ @return time taken to perform the operation in uS */ -TInt ReadAsyncTestFile(RFile& file, TDes16& aFile, TInt aSize, TInt aBlockSize, TInt aMode) +TTimeIntervalMicroSeconds ReadAsyncTestFile(RFile& file, TDes16& aFile, TInt aSize, TInt aBlockSize, TInt aMode) { - TTime startTime; - TTime endTime; TRequestStatus status[KWaitRequestsTableSize]; - - startTime.HomeTime(); + TF32TestTimer timer; + timer.Start(); ReadFileAsync(gTheFs, file, aFile, aSize * KOneK, aBlockSize, status, aMode); WaitForAll(status, (aSize * KOneK)/KBlockSize); - - endTime.HomeTime(); + timer.Stop(); + + gTimeTakenBigFile = timer.Time(); - gTimeTakenBigFile = I64LOW(endTime.MicroSecondsFrom(startTime).Int64()); - - return I64LOW(gTimeTakenBigFile.Int64()); + return timer.Time(); } /** Read asynchronously the test file from the disc @@ -596,22 +586,19 @@ @return time taken to perform the operation in uS */ -TInt WriteAsyncTestFile(RFile& aFile, TDes16& aFileName, TInt aSize, TInt aMode) +TTimeIntervalMicroSeconds WriteAsyncTestFile(RFile& aFile, TDes16& aFileName, TInt aSize, TInt aMode) { - TTime startTime; - TTime endTime; TRequestStatus status[KWaitRequestsTableSize]; - - startTime.HomeTime(); + TF32TestTimer timer; + timer.Start(); WriteFileAsync(gTheFs, aFile, aFileName, aSize * KOneK, aMode, status ); WaitForAll(status, (aSize * KOneK)/KBlockSize); - - endTime.HomeTime(); + timer.Stop(); - gTimeTakenBigFile = I64LOW(endTime.MicroSecondsFrom(startTime).Int64()); + gTimeTakenBigFile = timer.Time(); - return I64LOW(gTimeTakenBigFile.Int64()); + return timer.Time(); } /** Test Boundaries @@ -621,9 +608,9 @@ void TestBoundaries() { TInt r = 0; - TInt time = 0; - TInt rtime = 0; - TInt tcreate = 0; + TTimeIntervalMicroSeconds time = 0; + TTimeIntervalMicroSeconds rtime = 0; + TTimeIntervalMicroSeconds tcreate = 0; RFile fileWriter; RFile fileWriter2; RFile fileReader; @@ -641,21 +628,22 @@ test.Printf(_L("\nSync: Write from 1 K to %d K \n"), i); tcreate = WriteTestFile(fileWriter, gSecondFile, i, KBlockSize, EFileShareAny|EFileWrite|EFileWriteDirectIO); - test.Printf(_L("Time to write %d K without caching: %d mS\n"), i, tcreate/KMs); + test.Printf(_L("Time to write %d K without caching: %d mS\n"), i, TF32TestTimer::TimeInMilliSeconds(tcreate)); fileWriter.Close(); time = WriteTestFile(fileWriter2, gFirstFile, i, KBlockSize, EFileShareAny|EFileWrite|EFileWriteBuffered); - test.Printf(_L("Time to write %d K WITH caching: %d mS\n"), i, time/KMs); + test.Printf(_L("Time to write %d K WITH caching: %d mS\n"), i, TF32TestTimer::TimeInMilliSeconds(time)); rtime = ReadTestFile(fileReader, gFirstFile, i, KBlockSize, EFileShareAny|EFileRead|EFileReadBuffered); - test.Printf(_L("Time to read %d K from the cache: %d mS\n"), i, rtime/KMs); - + test.Printf(_L("Time to read %d K from the cache: %d mS\n"), i, TF32TestTimer::TimeInMilliSeconds(rtime)); fileReader.Close(); fileWriter2.Close(); #if !defined(__WINS__) - test((tcreate > time) || (tcreate > rtime)); + test(tcreate > TTimeIntervalMicroSeconds(0)); // test measured time is correct + test(tcreate > time); + test(tcreate > rtime); #endif r = gTheFs.Delete(gFirstFile); @@ -676,21 +664,23 @@ test.Printf(_L("\nAsync: Write from 1 K to %d K \n"), i); tcreate = WriteAsyncTestFile(fileWriter, gSecondFile, i, EFileShareAny|EFileWrite|EFileWriteDirectIO); - test.Printf(_L("Time to write %d K without caching: %d mS\n"), i, tcreate/KMs); + test.Printf(_L("Time to write %d K without caching: %d mS\n"), i, TF32TestTimer::TimeInMilliSeconds(tcreate)); fileWriter.Close(); time = WriteAsyncTestFile(fileWriter2, gFirstFile, i,EFileShareAny|EFileWrite|EFileWriteBuffered); - test.Printf(_L("Time to write %d K WITH caching: %d mS\n"), i, time/KMs); + test.Printf(_L("Time to write %d K WITH caching: %d mS\n"), i, TF32TestTimer::TimeInMilliSeconds(time)); rtime = ReadAsyncTestFile(fileReader, gFirstFile, i, KBlockSize, EFileShareAny|EFileRead|EFileReadBuffered); - test.Printf(_L("Time to read %d K from the cache: %d mS\n"), i, rtime/KMs); + test.Printf(_L("Time to read %d K from the cache: %d mS\n"), i, TF32TestTimer::TimeInMilliSeconds(rtime)); fileReader.Close(); fileWriter2.Close(); #if !defined(__WINS__) - test((tcreate > time) || (tcreate > rtime)); + test(tcreate > TTimeIntervalMicroSeconds(0)); // test measured time is correct + test(tcreate > time); + test(tcreate > rtime); #endif r = gTheFs.Delete(gFirstFile); @@ -749,17 +739,16 @@ @return returns the time that took to do the verification in mS, fails if the file is not corrupted/modified */ -TInt ReadTestFileVerif(TDes16& aFile) +TTimeIntervalMicroSeconds ReadTestFileVerif(TDes16& aFile) { - TTime startTime; - TTime endTime; TInt r = 0; TInt size = 0; RFile fileRead; TInt corrupt = 0; TBool isFat=IsFSFAT(gTheFs,gDrive); - - startTime.HomeTime(); + + TF32TestTimer timer; + timer.Start(); r = fileRead.Open(gTheFs,aFile,EFileShareAny|EFileRead|EFileReadBuffered|EFileReadAheadOff); test_KErrNone(r); @@ -791,12 +780,11 @@ fileRead.Close(); test(corrupt>0); // Ensure the cache returns the changed content - - endTime.HomeTime(); + timer.Stop(); - gTimeTakenBigFile = I64LOW(endTime.MicroSecondsFrom(startTime).Int64()); + gTimeTakenBigFile = timer.Time(); - return I64LOW(gTimeTakenBigFile.Int64()) / KMs; + return timer.Time(); } /** Modifies the second file @@ -810,7 +798,7 @@ TPtr8 dummyPtr(NULL, 0); TRAPD(res,dummy = HBufC8::NewL(4)); - test(res == KErrNone && dummy != NULL); + test_Value(res, res == KErrNone && dummy != NULL); dummyPtr.Set(dummy->Des()); FillBuffer(dummyPtr, 4, '1'); @@ -840,8 +828,8 @@ LOCAL_C void TestIntegrity() { TInt r = 0; - TInt time; - TInt tcreate = 0; + TTimeIntervalMicroSeconds time; + TTimeIntervalMicroSeconds tcreate = 0; RFile file; // Modify file in some position @@ -850,14 +838,14 @@ test.Printf(_L("\nSync: Write from 1 K to %d K \n"), 255); tcreate = WriteTestFile(file, gSecondFile, 255, KBlockSize, EFileShareAny|EFileWrite|EFileWriteBuffered); - test.Printf(_L("Time to write %d K with caching: %d mS\n"), 255, tcreate/KMs); + test.Printf(_L("Time to write %d K with caching: %d mS\n"), 255, TF32TestTimer::TimeInMilliSeconds(tcreate)); file.Close(); test.Printf(_L("Mess the content that is still in the cache\n")); CorruptSecondFile(); time = ReadTestFileVerif(gSecondFile); - test.Printf(_L("Time taken to verify: %d\n"),time); + test.Printf(_L("Time taken to verify: %ld\n"),time.Int64()); test.Printf(_L("Integrity verified\n")); @@ -893,7 +881,7 @@ TInt KBigBifferSize = 32 * KOneK; TRAPD(res,bigBuf = HBufC8::NewL(KBigBifferSize)); - test(res == KErrNone && bigBuf != NULL); + test_Value(res, res == KErrNone && bigBuf != NULL); TPtr8 bigBufWritePtr(NULL, 0); bigBufWritePtr.Set(bigBuf->Des()); @@ -959,7 +947,7 @@ HBufC8* bigBuf = NULL; const TInt KBigBifferSize = 32 * 1024; TRAPD(res,bigBuf = HBufC8::NewL(KBigBifferSize)); - test(res == KErrNone && bigBuf != NULL); + test_Value(res, res == KErrNone && bigBuf != NULL); TPtr8 bigBufWritePtr(NULL, 0); bigBufWritePtr.Set(bigBuf->Des()); @@ -1016,7 +1004,7 @@ TPtr8 bufPtr(NULL, 0); TRAPD(res,buf = HBufC8::NewL(2)); - test(res == KErrNone && buf != NULL); + test_Value(res, res == KErrNone && buf != NULL); bufPtr.Set(buf->Des()); directory = gSessionPath; @@ -1178,7 +1166,7 @@ */ void TestRemoval() { - TInt time = 0, rtime = 0; + TTimeIntervalMicroSeconds time = 0, rtime = 0; RFile file1, file2; @@ -1214,7 +1202,7 @@ TRAPD(res,gBuf = HBufC8::NewL(KBlockSize+1)); - test(res == KErrNone && gBuf != NULL); + test_Value(res, res == KErrNone && gBuf != NULL); gBufWritePtr.Set(gBuf->Des()); FillBuffer(gBufWritePtr, KBlockSize, 'A'); @@ -1227,7 +1215,7 @@ test.Printf(_L("\nSync: Write from 1 K to 254 K \n")); time = WriteTestFile(file1, gSecondFile, KMinSize, KBlockSize, EFileShareAny|EFileWrite|EFileWriteBuffered); - test.Printf(_L("Time to write %d K WITH caching: %d mS\n"), KMinSize, time/KMs); + test.Printf(_L("Time to write %d K WITH caching: %d mS\n"), KMinSize, TF32TestTimer::TimeInMilliSeconds(time)); test.Printf(_L("Remove MMC card,! and then press a key\n")); test.Getch(); @@ -1235,7 +1223,7 @@ test.Getch(); rtime = ReadTestFile(file2, gSecondFile, KMinSize, KBlockSize, EFileShareAny|EFileRead|EFileReadBuffered); - test.Printf(_L("Time to read %d K from the cache: %d mS\n"), KMinSize, rtime/KMs); + test.Printf(_L("Time to read %d K from the cache: %d mS\n"), KMinSize, TF32TestTimer::TimeInMilliSeconds(rtime)); test.Printf(_L("Remove MMC card! and then press a key\n")); test.Getch(); @@ -1247,7 +1235,7 @@ test.Printf(_L("\nSync: Write from 1 K to 255 K \n")); time = WriteTestFile(file1, gFirstFile, KMinSize + 1 , KBlockSize, EFileShareAny|EFileWrite|EFileWriteBuffered); - test.Printf(_L("Time to write %d K WITH caching: %d mS\n"), KMinSize + 1, time/KMs); + test.Printf(_L("Time to write %d K WITH caching: %d mS\n"), KMinSize + 1, TF32TestTimer::TimeInMilliSeconds(time)); test.Printf(_L("Remove MMC card and delete the file //F32-TST//FFFFFFF0.TXT and then press a key\n")); test.Getch(); @@ -1255,7 +1243,7 @@ test.Getch(); rtime = ReadTestFile(file2, gFirstFile, KMinSize + 1, KBlockSize, EFileShareAny|EFileRead|EFileReadBuffered); - test.Printf(_L("Time to read %d K from the cache: %d mS\n"), KMinSize + 1, rtime/KMs); + test.Printf(_L("Time to read %d K from the cache: %d mS\n"), KMinSize + 1, TF32TestTimer::TimeInMilliSeconds(rtime)); test.Printf(_L("Remove MMC card! and then press a key\n")); test.Getch(); @@ -1299,7 +1287,7 @@ TRAPD(res,gBuf = HBufC8::NewL(KBlockSize+1)); - test(res == KErrNone && gBuf != NULL); + test_Value(res, res == KErrNone && gBuf != NULL); gBufWritePtr.Set(gBuf->Des()); FillBuffer(gBufWritePtr, KBlockSize, 'A'); @@ -1367,10 +1355,8 @@ TVolumeInfo volInfo; TInt r = gTheFs.Volume(volInfo, gDrive); test_KErrNone(r); - gMediaSize = volInfo.iSize; - - test.Printf(_L("\nMedia size: %d MB\n"), gMediaSize/KOneMeg ); - + gMediaSize = volInfo.iFree; + test.Printf(_L("\nMedia free space: %d MB\n"), gMediaSize/KOneMeg); return ETrue; }