kerneltest/f32test/filesystem/fat/t_scn32dr1.cpp
branchRCL_3
changeset 44 3e88ff8f41d5
parent 43 c1f20ce4abcf
--- a/kerneltest/f32test/filesystem/fat/t_scn32dr1.cpp	Tue Aug 31 16:34:26 2010 +0300
+++ b/kerneltest/f32test/filesystem/fat/t_scn32dr1.cpp	Wed Sep 01 12:34:56 2010 +0100
@@ -11,11 +11,9 @@
 // Contributors:
 //
 // Description:
-// f32test\filesystem\fat\t_scn32dr1.cpp
-// Tests that ScanDrive fixes known errors to a Rugged FAT drive
+// f32test\scndrv\t_scn32dr1.cpp
 //
-
-#define __E32TEST_EXTENSION__
+//
 
 #include <f32file.h>
 #include <e32test.h>
@@ -264,10 +262,10 @@
         {
         pos += BootSector.ReservedSectors() * BootSector.BytesPerSector();
         TInt r=TheRawDisk.Open(TheFs,gSessionPath[0]-'A');
-        test_KErrNone(r);
+        test(r==KErrNone);
         TPtr8 buf(&data[0], 4);
         r=TheRawDisk.Read(pos, buf);
-        test_KErrNone(r);
+        test(r==KErrNone);
         TheRawDisk.Close();
         }
 
@@ -292,7 +290,7 @@
     return val;
     }
 
-LOCAL_C void WriteToFatBuf(TInt aFatIndex,TInt aValue,const TUint8* aFat)
+LOCAL_C void WriteFat(TInt aFatIndex,TInt aValue,const TUint8* aFat)
 //
 // Write a value to both fats starting at aFat
 //
@@ -346,7 +344,7 @@
     {
 
     TInt nRes = ReadBootSector(TheFs, CurrentDrive(), KBootSectorNum<<KDefaultSectorLog2, BootSector);
-    test_KErrNone(nRes);
+    test(nRes == KErrNone);
 
     if(!BootSector.IsValid())
         {
@@ -710,12 +708,12 @@
     if (aStart < 2 && gDiskType != EFat32)
         {
         HBufC8* buf=HBufC8::New(BootSector.RootDirEntries() * KSizeOfFatDirEntry);
-        test_NotNull(buf);
+        test(buf != NULL);
         TPtr8 ptr=buf->Des();
         TInt r=TheRawDisk.Open(TheFs,gSessionPath[0]-'A');
-        test_KErrNone(r);
+        test(r==KErrNone);
         r=TheRawDisk.Read(gRootDirStart, ptr);
-        test_KErrNone(r);
+        test(r==KErrNone);
         TheRawDisk.Close();
         DumpRootDir(buf->Ptr());
         delete(buf);
@@ -726,12 +724,12 @@
         if (GetFatEntry(cluster, aFat) != 0)
             {
             HBufC8* buf=HBufC8::New(gBytesPerCluster);
-            test_NotNull(buf);
+            test(buf!=NULL);
             TPtr8 ptr=buf->Des();
             TInt r=TheRawDisk.Open(TheFs,gSessionPath[0]-'A');
-            test_KErrNone(r);
+            test(r==KErrNone);
             r=TheRawDisk.Read(ClusterToByte(cluster), ptr);
-            test_KErrNone(r);
+            test(r==KErrNone);
             TheRawDisk.Close();
             RDebug::Print(_L("Cluster %d @ 0x%08X:"), cluster, ClusterToByte(cluster));
             DumpDirCluster(ptr.Ptr());
@@ -800,12 +798,12 @@
 //
     {
     HBufC8* buf=HBufC8::New(gBytesPerCluster*2);
-    test_NotNull(buf);
+    test(buf!=NULL);
     TPtr8 ptr=buf->Des();
     TInt r=TheRawDisk.Open(TheFs,gSessionPath[0]-'A');
-    test_KErrNone(r);
+    test(r==KErrNone);
     r=TheRawDisk.Read(ClusterToByte(aCluster), ptr);
-    test_KErrNone(r);
+    test(r==KErrNone);
     TheRawDisk.Close();
     RDebug::Print(_L("Cluster %d @ 0x%08X:"), aCluster, ClusterToByte(aCluster));
     TFatDirEntry* d = (TFatDirEntry*)ptr.Ptr() + aEntry;
@@ -843,7 +841,7 @@
     nRes = FormatFatDrive(TheFs, CurrentDrive(), ETrue);
 #endif
 
-    test_KErrNone(nRes);
+    test(nRes == KErrNone);
 
     }
 
@@ -861,7 +859,7 @@
         num[0] = TText(aDepth % 26 + 'A');
         aDir+=num;
         r=TheFs.MkDir(aDir);
-        test_KErrNone(r);
+        test(r==KErrNone);
         }
     }
 
@@ -874,7 +872,7 @@
     while(aDepth--)
         {
         r=TheFs.RmDir(aDir);
-        test_KErrNone(r);
+        test(r==KErrNone);
         aDir.SetLength(aDir.Length()-2);
         }
     }
@@ -891,7 +889,7 @@
     aDir2=aDir1;
     aDir2+=_L("a\\");
     TInt r=TheFs.MkDir(aDir2);
-    test_KErrNone(r);
+    test(r==KErrNone);
     // create dir with depth of 126 directories - one short of max depth
     CreateDeepDir(aDir1,101);
     // create dir with depth of 90
@@ -905,7 +903,7 @@
     {
     DeleteDeepDir(aDir2,64);
     TInt r=TheFs.RmDir(aDir2);
-    test_KErrNone(r);
+    test(r==KErrNone);
     aDir2.SetLength(aDir2.Length()-2);
     DeleteDeepDir(aDir1,102);
     DeleteDeepDir(aDir1,24);
@@ -939,7 +937,7 @@
         aLong[len+1] = TText(count%26 + 'A');
         count++;
         TInt r=temp.Create(TheFs,aLong,EFileShareAny);
-        test_KErrNone(r);
+        test(r==KErrNone);
         temp.Close();
         }
     }
