diff -r c1f20ce4abcf -r 3e88ff8f41d5 kerneltest/f32test/server/t_filecache.cpp --- a/kerneltest/f32test/server/t_filecache.cpp Tue Aug 31 16:34:26 2010 +0300 +++ b/kerneltest/f32test/server/t_filecache.cpp Wed Sep 01 12:34:56 2010 +0100 @@ -22,7 +22,6 @@ #include "t_server.h" #include #include -#include //---------------------------------------------------------------------------------------------- @@ -115,7 +114,7 @@ void PrintFileCacheConfig(TFileCacheConfig& aFileCacheConfig, TBool aDisplay = ETrue) { TInt r = controlIo(TheFs,gDrive, KControlIoFileCacheConfig, aFileCacheConfig); - test_KErrNone(r); + test (r == KErrNone); if (!aDisplay) return; @@ -251,108 +250,6 @@ } } -TInt FreeRam() - { - // wait for any async cleanup in the supervisor to finish first... - UserSvr::HalFunction(EHalGroupKernel, EKernelHalSupervisorBarrier, 0, 0); - - TMemoryInfoV1Buf meminfo; - UserHal::MemoryInfo(meminfo); - return meminfo().iFreeRamInBytes; - } - -void LowMemoryTest() - { - TInt fileSize = 0; - - const TInt KWriteLen = 128*1024; - test.Next(_L("Test appending to a file with low memory")); - gBufPtr.SetLength(KBufSize); - - RFile f; - TFileName testFile = _L("TEST.BIN"); - - TInt r = f.Replace(TheFs, testFile, EFileWrite | EFileWriteBuffered); - test_KErrNone(r); - - TInt pos = 0; - - TPtrC8 writePtr; - writePtr.Set(gBufPtr.MidTPtr(pos, KWriteLen)); - - r = f.Write(pos, writePtr); - test_KErrNone(r); - pos+= writePtr.Length(); - - r = f.Size(fileSize); - test_KErrNone(r); - test_Equal(fileSize,pos); - - - - TUint freeRam = FreeRam(); - const TInt KPageSize=4096; - freeRam = (freeRam + KPageSize -1) & ~(KPageSize-1); - test.Printf(_L("FreeRam = %d"), freeRam); - - RChunk chunk; - TChunkCreateInfo chunkInfo; - chunkInfo.SetDisconnected(0, 0, freeRam); - chunkInfo.SetPaging(TChunkCreateInfo::EUnpaged); - test_KErrNone(chunk.Create(chunkInfo)); - - test.Printf(_L("Gobbling all of memory...")); - - TUint commitEnd; - for (commitEnd = 0; commitEnd < freeRam; commitEnd += KPageSize) - { - r = chunk.Commit(commitEnd,KPageSize); - if (r != KErrNone) - break; - - } - test.Printf(_L("commitEnd %d, r %d"), commitEnd, r); - test_Value(r, r == KErrNoMemory || r == KErrNone); - - test.Printf(_L("FreeRam = %d"), FreeRam()); - - pos-= KSegmentSize; - writePtr.Set(gBufPtr.MidTPtr(pos, KWriteLen)); - - test.Printf(_L("Writing to file...")); - - // now we have gobbled all or most of memory, the next write can fail - // if it does keep decommitting memory until it succeeds and then test that the file size is correct - commitEnd = 0; - do { - - r = f.Write(pos, writePtr); - test_Value(r, r == KErrNoMemory || r == KErrNone); - if (r == KErrNoMemory) - { - chunk.Decommit(commitEnd,KPageSize); - commitEnd += KPageSize; - } - } - while (r == KErrNoMemory); - - pos+= writePtr.Length(); - - test.Printf(_L("Gsetting size of file ...")); - r = f.Size(fileSize); - test_KErrNone(r); - test_Equal(fileSize,pos); - - test.Printf(_L("Closing file ...")); - f.Close(); - - test.Printf(_L("Closing chunk ...")); - chunk.Close(); - - test.Printf(_L("FreeRam = %d"), FreeRam()); - } - - LOCAL_C void UnitTests() // @@ -374,7 +271,7 @@ TBool simulatelockFailureMode; TFileCacheStats fileCacheStats; r = controlIo(TheFs, gDrive, KControlIoFileCacheStats, fileCacheStats); - test_KErrNone(r); + test (r == KErrNone); test.Printf(_L("Number of files on closed queue=%d\n"),fileCacheStats.iFilesOnClosedQueue); test(fileCacheStats.iFilesOnClosedQueue == 0); #endif @@ -383,7 +280,7 @@ // turn OFF lock failure mode simulatelockFailureMode = EFalse; r = controlIo(TheFs, gDrive, KControlIoSimulateLockFailureMode, simulatelockFailureMode); - test_KErrNone(r); + test (r == KErrNone); #endif TFileName testFile = _L("TEST.BIN"); @@ -402,8 +299,6 @@ TInt uncachedPacketsRead; #endif - LowMemoryTest(); - // create an empty file, so that any writes overlapping segemt boundaries // need a read first // create a test file using directIO and then re-open it in buffered mode, @@ -562,9 +457,6 @@ r = f.Replace(TheFs, testFile, EFileReadBuffered | EFileWrite | EFileWriteBuffered); test_KErrNone(r); - r = f.SetSize(gFileCacheConfig.iCacheSize); - test_KErrNone(r); - RTimer timer; timer.CreateLocal(); TRequestStatus reqStat; @@ -726,7 +618,7 @@ TInt size; r = f.Size(size); - test_KErrNone(r); + test (r == KErrNone); test (size = KBufSize); readPtr.Set(gBuf->Des()); @@ -735,7 +627,7 @@ // Allocate full cachelines - so we can enable hole testing TBool allocateAllSegmentsInCacheLine = ETrue; r = controlIo(TheFs, gDrive, KControlIoAllocateMaxSegments, allocateAllSegmentsInCacheLine); - test_KErrNone(r); + test (r == KErrNone); PrintFileCacheStats(fileCacheStats, EFalse); TInt holesDetected = fileCacheStats.iHoleCount; TInt lockFailures = fileCacheStats.iCommitFailureCount + fileCacheStats.iLockFailureCount; @@ -820,7 +712,7 @@ // Don't allocate full cachelines any more allocateAllSegmentsInCacheLine = EFalse; r = controlIo(TheFs, gDrive, KControlIoAllocateMaxSegments, allocateAllSegmentsInCacheLine); - test_KErrNone(r); + test (r == KErrNone); #endif @@ -920,7 +812,7 @@ #if defined(_DEBUG) || defined(_DEBUG_RELEASE) r = controlIo(TheFs, gDrive, KControlIoFileCacheStats, fileCacheStats); - test_KErrNone(r); + test (r == KErrNone); test.Printf(_L("Number of files on closed queue=%d\n"),fileCacheStats.iFilesOnClosedQueue); test(fileCacheStats.iFilesOnClosedQueue == 1); #endif @@ -954,7 +846,7 @@ #if defined(_DEBUG) || defined(_DEBUG_RELEASE) r = controlIo(TheFs, gDrive, KControlIoFileCacheStats, fileCacheStats); - test_KErrNone(r); + test (r == KErrNone); test.Printf(_L("Number of files on closed queue=%d\n"),fileCacheStats.iFilesOnClosedQueue); test(fileCacheStats.iFilesOnClosedQueue == 0); #endif @@ -965,7 +857,7 @@ #if defined(_DEBUG) || defined(_DEBUG_RELEASE) r = controlIo(TheFs, gDrive, KControlIoFileCacheStats, fileCacheStats); - test_KErrNone(r); + test (r == KErrNone); test.Printf(_L("Number of files on closed queue=%d\n"),fileCacheStats.iFilesOnClosedQueue); test(fileCacheStats.iFilesOnClosedQueue == 1); #endif @@ -994,7 +886,7 @@ #if defined(_DEBUG) || defined(_DEBUG_RELEASE) r = controlIo(TheFs, gDrive, KControlIoFileCacheStats, fileCacheStats); - test_KErrNone(r); + test (r == KErrNone); test.Printf(_L("Number of files on closed queue=%d\n"),fileCacheStats.iFilesOnClosedQueue); test(fileCacheStats.iFilesOnClosedQueue == 0); #endif @@ -1004,7 +896,7 @@ // turn lock failure mode back ON (if enabled) simulatelockFailureMode = ETrue; r = controlIo(TheFs, gDrive, KControlIoSimulateLockFailureMode, simulatelockFailureMode); - test_KErrNone(r); + test (r == KErrNone); #endif //************************************************************** @@ -1030,7 +922,7 @@ #if defined(_DEBUG) || defined(_DEBUG_RELEASE) r = controlIo(TheFs, gDrive, KControlIoFileCacheStats, fileCacheStats); - test_KErrNone(r); + test (r == KErrNone); test.Printf(_L("Number of Write-throughs with dirty data=%d\n"),fileCacheStats.iWriteThroughWithDirtyDataCount); TInt writeThroughWithDirtyDataCountOld = fileCacheStats.iWriteThroughWithDirtyDataCount; TInt writeThroughWithDirtyDataCountNew = writeThroughWithDirtyDataCountOld; @@ -1041,7 +933,7 @@ { fileSize = 0; r = f.SetSize(fileSize); - test_KErrNone(r); + test (r == KErrNone); for (pos = 0; pos < KMaxFileSize; ) { r = f.Write(pos, writePtr); @@ -1052,11 +944,11 @@ test.Printf(_L("Flush returned %d"), r); test(0); } - test_KErrNone(r); + test(r == KErrNone); pos+= writePtr.Length(); r = f.Size(fileSize); - test_KErrNone(r); + test (r == KErrNone); if (fileSize != pos) { test.Printf(_L("Iter #%d, write pos %d != size %d"), i, pos, fileSize); @@ -1068,7 +960,7 @@ #if defined(_DEBUG) || defined(_DEBUG_RELEASE) r = controlIo(TheFs, gDrive, KControlIoFileCacheStats, fileCacheStats); - test_KErrNone(r); + test (r == KErrNone); writeThroughWithDirtyDataCountNew = fileCacheStats.iWriteThroughWithDirtyDataCount; if (writeThroughWithDirtyDataCountNew > writeThroughWithDirtyDataCountOld) { @@ -1106,9 +998,9 @@ RFs fs; TInt r = fs.Connect(); - test_KErrNone(r); + test (r==KErrNone); r = fs.SetSessionPath(gSessionPath); - test_KErrNone(r); + test (r==KErrNone); RFile file; @@ -1344,7 +1236,7 @@ RFile file; TInt r = file.Replace(TheFs,_L("WRITETST"),EFileStream | aFileMode); - test_KErrNone(r); + test (r == KErrNone); TTime startTime; TTime endTime; @@ -1708,7 +1600,7 @@ TVolumeInfo volInfo; TInt r = TheFs.Volume(volInfo, gDrive); - test_KErrNone(r); + test (r == KErrNone); TFullName extName; r = TheFs.ExtensionName(extName,gDrive, 0); @@ -1743,7 +1635,7 @@ // turn OFF lock failure mode TBool simulatelockFailureMode = EFalse; r = controlIo(TheFs, gDrive, KControlIoSimulateLockFailureMode, simulatelockFailureMode); - test_KErrNone(r); + test (r == KErrNone); #endif TestFileRead(EFileReadDirectIO); @@ -1763,7 +1655,7 @@ // turn lock failure mode back ON (if enabled) simulatelockFailureMode = ETrue; r = controlIo(TheFs, gDrive, KControlIoSimulateLockFailureMode, simulatelockFailureMode); - test_KErrNone(r); + test (r == KErrNone); #endif } // if (gRunPerformanceTests) @@ -1887,7 +1779,7 @@ { test.Printf(_L("Writing DriveCacheFlags for drive %C = %08X\n"), (TInt) gDriveToTest, gDriveCacheFlags); r = controlIo(TheFs,gDrive, KControlIoFileCacheFlagsWrite, gDriveCacheFlags); - test_KErrNone(r); + test (r == KErrNone); } #endif