diff -r 5af6c74cd793 -r af6ec97d9189 kerneltest/f32test/server/t_filecache.cpp --- a/kerneltest/f32test/server/t_filecache.cpp Wed Jun 23 11:59:44 2010 +0100 +++ b/kerneltest/f32test/server/t_filecache.cpp Wed Jun 23 12:52:28 2010 +0100 @@ -321,11 +321,24 @@ test.Printf(_L("Writing to file...")); - r = f.Write(pos, writePtr); - test_KErrNone(r); + // 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("Setting size of file ...")); + test.Printf(_L("Gsetting size of file ...")); r = f.Size(fileSize); test_KErrNone(r); test_Equal(fileSize,pos); @@ -549,6 +562,9 @@ 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; @@ -1888,6 +1904,10 @@ //TheFs.SetDebugRegister(KCACHE); DoTests(gDrive); //TheFs.SetDebugRegister(0); + + if ((gVolInfo.iDrive.iMediaAtt & KMediaAttFormattable)) + Format(gDrive); + test.End(); // } }