@@ -958,7 +956,7 @@
         aLong[len+1] = TText(count%26 + 'A');
         count++;
         TInt r=TheFs.Delete(aLong);
-        test_Value(r, r==KErrNone || r==KErrNotFound);
+        test(r==KErrNone || r==KErrNotFound);
         }
     }
 
@@ -980,7 +978,7 @@
         name[2]=(TUint16)(count/26%26+'a');
         name[3]=(TUint16)(count%26+'a');
         r=TheFs.Delete(name);
-        test_Value(r, r==KErrNone || r==KErrNotFound);
+        test(r==KErrNone || r==KErrNotFound);
         ++count;
         }
     }
@@ -1004,7 +1002,7 @@
         name[2]=(TUint16)(count/26%26+'a');
         name[3]=(TUint16)(count%26+'a');
         r=f.Create(TheFs, name, EFileWrite);
-        test_KErrNone(r);
+        test(r==KErrNone);
         f.Close();
         ++count;
         }
@@ -1026,7 +1024,7 @@
         dir[1]=(TUint16)(count/26+'a');
         dir[2]=(TUint16)(count%26+'a');
         r=TheFs.MkDir(dir);
-        test_KErrNone(r);
+        test(r==KErrNone);
         entriesSoFar+=2;
         ++count;
         }
@@ -1046,7 +1044,7 @@
         dir[1]=TUint16(count/26+'a');
         dir[2]=TUint16(count%26+'a');
         r=TheFs.RmDir(dir);
-        test_KErrNone(r);
+        test(r==KErrNone);
         entriesSoFar-=2;
         ++count;
         }
@@ -1059,27 +1057,27 @@
     {
     test.Next(_L("Delete Directory Structure"));
     TInt r=TheFs.RmDir(_L("\\scndrv\\dir2\\almostfull\\"));
-    test_KErrNone(r);
+    test(r==KErrNone);
     TInt entriesNeeded=(gEntriesPerCluster-2) / 2;  //7*2entries + . + .. = full sector
     for (TInt i = 0; i < entriesNeeded; i++)
         {
         TFileName file=_L("\\scndrv\\dir2\\full\\__a");
         file.AppendNum(i);
         r=TheFs.Delete(file);
-        test_Value(r, r==KErrNone||r==KErrNotFound);
+        test(r==KErrNone||r==KErrNotFound);
         }
     r=TheFs.RmDir(_L("\\scndrv\\dir2\\full\\"));
-    test_KErrNone(r);
+    test(r==KErrNone);
     r=TheFs.RmDir(_L("\\scndrv\\dir2\\"));
-    test_KErrNone(r);
+    test(r==KErrNone);
     TFileName veryLongName=(_L("\\scndrv\\dir1\\"));
     MakeVeryLongName(veryLongName);
     r=TheFs.Delete(veryLongName);
-    test_KErrNone(r);
+    test(r==KErrNone);
     r=TheFs.RmDir(_L("\\scndrv\\dir1\\"));
-    test_KErrNone(r);
+    test(r==KErrNone);
     r=TheFs.RmDir(_L("\\scndrv\\"));
-    test_KErrNone(r);
+    test(r==KErrNone);
     }
 
 LOCAL_C void CreateDirectoryStructure()
@@ -1090,34 +1088,34 @@
     test.Next(_L("Create Directory Structure"));
     // cluster 3 (root dir is cluster 2)
     TInt r=TheFs.MkDir(_L("\\scndrv\\"));
-    test_KErrNone(r);
+    test(r==KErrNone);
     // cluster 4
     r=TheFs.MkDir(_L("\\scndrv\\dir1\\"));
-    test_KErrNone(r);
+    test(r==KErrNone);
     TFileName veryLongName=(_L("\\scndrv\\dir1\\"));
     MakeVeryLongName(veryLongName);
     RFile f;
     // cluster 5
     r=f.Create(TheFs,veryLongName,EFileShareAny);
-    test_KErrNone(r);
+    test(r==KErrNone);
     r=f.SetSize(512);
-    test_KErrNone(r);
+    test(r==KErrNone);
     f.Close();
     // cluster 6
     r=TheFs.MkDir(_L("\\scndrv\\dir2\\"));
-    test_KErrNone(r);
+    test(r==KErrNone);
     // cluster 7
     r=TheFs.MkDir(_L("\\scndrv\\dir2\\full\\"));
-    test_KErrNone(r);
+    test(r==KErrNone);
     // cluster 8
     r=TheFs.MkDir(_L("\\scndrv\\dir2\\somedirwith3entries\\"));
-    test_KErrNone(r);
+    test(r==KErrNone);
     // cluster 9
     r=TheFs.MkDir(_L("\\scndrv\\dir2\\somedir2with3entries\\"));
-    test_KErrNone(r);
+    test(r==KErrNone);
     // cluster 10
     r=TheFs.MkDir(_L("\\scndrv\\dir2\\almostfull\\"));
-    test_KErrNone(r);
+    test(r==KErrNone);
     // cluster 11-17
     TInt entriesNeeded=(gEntriesPerCluster-2) / 2;  //7*2entries + . + .. = full sector
     for (TInt i = 0; i < entriesNeeded; i++)
@@ -1126,11 +1124,11 @@
         file.AppendNum(i);
         LastInFull = file;
         r=f.Create(TheFs,file,EFileShareAny);
-        test_KErrNone(r);
+        test(r==KErrNone);
         if (i < 7)
             {
             r=f.SetSize(512);
-            test_KErrNone(r);
+            test(r==KErrNone);
             }
         f.Close();
         }
@@ -1146,14 +1144,14 @@
     file1.AppendNum(1);
     file2.AppendNum(2);
     r=f.Create(TheFs,file1,EFileShareAny);
-    test_KErrNone(r);
+    test(r==KErrNone);
     r=f.SetSize(512);
-    test_KErrNone(r);
+    test(r==KErrNone);
     f.Close();
     r=f.Create(TheFs,file2,EFileShareAny);
-    test_KErrNone(r);
+    test(r==KErrNone);
     r=f.SetSize(512);
-    test_KErrNone(r);
+    test(r==KErrNone);
     f.Close();
     }
 
@@ -1179,16 +1177,16 @@
         // contains aOffset
         ExtBufLen = 2 * gBytesPerCluster;
         ExtBufPtr = HBufC8::New(ExtBufLen);
-        test_NotNull(ExtBufPtr);
+        test(ExtBufPtr != NULL);
         // read the clusters in
         ExtBufAdd = aOffset - aOffset % gBytesPerCluster;
         TInt clust = (ExtBufAdd - (gDataStartBytes - gRootDirStart)) /gBytesPerCluster + 2;
         RDebug::Print(_L("Extension buffer for cluster %d allocated"), clust);
         TInt r=TheRawDisk.Open(TheFs,gSessionPath[0]-'A');
-        test_KErrNone(r);
+        test(r==KErrNone);
         TPtr8 des(ExtBufPtr->Des());
         r=TheRawDisk.Read(gRootDirStart + ExtBufAdd, des);
-        test_KErrNone(r);
+        test(r==KErrNone);
         TheRawDisk.Close();
         }
     // convert to offset in the extension buffer
@@ -1223,10 +1221,10 @@
 // reads directory section of disk into buffer
 //
     {
-    test_Value(aCluster, aCluster != 1);
+    test(aCluster != 1);
 
     TInt r=TheRawDisk.Open(TheFs,gSessionPath[0]-'A');
-    test_KErrNone(r);
+    test(r==KErrNone);
 
     if (aCluster == -1) // all clusters ?
         {
@@ -1247,7 +1245,7 @@
         r=TheRawDisk.Read(gRootDirStart + pos, dirPtr);
         }
 
-    test_KErrNone(r);
+    test(r==KErrNone);
     TheRawDisk.Close();
     }
 
@@ -1257,21 +1255,21 @@
 //
     {
     TInt r=TheRawDisk.Open(TheFs,gSessionPath[0]-'A');
-    test_KErrNone(r);
+    test(r==KErrNone);
     r=TheRawDisk.Read(gFatStartBytes, aFatBuf);
-    test_KErrNone(r);
+    test(r==KErrNone);
     TheRawDisk.Close();
     }
 
-LOCAL_C void WriteDirEntryToDisk(TDes8& aDirBuf, TInt aCluster = -1)
+LOCAL_C void WriteDirDisk(TDes8& aDirBuf, TInt aCluster = -1)
 //
-// writes dir entry buffer to disk
+// writes dir buffer to disk
 //
     {
-	test_Value(aCluster, aCluster != 1);
+    test(aCluster != 1);
 
     TInt r=TheRawDisk.Open(TheFs,gSessionPath[0]-'A');
-    test_KErrNone(r);
+    test(r==KErrNone);
 
     if (aCluster == -1)
         {
@@ -1292,29 +1290,29 @@
         r=TheRawDisk.Write(gRootDirStart + pos, dirPtr);
         }
 
-    test_KErrNone(r);
+    test(r==KErrNone);
     if (ExtBufPtr)
         {
         TPtr8 des(ExtBufPtr->Des());
         r=TheRawDisk.Write(gRootDirStart + ExtBufAdd, des);
-        test_KErrNone(r);
+        test(r==KErrNone);
         }
     TheRawDisk.Close();
     }
 
-LOCAL_C void WriteFatToDisk(TDes8& aFatBuf, TInt aStart=0)
+LOCAL_C void WriteFatDisk(TDes8& aFatBuf, TInt aStart=0)
 //
 // writes fat buffer to disk
 //
     {
     TInt r=TheRawDisk.Open(TheFs,gSessionPath[0]-'A');
-    test_KErrNone(r);
+    test(r==KErrNone);
     TInt fatCount=BootSector.NumberOfFats() - aStart;
     TInt pos = gFatStartBytes + aStart * gFatSizeSectors*BootSector.BytesPerSector();
     while(fatCount--)
         {
         r=TheRawDisk.Write(pos, aFatBuf);
-        test_KErrNone(r);
+        test(r==KErrNone);
         pos += gFatSizeSectors*BootSector.BytesPerSector();
         }
     TheRawDisk.Close();
@@ -1371,15 +1369,15 @@
         gFatTestEntries = KMaxFatSize;
     gFatTestSize = PosInBytes(gFatTestEntries);
     FatBufPtr=HBufC8::New(gFatTestSize);
-    test_NotNull(FatBufPtr);
+    test(FatBufPtr!=NULL);
     DirBufPtr=HBufC8::New(DirBufferSize());
-    test_NotNull(DirBufPtr);
+    test(DirBufPtr!=NULL);
 
     // Buffers for reading from disk
     FatDiskPtr=HBufC8::New(gFatTestSize);
-    test_NotNull(FatDiskPtr);
+    test(FatDiskPtr!=NULL);
     DirDiskPtr=HBufC8::New(DirBufferSize());
-    test_NotNull(DirDiskPtr);
+    test(DirDiskPtr!=NULL);
     }
 
 LOCAL_C TBool IsSameAsDrive(const TDes8& aFatBuf,const TDes8& aDirBuf)
@@ -1466,12 +1464,12 @@
     else if (ExtBufPtr)
         {
         HBufC8* extPtr = HBufC8::New(ExtBufLen);
-        test_NotNull(extPtr);
+        test(extPtr != NULL);
         TInt r=TheRawDisk.Open(TheFs,gSessionPath[0]-'A');
-        test_KErrNone(r);
+        test(r==KErrNone);
         TPtr8 des(extPtr->Des());
         r=TheRawDisk.Read(ExtBufAdd+gRootDirStart, des);
-        test_KErrNone(r);
+        test(r==KErrNone);
         TheRawDisk.Close();
         TInt i = FindUnMatch(ExtBufPtr->Ptr(), extPtr->Ptr(), ExtBufLen);
         if (i >= 0)
@@ -1520,7 +1518,7 @@
     if(aAddEOfDir)
         WriteEndOfDir(aTrg.iBytePos+aTrg.iLength*KSizeOfFatDirEntry);
     TPtr8 dirBuf=DirBufPtr->Des();
-    WriteDirEntryToDisk(dirBuf);
+    WriteDirDisk(dirBuf);
     }
 
 LOCAL_C TBool TestPartialEntry(TEntryInfo aEntry)
@@ -1530,7 +1528,7 @@
     {
     test.Next(_L("TestPartialEntry"));
     TInt r=TheFs.ScanDrive(gSessionPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
     WriteDelete(aEntry.iBytePos,aEntry.iLength);
 
     TPtr8 fatBuf=FatBufPtr->Des();
@@ -1553,7 +1551,7 @@
     if(aAddEOfDir)
         WriteEndOfDir(aTrg.iBytePos+aTrg.iLength*KSizeOfFatDirEntry);
     TPtr8 dirBuf=DirBufPtr->Des();
-    WriteDirEntryToDisk(dirBuf);
+    WriteDirDisk(dirBuf);
     }
 
 LOCAL_C TBool TestMatchingEntry(TEntryInfo aToDelete)
@@ -1564,7 +1562,7 @@
     test.Next(_L("TestMatchingEntries"));
     WriteDelete(aToDelete.iBytePos,aToDelete.iLength);
     TInt r=TheFs.ScanDrive(gSessionPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
 
     TPtr8 fatBuf=FatBufPtr->Des();
     TPtr8 dirBuf=DirBufPtr->Des();
@@ -1588,8 +1586,8 @@
     CDir* dirs;
     // check no entries in the root directory
     TInt r=TheFs.GetDir(KRoot,KEntryAttMaskSupported,ESortNone,dirs);
-    test_KErrNone(r);
-    test_Equal(0,dirs->Count());
+    test(r==KErrNone);
+    test(dirs->Count()==0);
     delete(dirs);
     dirs=NULL;
 
@@ -1607,13 +1605,13 @@
 
     RFile file;
     r=file.Replace(TheFs,TestFileName,EFileShareExclusive);
-    test_KErrNone(r);
+    test(r==KErrNone);
     file.Close();
 
     // get short name
     TFileName shortName;
     r=TheFs.GetShortName(TestFileName,shortName);
-    test_KErrNone(r);
+    test(r==KErrNone);
     test(shortName==KOrigShortName);
 
     // must be first entry in root, modify to read like
@@ -1622,26 +1620,26 @@
     TInt bytePos=ClusterEntryToBytes(0,1);
     RRawDisk raw;
     r=raw.Open(TheFs,gSessionPath[0]-'A');
-    test_KErrNone(r);
+    test(r==KErrNone);
     TBuf8<1> buf(1);
 
     //-- change 2nd character in the short name (Fat DOS entry)
     buf[0]=(TUint8)'\xC4';
     r=raw.Write(gRootDirStart+bytePos+1,buf);
-    test_KErrNone(r);
+    test(r==KErrNone);
 
     //-- fix the fiddled short name checksum in the corresponding VFat entry
     bytePos=ClusterEntryToBytes(0,0);
     buf[0]=(TUint8)0x2f;
     r=raw.Write(gRootDirStart+bytePos+13,buf);
-    test_KErrNone(r);
+    test(r==KErrNone);
 
     // retrieve short name from media.
     // Note: do not use RFs::GetShortName() as its behaviours are code page dependent.
     bytePos=ClusterEntryToBytes(0,1);
     TBuf8<11> shortNameBuf8;
     r=raw.Read(gRootDirStart+bytePos,shortNameBuf8);
-    test_KErrNone(r);
+    test(r==KErrNone);
     shortNameBuf8 = DosNameFromStdFormat(shortNameBuf8);
     shortName.Copy(shortNameBuf8);
     raw.Close();
@@ -1652,15 +1650,15 @@
     //TheFs.SetDebugRegister(KFSYS);
     r=TheFs.ScanDrive(gSessionPath);
     TheFs.SetDebugRegister(0);
-    test_KErrNone(r);
+    test(r==KErrNone);
     DumpData(NULL, 0, 20);
 
     // retrieve short name from media.
     r=raw.Open(TheFs,gSessionPath[0]-'A');
-    test_KErrNone(r);
+    test(r==KErrNone);
     bytePos=ClusterEntryToBytes(0,1);
     r=raw.Read(gRootDirStart+bytePos,shortNameBuf8);
-    test_KErrNone(r);
+    test(r==KErrNone);
     shortNameBuf8 = DosNameFromStdFormat(shortNameBuf8);
     shortName.Copy(shortNameBuf8);
     raw.Close();
@@ -1669,7 +1667,7 @@
 
     // delete file
     r=TheFs.Delete(TestFileName);
-    test_KErrNone(r);
+    test(r==KErrNone);
     }
 
 LOCAL_C void TestMountAndScan()
@@ -1682,47 +1680,46 @@
 
     test.Next(_L("TestMountAndScan"));
     HBufC8* newFat=HBufC8::New(gFatTestSize);
-    test_NotNull(newFat);
+    test(newFat!=NULL);
     TPtr8 fat=newFat->Des();
     TPtr8 origFat=FatBufPtr->Des();
     TPtr8 origDir=DirBufPtr->Des();
 
     // set cluster of \scndrv\dir1\ to a hanging cluster
     ReadFatDisk(fat);
-    WriteToFatBuf(gClusterDir1ext,35,fat.Ptr());
-    WriteToFatBuf(35,36,fat.Ptr());
-    WriteFatToDisk(fat);
+    WriteFat(gClusterDir1ext,35,fat.Ptr());
+    WriteFat(35,36,fat.Ptr());
+    WriteFatDisk(fat);
     // set the default path to something other than the current drive
     TFileName fsName;
     TInt r=TheFs.FileSystemName(fsName,gSessionPath[0]-'A');
-    test_KErrNone(r);
+    test(r==KErrNone);
     TFileName origDefPath, newDefPath;
     r=TheFs.SessionPath(origDefPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
     newDefPath=origDefPath;
     newDefPath[0]=(TText)'z';
     r=TheFs.SetSessionPath(newDefPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
     r = TheFs.ExtensionName(extName,gSessionPath[0]-'A',0);
     if (r == KErrNone)
         {
         primaryExtensionExists = ETrue;
         }
     r=TheFs.DismountFileSystem(fsName,gSessionPath[0]-'A');
-    test_KErrNone(r);
+    test(r==KErrNone);
     // mount file system and check scandrive corrects error
     TBool isMount;
     if (primaryExtensionExists)
         r=TheFs.MountFileSystemAndScan(fsName,extName,gSessionPath[0]-'A',isMount);
     else
         r=TheFs.MountFileSystemAndScan(fsName,gSessionPath[0]-'A',isMount);
-    test(isMount);
-    test_KErrNone(r);
+    test(isMount && r==KErrNone);
     TBool res=IsSameAsDrive(origFat,origDir);
     test(res);
 
     r=TheFs.SetSessionPath(origDefPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
     delete newFat;
     }
 
@@ -1736,14 +1733,14 @@
     TBool primaryExtensionExists = EFalse;
     TFileName fsName;
     TInt r=TheFs.FileSystemName(fsName,gSessionPath[0]-'A');
-    test_KErrNone(r);
+    test(r==KErrNone);
     r = TheFs.ExtensionName(extName,gSessionPath[0]-'A',0);
     if (r == KErrNone)
         {
         primaryExtensionExists = ETrue;
         }
     r=TheFs.DismountFileSystem(fsName,gSessionPath[0]-'A');
-    test_KErrNone(r);
+    test(r==KErrNone);
 
     // RFs::MountFileSystemAndScan twice consecutively
     // first time
@@ -1752,37 +1749,15 @@
         r=TheFs.MountFileSystemAndScan(fsName,extName,gSessionPath[0]-'A',isMount);
     else
         r=TheFs.MountFileSystemAndScan(fsName,gSessionPath[0]-'A',isMount);
-    test(isMount);
-    test_KErrNone(r);
+    test(isMount && r==KErrNone);
     // and a second time
     if (primaryExtensionExists)
         r=TheFs.MountFileSystemAndScan(fsName,extName,gSessionPath[0]-'A',isMount);
     else
         r=TheFs.MountFileSystemAndScan(fsName,gSessionPath[0]-'A',isMount);
-    test(!isMount);
-    test_Equal(KErrAccessDenied,r);
+    test(!isMount && r==KErrAccessDenied);
     }
 
-
-static void CreateContiguousClusterChain(TUint32 aStartIndex, TUint32 aEndIndex, const TUint8* aFatPtr, TBool aMarkEoc)
-/*
- * Creates a contiguous cluster chain in the FAT buffer.
- * 
- * @param	aStartIndex	The first cluster index of the chain
- * 			aEndIndex	The last cluster index of the chain 
- * 			aFatPtr		FAT table buffer pointer
- * 			aMarkEoc	If ETrue, aEndIndex will be marked as EOC, else it will be a hanging cluster chain
- */
-	{
-	// Write cluster chain
-    for(TUint i=aStartIndex; i<aEndIndex; ++i)
-        WriteToFatBuf(i, i+1, aFatPtr);
-    // Mark EOC if needed
-    if (aMarkEoc)
-    	WriteToFatBuf(aEndIndex, gEndOfChain, aFatPtr);
-	}
-
-
 LOCAL_C void DoHangingClusters()
 //
 // Tests that scandrive removes hanging clusters
@@ -1790,42 +1765,42 @@
     {
     test.Next(_L("Check Hanging clusters"));
     HBufC8* newFat=HBufC8::New(gFatTestSize);
-    test_NotNull(newFat);
+    test(newFat!=NULL);
     TPtr8 fat=newFat->Des();
     TPtr8 origFat=FatBufPtr->Des();
     TPtr8 origDir=DirBufPtr->Des();
 
-    // Set cluster of \scndrv\dir1\ to hanging cluster chain
+    // set cluster of \scndrv\dir1\ to a hanging cluster
     test.Start(_L("Test hanging cluster in \\scndrv\\dir1\\"));
     ReadFatDisk(fat);
-    WriteToFatBuf(gClusterDir1ext,35,fat.Ptr());
-    WriteToFatBuf(35,36,fat.Ptr());
-    WriteFatToDisk(fat); // gClusterDir1ext->35->36
+    WriteFat(gClusterDir1ext,35,fat.Ptr());
+    WriteFat(35,36,fat.Ptr());
+    WriteFatDisk(fat);
     TInt r=TheFs.ScanDrive(gSessionPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
     TBool res=IsSameAsDrive(origFat,origDir);
     test(res);
 
-    // Set cluster chain of first entry of \scndrv\dir1\ to
+    // set  cluster chain of first entry of \scndrv\dir1\ to
     // larger size than file size
     test.Next(_L("Test hanging cluster in first entry"));
     ReadFatDisk(fat);
-    WriteToFatBuf(gClusterDir1ext,39,fat.Ptr());
-    WriteToFatBuf(39,500,fat.Ptr());
-    CreateContiguousClusterChain(500, 505, fat.Ptr(), ETrue);
-    WriteFatToDisk(fat); // gClusterDir1ext->39->500->501->502->503->504->505->EOC
+    WriteFat(gClusterDir1ext,39,fat.Ptr());
+    WriteFat(39,500,fat.Ptr());
+    WriteFat(500,gEndOfChain,fat.Ptr());
+    WriteFatDisk(fat);
     r=TheFs.ScanDrive(gSessionPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
     res=IsSameAsDrive(origFat,origDir);
     test(res);
 
-    // Set cluster of \scndrv\ to a hanging cluster
+    // set cluster of \scndrv\ to a hanging cluster
     test.Next(_L("Test hanging cluster of \\scndrv\\"));
     ReadFatDisk(fat);
-    WriteToFatBuf(gClusterScnDrv,511,fat.Ptr());
-    WriteFatToDisk(fat); // gClusterScnDrv->511
+    WriteFat(gClusterScnDrv,511,fat.Ptr());
+    WriteFatDisk(fat);
     r=TheFs.ScanDrive(gSessionPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
     res=IsSameAsDrive(origFat,origDir);
     test(res);
 
@@ -1840,7 +1815,7 @@
     {
     test.Next(_L("Check lost clusters"));
     HBufC8* newFat=HBufC8::New(gFatTestSize);
-    test_NotNull(newFat);
+    test(newFat!=NULL);
     TPtr8 fat=newFat->Des();
     TPtr8 origFat=FatBufPtr->Des();
     TPtr8 origDir=DirBufPtr->Des();
@@ -1850,10 +1825,12 @@
     // write cluster chain
     test.Start(_L("Test removal of lost cluster chain"));
     ReadFatDisk(fat);
-    CreateContiguousClusterChain(25, 35, fat.Ptr(), ETrue);
-    WriteFatToDisk(fat); // 25->26->27->28->29->30->31->32->33->34->35->EOC
+    for(TInt i=25;i<35;++i)
+        WriteFat(i,i+1,fat.Ptr());
+    WriteFat(35,gEndOfChain,fat.Ptr());
+    WriteFatDisk(fat);
     TInt r=TheFs.ScanDrive(gSessionPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
     TBool res=IsSameAsDrive(origFat,origDir);
     test(res);
 
@@ -1864,17 +1841,17 @@
         TInt off = j*BootSector.BytesPerSector()+j*7%512;
         fat[off]=1;
         }
-    WriteFatToDisk(fat);
+    WriteFatDisk(fat);
     r=TheFs.ScanDrive(gSessionPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
     res=IsSameAsDrive(origFat,origDir);
     test(res);
 
     // write semi-random changes to second fat
     test.Next(_L("Test semi-random changes to second fat"));
-    WriteFatToDisk(fat, 1);
+    WriteFatDisk(fat, 1);
     r=TheFs.ScanDrive(gSessionPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
     res=IsSameAsDrive(origFat,origDir);
     test(res);
 
@@ -1882,74 +1859,6 @@
     test.End();
     }
 
-
-static void DoHangingAndLostClusters()
-/*
- * Tests that ScanDrive fixes MULTIPLE hanging clusters and removes lost clusters.
- * It creates multiple hanging and lost cluster chains in the FAT table and
- * expects ScanDrive to fix them all.
- */
-	{
-	test.Start(_L("Check multiple hanging and lost cluster chains"));
-	HBufC8* newFat = HBufC8::New(gFatTestSize);
-	test_NotNull(newFat);
-	TPtr8 fat = newFat->Des();
-	TPtr8 origFat = FatBufPtr->Des();
-	TPtr8 origDir = DirBufPtr->Des();
-	ReadFatDisk(origFat);
-	ReadDirDisk(origDir);
-
-	test.Printf(_L("Create multiple hanging cluster chains\n"));
-	ReadFatDisk(fat);
-	// Set hanging cluster for the file in \scndrv\dir1
-	// gClusterDir1ext+1->25->26->27->28->29->30->31->32->33->34->35
-	WriteToFatBuf(gClusterDir1ext+1, 25, fat.Ptr());
-	CreateContiguousClusterChain(25, 35, fat.Ptr(), EFalse);
-	// Set hanging cluster for the first file in \scndrv\dir2
-	// gClusterDir2_AFull+1->249->250->53->54->55->EOC
-	WriteToFatBuf(gClusterDir2_AFull+1, 249, fat.Ptr());
-	WriteToFatBuf(249, 250, fat.Ptr());
-	WriteToFatBuf(250, 53, fat.Ptr());
-	CreateContiguousClusterChain(53, 55, fat.Ptr(), ETrue);
-	// Set hanging cluster for the fourth file in \scndrv\dir2
-	// gClusterDir2_AFull+4->59->60->61->62->63
-	WriteToFatBuf(gClusterDir2_AFull+4, 59, fat.Ptr());
-	CreateContiguousClusterChain(59, 63, fat.Ptr(), EFalse);
-	// Set hanging cluster for the second file in \scndrv\dir2
-	// gClusterDir2_AFull+2->67->68->69->EOC
-	WriteToFatBuf(gClusterDir2_AFull+2, 67, fat.Ptr());
-	CreateContiguousClusterChain(67, 69, fat.Ptr(), ETrue);
-
-	test.Printf(_L("Create multiple lost clusters\n"));
-	// Create 1st lost cluster chain (clusters 36-45)
-	CreateContiguousClusterChain(36, 45, fat.Ptr(), ETrue);
-	// Create 2nd lost cluster chain (clusters 246-248,56-58)
-	CreateContiguousClusterChain(246, 248, fat.Ptr(), EFalse);
-	WriteToFatBuf(248, 56, fat.Ptr());
-	CreateContiguousClusterChain(56, 58, fat.Ptr(), ETrue);
-	// Create 3rd lost cluster chain (clusters 251-253,564-566, with hanging end)
-	CreateContiguousClusterChain(251, 253, fat.Ptr(), EFalse);
-	WriteToFatBuf(253, 564, fat.Ptr());
-	CreateContiguousClusterChain(564, 566, fat.Ptr(), EFalse);
-	
-	// Flush all FAT changes to the media
-	WriteFatToDisk(fat);
-
-	test.Next(_L("Test ScanDrive fixes multiple hanging and lost cluster chains"));
-	TInt r = TheFs.CheckDisk(gSessionPath);	// CheckDisk should detect an error
-	test_Value(r, r != KErrNone);
-	r = TheFs.ScanDrive(gSessionPath);		// ScanDrive should find the errors and fix them
-	test_KErrNone(r);
-	r = TheFs.CheckDisk(gSessionPath);
-	test_KErrNone(r);
-	TBool res = IsSameAsDrive(origFat, origDir);
-	test(res);
-
-	delete newFat;
-	test.End();
-	}
-
-
 LOCAL_C void DoPartEntries()
 //
 // Tests that scandrive detects/corrects partial entries
@@ -1963,9 +1872,9 @@
     TPtr8 dirBuf=DirBufPtr->Des();
 
     TInt r=TheFs.RmDir(_L("\\scndrv\\dir2\\somedirwith3entries\\"));
-    test_Value(r, r==KErrNone || r==KErrNotFound || r==KErrPathNotFound);
+    test(r==KErrNone || r==KErrNotFound || KErrPathNotFound);
     r=TheFs.RmDir(_L("\\scndrv\\dir2\\somedir2with3entries\\"));
-    test_Value(r, r==KErrNone || r==KErrNotFound || r==KErrPathNotFound);
+    test(r==KErrNone || r==KErrNotFound || KErrPathNotFound);
 
     if (BootSector.RootDirEntries() != 0)
         {
@@ -1974,7 +1883,7 @@
         test.Next(_L("Partial entry at end of rootdir"));
         FillUpRootDir(2);
         r=temp.Create(TheFs,_L("\\temp"),EFileShareAny);
-        test_KErrNone(r);
+        test(r==KErrNone);
         temp.Close();
         ReadDirDisk(dirBuf);
         ReadFatDisk(fatBuf);
@@ -1994,7 +1903,7 @@
     CreatePartialEntry(partial2,3,EFalse);
     // entry has been allocated a cluster which scandrive should delete along with partial entry
     if (last > 0)
-        WriteToFatBuf(last,0,fatBuf.Ptr());
+        WriteFat(last,0,fatBuf.Ptr());
     res=TestPartialEntry(partial2);
     test(res);
 
@@ -2002,26 +1911,26 @@
     test.Next(_L("Test directory reclaim"));
     last = GetStartCluster(gClusterDir2_Full,gEntriesPerCluster-2);
     WriteEndOfDir(ClusterEntryToBytes(gClusterDir2_Full,gEntriesPerCluster-2));
-    WriteDirEntryToDisk(dirBuf);
+    WriteDirDisk(dirBuf);
     TInt entry = GetFatEntry(gClusterDir2_Full, fatBuf.Ptr());
-    WriteToFatBuf(gClusterDir2_Full,gEndOfChain,fatBuf.Ptr());
+    WriteFat(gClusterDir2_Full,gEndOfChain,fatBuf.Ptr());
     while (entry && (entry & gEndOfChain) != gEndOfChain)
         {
         TInt next = GetFatEntry(entry, fatBuf.Ptr());
-        WriteToFatBuf(entry,0,fatBuf.Ptr());
+        WriteFat(entry,0,fatBuf.Ptr());
         entry = next;
         }
     if (last > 0)
-        WriteToFatBuf(last,0,fatBuf.Ptr());
+        WriteFat(last,0,fatBuf.Ptr());
     r=TheFs.ScanDrive(gSessionPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
     res=IsSameAsDrive(fatBuf,dirBuf);
     test(res);
 
     // use last entry of first cluster in \scndrv\dir2\full\ 
     test.Next(_L("Partial entry at end of subdir"));
     r=temp.Create(TheFs,_L("\\scndrv\\dir2\\full\\temp"),EFileShareAny);
-    test_KErrNone(r);
+    test(r==KErrNone);
     temp.Close();
     ReadDirDisk(dirBuf);
     ReadFatDisk(fatBuf);
@@ -2034,12 +1943,12 @@
     test.Next(_L("Partial entry preceeding end-of-dir marker"));
     last = GetStartCluster(gClusterDir2_AFull,14);
     if (last > 0)
-        WriteToFatBuf(last,0,fatBuf.Ptr());
+        WriteFat(last,0,fatBuf.Ptr());
     last = GetStartCluster(gClusterDir2_AFull,8);
     if (last > 0)
-        WriteToFatBuf(last,0,fatBuf.Ptr());
+        WriteFat(last,0,fatBuf.Ptr());
     WriteEndOfDir(ClusterEntryToBytes(gClusterDir2_AFull,14));
-    WriteDirEntryToDisk(dirBuf);
+    WriteDirDisk(dirBuf);
     TEntryInfo partial4(ClusterEntryToBytes(gClusterDir2_AFull,8),6);
     CreatePartialEntry(partial4,4,EFalse);
     res=TestPartialEntry(partial4);
@@ -2055,14 +1964,14 @@
 	// create entry in \scndrv\dir2\almostfull\ 
 //	test.Next(_L("Partial entry with invalid dos name"));
 //	r=temp.Create(TheFs,_L("\\scndrv\\dir2\\almostfull\\Dodgy file name"),EFileShareAny);
-//	test_KErrNone(r);
+//	test(r==KErrNone);
 //	temp.Close();
 //	ReadDirDisk(dirBuf);
 //	TInt dosStart=ClusterEntryToBytes(gClusterDir2_AFull,4);
 //	dirBuf[dosStart+4]=0x1;
 //	WriteDirDisk(dirBuf);
 //	r=TheFs.ScanDrive(gSessionPath);
-//	test_KErrNone(r);
+//	test(r==KErrNone);
 //	WriteDelete(dosStart-2*32,3);
 //	res=IsSameAsDrive(fatBuf,dirBuf);
 //	test(res);
@@ -2074,26 +1983,26 @@
         last = GetStartCluster(gClusterDir2_Full,gEntriesPerCluster-1);
         WriteEndOfDir(ClusterEntryToBytes(gClusterDir2_Full,gEntriesPerCluster-2));
         WriteEndOfDir(ClusterEntryToBytes(gClusterDir2_Full,gEntriesPerCluster-1));
-        WriteDirEntryToDisk(dirBuf);
+        WriteDirDisk(dirBuf);
         TFileName longFile=_L("\\scndrv\\dir2\\full\\");
         MakeVeryLongName(longFile);
         r=temp.Create(TheFs,longFile,EFileShareAny);
-        test_KErrNone(r);
+        test(r==KErrNone);
         temp.Close();
         ReadDirDisk(dirBuf);
-        WriteToFatBuf(gClusterDir2_Full,gClusterDir2_SD3E,fatBuf.Ptr());
-        WriteToFatBuf(gClusterDir2_SD3E,gClusterDir2_SD23E,fatBuf.Ptr());
-        WriteToFatBuf(gClusterDir2_SD23E,gEndOfChain,fatBuf.Ptr());
+        WriteFat(gClusterDir2_Full,gClusterDir2_SD3E,fatBuf.Ptr());
+        WriteFat(gClusterDir2_SD3E,gClusterDir2_SD23E,fatBuf.Ptr());
+        WriteFat(gClusterDir2_SD23E,gEndOfChain,fatBuf.Ptr());
         if (last > 0)
-            WriteToFatBuf(last,0,fatBuf.Ptr());
+            WriteFat(last,0,fatBuf.Ptr());
         TEntryInfo partial5(ClusterEntryToBytes(gClusterDir2_Full,gEntriesPerCluster-2),19);
         CreatePartialEntry(partial5,7,EFalse);
         res=TestPartialEntry(partial5);
         test(res);
         r=TheFs.Delete(longFile);
-        test_Value(r, r==KErrNone || r==KErrNotFound);
+        test(r==KErrNone || r==KErrNotFound);
         r=TheFs.Delete(_L("\\temp"));
-        test_Value(r, r==KErrNone || r==KErrNotFound);
+        test(r==KErrNone || r==KErrNotFound);
         }
     ReadDirDisk(dirBuf);
 
@@ -2143,16 +2052,16 @@
     test.Next(_L("matching entries in same subdir"));
     // delete entries to allow contiguous clusters in \scndrv\dir2\full directory
     TInt r=TheFs.RmDir(_L("\\scndrv\\dir2\\somedirwith3entries\\"));
-    test_KErrNone(r);
+    test(r==KErrNone);
     r=TheFs.RmDir(_L("\\scndrv\\dir2\\somedir2with3entries\\"));
-    test_KErrNone(r);
+    test(r==KErrNone);
     // ensure directory is expanded
     RFile temp;
     r=temp.Create(TheFs,_L("\\scndrv\\dir2\\full\\temp"),EFileShareAny);
-    test_KErrNone(r);
+    test(r==KErrNone);
     temp.Close();
     r=TheFs.Delete(_L("\\scndrv\\dir2\\full\\temp"));
-    test_KErrNone(r);
+    test(r==KErrNone);
     ReadDirDisk(dirBuf);
     ReadFatDisk(fatBuf);
     TEntryInfo from4(ClusterEntryToBytes(gClusterDir2_Full,4),2);
@@ -2165,14 +2074,14 @@
     test.Next(_L("matching entries in diff dirs + new cluster"));
     // delete last entry in directory
     r=TheFs.Delete(LastInFull);
-    test_KErrNone(r);
+    test(r==KErrNone);
     TFileName veryLongName=_L("\\scndrv\\dir2\\full\\");
     MakeVeryLongName(veryLongName);
     r=temp.Create(TheFs,veryLongName,EFileShareAny);
-    test_KErrNone(r);
+    test(r==KErrNone);
     temp.Close();
     r=TheFs.Delete(veryLongName);
-    test_KErrNone(r);
+    test(r==KErrNone);
     ReadDirDisk(dirBuf);
     ReadFatDisk(fatBuf);
     TEntryInfo from5(ClusterEntryToBytes(gClusterDir1,2),19);
@@ -2202,7 +2111,7 @@
     ReadFatDisk(fatBuf);
     // run scandisk and compare
     TInt r=TheFs.ScanDrive(gSessionPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
     TBool res=IsSameAsDrive(fatBuf,dirBuf);
     test(res);
     // Create a entry with matching start cluster and check fixed up
@@ -2229,7 +2138,7 @@
     ReadFatDisk(fatBuf);
 
     TInt r=TheFs.ScanDrive(gSessionPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
 
     TBool res=IsSameAsDrive(fatBuf,dirBuf);
     test(res);
@@ -2322,9 +2231,9 @@
             name.AppendNumFixedWidth(i+totalFilesCreated, EHex, 3);
             RFile f;
             r = f.Create(TheFs, name, EFileShareAny);
-            test_KErrNone(r);
+            test(r == KErrNone);
             r = f.Write(buf);
-            test_KErrNone(r);
+            test(r == KErrNone);
             f.Close();
             }
 
@@ -2357,7 +2266,7 @@
 
             }
 
-        WriteDirEntryToDisk(dirBuf, cluster);
+        WriteDirDisk(dirBuf, cluster);
         totalFilesCreated += filesThisTime;
         test.Printf(_L("   created %d entries\n"), totalFilesCreated);
         }
@@ -2369,7 +2278,7 @@
 
     test.Printf(_L("Running ScanDrive\n"), filesThisTime);
     r=TheFs.ScanDrive(gSessionPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
 
     TBool res=IsSameAsDrive(fatBuf,dirBuf);
     test(res);
@@ -2381,17 +2290,17 @@
         name.Append(_L("tempfile."));
         name.AppendNumFixedWidth(i, EHex, 3);
         r = TheFs.Delete(name);
-        test_KErrNone(r);
+        test(r == KErrNone);
         }
 
     ReadDirDisk(dirBuf);
     ReadFatDisk(fatBuf);
     WriteEndOfDir(ClusterEntryToBytes(cluster, startEntry));
-    WriteDirEntryToDisk(dirBuf);
+    WriteDirDisk(dirBuf);
 
     test.Printf(_L("Running ScanDrive\n"), filesThisTime);
     r=TheFs.ScanDrive(gSessionPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
     res=IsSameAsDrive(fatBuf,dirBuf);
     test(res);
     }
@@ -2432,7 +2341,6 @@
     DoPartEntries();
     DoLostClusters();
     DoHangingClusters();
-    DoHangingAndLostClusters();
     TestMountAndScan();
     TestConsecutiveMountAndScans();
     DeleteDirectoryStructure();
@@ -2454,7 +2362,7 @@
     {
     TInt r;
     r = TheFs.CharToDrive(gSessionPath[0], gDriveNumber);
-    test_KErrNone(r);
+    test( KErrNone == r );
 
 
     //-- set up console output
@@ -2472,7 +2380,7 @@
     // check this is not the internal ram drive
     TVolumeInfo v;
     r=TheFs.Volume(v);
-    test_KErrNone(r);
+    test(r==KErrNone);
     if(v.iDrive.iMediaAtt&KMediaAttVariableSize)
         {
         test.Printf(_L("Error: Internal ram drive not tested\n"));
@@ -2480,7 +2388,7 @@
         }
 
     r=TheFs.SetSessionPath(gSessionPath);
-    test_KErrNone(r);
+    test(r==KErrNone);
 
     DoTests();