kerneltest/f32test/server/t_bigfile.cpp
branchRCL_3
changeset 257 3e88ff8f41d5
parent 256 c1f20ce4abcf
equal deleted inserted replaced
256:c1f20ce4abcf 257:3e88ff8f41d5
    32 // for more details.
    32 // for more details.
    33 // 
    33 // 
    34 //
    34 //
    35 
    35 
    36 
    36 
    37 #define __E32TEST_EXTENSION__
       
    38 #include <f32file.h>
    37 #include <f32file.h>
    39 #include <e32test.h>
    38 #include <e32test.h>
    40 #include <e32svr.h>
    39 #include <e32svr.h>
    41 #include "t_server.h"
    40 #include "t_server.h"
    42 
    41 
   113 	iFileMan=aFileMan;
   112 	iFileMan=aFileMan;
   114 	}
   113 	}
   115 
   114 
   116 MFileManObserver::TControl CFileManObserver::NotifyFileManStarted()
   115 MFileManObserver::TControl CFileManObserver::NotifyFileManStarted()
   117 	{
   116 	{
   118     (void)MFileManObserver::NotifyFileManStarted();
       
   119 	TInt lastError = iFileMan->GetLastError();
   117 	TInt lastError = iFileMan->GetLastError();
   120 	TFileName fileName = iFileMan->CurrentEntry().iName;
   118 	TFileName fileName = iFileMan->CurrentEntry().iName;
   121 	test.Printf(_L("NotifyFileManStarted(): Error %d File %S\n"),lastError, &fileName);
   119 	test.Printf(_L("NotifyFileManStarted(): Error %d File %S\n"),lastError, &fileName);
   122 	return(MFileManObserver::EContinue);
   120 	return(MFileManObserver::EContinue);
   123 	}
   121 	}
   124 
   122 
   125 MFileManObserver::TControl CFileManObserver::NotifyFileManOperation()
   123 MFileManObserver::TControl CFileManObserver::NotifyFileManOperation()
   126 	{
   124 	{
   127     (void)MFileManObserver::NotifyFileManOperation();
       
   128 	TInt lastError = iFileMan->GetLastError();
   125 	TInt lastError = iFileMan->GetLastError();
   129 	TFileName fileName = iFileMan->CurrentEntry().iName;
   126 	TFileName fileName = iFileMan->CurrentEntry().iName;
   130 	test.Printf(_L("NotifyFileManOperation(): Error %d File %S\n"),lastError, &fileName);
   127 	test.Printf(_L("NotifyFileManOperation(): Error %d File %S\n"),lastError, &fileName);
   131 	return(MFileManObserver::EContinue);
   128 	return(MFileManObserver::EContinue);
   132 	}
   129 	}
   169 	const TFileName fname = KFile2GBMinusOne();
   166 	const TFileName fname = KFile2GBMinusOne();
   170 
   167 
   171 	test.Next(_L("2GBMinusOne File: Open"));
   168 	test.Next(_L("2GBMinusOne File: Open"));
   172 
   169 
   173 	r = f.Open(TheFs, fname, EFileRead);
   170 	r = f.Open(TheFs, fname, EFileRead);
   174 	test_KErrNone(r);
   171 	test(r==KErrNone);
   175 
   172 
   176 	testSize = K2GbMinusOne;
   173 	testSize = K2GbMinusOne;
   177 	
   174 	
   178 	test.Next(_L("2GBMinusOne File: Read"));
   175 	test.Next(_L("2GBMinusOne File: Read"));
   179 
   176 
   180 	r=f.Size((TInt&) size);
   177 	r=f.Size((TInt&) size);
   181 	test_KErrNone(r);
   178 	test(r==KErrNone);
   182 	test(size == testSize);
   179 	test(size == testSize);
   183 	
   180 	
   184 	r = TheFs.Entry(fname, entry);
   181 	r = TheFs.Entry(fname, entry);
   185 	test_KErrNone(r);
   182 	test(r==KErrNone);
   186 	test ((TUint) entry.iSize == testSize);
   183 	test ((TUint) entry.iSize == testSize);
   187 
   184 
   188 	// seek to just below 2GB
   185 	// seek to just below 2GB
   189 	testPos = (K2GbMinusOne - K1Kb) & KPosMask;
   186 	testPos = (K2GbMinusOne - K1Kb) & KPosMask;
   190 	r = f.Seek(ESeekStart, (TInt&) testPos);
   187 	r = f.Seek(ESeekStart, (TInt&) testPos);
   191 	test_KErrNone(r);
   188 	test(r==KErrNone);
   192 
   189 
   193 	r = f.Read(bufPtr);
   190 	r = f.Read(bufPtr);
   194 	test_KErrNone(r);
   191 	test(r==KErrNone);
   195 
   192 
   196 	TUint posRead =  * ((TUint*) &bufPtr[0]);
   193 	TUint posRead =  * ((TUint*) &bufPtr[0]);
   197 	test.Printf(_L("position read %08X, expected %08X\n"), posRead, testPos);
   194 	test.Printf(_L("position read %08X, expected %08X\n"), posRead, testPos);
   198 	test(posRead == testPos);
   195 	test(posRead == testPos);
   199 
   196 
   222 	const TFileName fname = KFile2GB();
   219 	const TFileName fname = KFile2GB();
   223 	testSize = K2Gb;
   220 	testSize = K2Gb;
   224 
   221 
   225 	test.Next(_L("2GB File: Test the size with RFs::Entry"));
   222 	test.Next(_L("2GB File: Test the size with RFs::Entry"));
   226 	r = TheFs.Entry(fname, entry);
   223 	r = TheFs.Entry(fname, entry);
   227 	test_KErrNone(r);
   224 	test(r==KErrNone);
   228 	test ((TUint) entry.iSize == testSize);
   225 	test ((TUint) entry.iSize == testSize);
   229 
   226 
   230 	test.Next(_L("2GB File: Attempt to open (should fail with KErrToBig)"));
   227 	test.Next(_L("2GB File: Attempt to open (should fail with KErrToBig)"));
   231 
   228 
   232 	r = f.Open(TheFs, fname, EFileRead);
   229 	r = f.Open(TheFs, fname, EFileRead);
   233 	test_Value(r, r == KErrTooBig);
   230 	test(r==KErrTooBig);
   234 	}
   231 	}
   235 
   232 
   236 //----------------------------------------------------------------------------------------------
   233 //----------------------------------------------------------------------------------------------
   237 //! @SYMTestCaseID      PBASE-T_BIGFILE-0003
   234 //! @SYMTestCaseID      PBASE-T_BIGFILE-0003
   238 //! @SYMTestType        CIT
   235 //! @SYMTestType        CIT
   255 	const TFileName fname = KFile3GB();
   252 	const TFileName fname = KFile3GB();
   256 	testSize = K3Gb;
   253 	testSize = K3Gb;
   257 
   254 
   258 	test.Next(_L("3GB File: Test the size with RFs::Entry"));
   255 	test.Next(_L("3GB File: Test the size with RFs::Entry"));
   259 	r = TheFs.Entry(fname, entry);
   256 	r = TheFs.Entry(fname, entry);
   260 	test_KErrNone(r);
   257 	test(r==KErrNone);
   261 	test ((TUint) entry.iSize == testSize);
   258 	test ((TUint) entry.iSize == testSize);
   262 
   259 
   263 	test.Next(_L("3GB File: Attempt to open (should fail with KErrToBig)"));
   260 	test.Next(_L("3GB File: Attempt to open (should fail with KErrToBig)"));
   264 
   261 
   265 	r = f.Open(TheFs, fname, EFileRead);
   262 	r = f.Open(TheFs, fname, EFileRead);
   266 	test_Value(r, r == KErrTooBig);
   263 	test(r==KErrTooBig);
   267 	}
   264 	}
   268 
   265 
   269 //----------------------------------------------------------------------------------------------
   266 //----------------------------------------------------------------------------------------------
   270 //! @SYMTestCaseID      PBASE-T_BIGFILE-0004
   267 //! @SYMTestCaseID      PBASE-T_BIGFILE-0004
   271 //! @SYMTestType        CIT
   268 //! @SYMTestType        CIT
   289 	testSize = K4GbMinusOne;
   286 	testSize = K4GbMinusOne;
   290 
   287 
   291 	test.Next(_L("4GB File: Test the size with RFs::Entry"));
   288 	test.Next(_L("4GB File: Test the size with RFs::Entry"));
   292 	r = TheFs.Entry(fname, entry);
   289 	r = TheFs.Entry(fname, entry);
   293 	
   290 	
   294 	test_KErrNone(r);
   291 	test(r==KErrNone);
   295 	test ((TUint) entry.iSize == testSize);
   292 	test ((TUint) entry.iSize == testSize);
   296 
   293 
   297 	test.Next(_L("4GB File: Attempt to open (should fail with KErrToBig)"));
   294 	test.Next(_L("4GB File: Attempt to open (should fail with KErrToBig)"));
   298 
   295 
   299 	r = f.Open(TheFs, fname, EFileRead);
   296 	r = f.Open(TheFs, fname, EFileRead);
   300 	test_Value(r, r == KErrTooBig);
   297 	test(r==KErrTooBig);
   301 	}
   298 	}
   302 
   299 
   303 //----------------------------------------------------------------------------------------------
   300 //----------------------------------------------------------------------------------------------
   304 //! @SYMTestCaseID      PBASE-T_BIGFILE-0005
   301 //! @SYMTestCaseID      PBASE-T_BIGFILE-0005
   305 //! @SYMTestType        CIT
   302 //! @SYMTestType        CIT
   325 	testSize = K2GbMinusOne;
   322 	testSize = K2GbMinusOne;
   326 
   323 
   327 	test.Next(_L("2GBMinusOne File: Open"));
   324 	test.Next(_L("2GBMinusOne File: Open"));
   328 
   325 
   329 	r = f.Open(TheFs, fname, EFileRead | EFileWrite);
   326 	r = f.Open(TheFs, fname, EFileRead | EFileWrite);
   330 	test_KErrNone(r);
   327 	test(r==KErrNone);
   331 
   328 
   332 	
   329 	
   333 	test.Next(_L("2GBMinusOne File: Attempt to extend"));
   330 	test.Next(_L("2GBMinusOne File: Attempt to extend"));
   334 
   331 
   335 	r=f.Size((TInt&) size);
   332 	r=f.Size((TInt&) size);
   336 	test_KErrNone(r);
   333 	test(r==KErrNone);
   337 	test(size == testSize);
   334 	test(size == testSize);
   338 	
   335 	
   339 	r = TheFs.Entry(fname, entry);
   336 	r = TheFs.Entry(fname, entry);
   340 	test_KErrNone(r);
   337 	test(r==KErrNone);
   341 	test ((TUint) entry.iSize == testSize);
   338 	test ((TUint) entry.iSize == testSize);
   342 
   339 
   343 	// seek to end
   340 	// seek to end
   344 	testPos = 0;
   341 	testPos = 0;
   345 	r = f.Seek(ESeekEnd, (TInt&) testPos);
   342 	r = f.Seek(ESeekEnd, (TInt&) testPos);
   346 	test_KErrNone(r);
   343 	test(r==KErrNone);
   347 
   344 
   348 	bufPtr.SetLength(1);
   345 	bufPtr.SetLength(1);
   349 	r = f.Write(bufPtr);
   346 	r = f.Write(bufPtr);
   350 	test_Value(r, r == KErrTooBig);
   347 	test(r==KErrTooBig);
   351 
   348 
   352 	f.Close();
   349 	f.Close();
   353 	}
   350 	}
   354 
   351 
   355 //----------------------------------------------------------------------------------------------
   352 //----------------------------------------------------------------------------------------------
   366 	{
   363 	{
   367 	test.Next(_L("Delete large file"));
   364 	test.Next(_L("Delete large file"));
   368 	test.Printf(_L("Deleting %S\n"), &aFileName);
   365 	test.Printf(_L("Deleting %S\n"), &aFileName);
   369 
   366 
   370 	TInt r = TheFs.Delete(aFileName);
   367 	TInt r = TheFs.Delete(aFileName);
   371 	test_KErrNone(r);
   368 	test(r==KErrNone);
   372 
   369 
   373 	CheckDisk();
   370 	CheckDisk();
   374 	}
   371 	}
   375 
   372 
   376 
   373 
   389 	{
   386 	{
   390 	test.Next(_L("Read a directory containing large files using RDir"));
   387 	test.Next(_L("Read a directory containing large files using RDir"));
   391 
   388 
   392 	RDir dir;
   389 	RDir dir;
   393 	TInt r = dir.Open(TheFs, _L("*.*"), KEntryAttNormal);
   390 	TInt r = dir.Open(TheFs, _L("*.*"), KEntryAttNormal);
   394 	test_KErrNone(r);
   391 	test (r == KErrNone);
   395 	
   392 	
   396 	TEntryArray entryArray;
   393 	TEntryArray entryArray;
   397 	r = dir.Read(entryArray);
   394 	r = dir.Read(entryArray);
   398 	test_Value(r, r == KErrEof);
   395 	test (r == KErrEof);
   399 
   396 
   400 	test(entryArray.Count() == gFilesInDirectory);
   397 	test(entryArray.Count() == gFilesInDirectory);
   401 
   398 
   402 	TInt n;
   399 	TInt n;
   403 	for (n=0; n<entryArray.Count(); n++)
   400 	for (n=0; n<entryArray.Count(); n++)
   426 	dir.Close();
   423 	dir.Close();
   427 
   424 
   428 	test.Next(_L("Read a directory containing large files using CDir & sort by size"));
   425 	test.Next(_L("Read a directory containing large files using CDir & sort by size"));
   429 	CDir* dirList;
   426 	CDir* dirList;
   430 	r=TheFs.GetDir(_L("*.*"), KEntryAttMaskSupported, ESortBySize, dirList);
   427 	r=TheFs.GetDir(_L("*.*"), KEntryAttMaskSupported, ESortBySize, dirList);
   431 	test_KErrNone(r);
   428 	test(r==KErrNone);
   432 	test(dirList->Count() == gFilesInDirectory);
   429 	test(dirList->Count() == gFilesInDirectory);
   433 	for (n=0; n<dirList->Count(); n++)
   430 	for (n=0; n<dirList->Count(); n++)
   434 		{
   431 		{
   435 		TEntry entry;
   432 		TEntry entry;
   436 		entry=(*dirList)[n];
   433 		entry=(*dirList)[n];
   484 	TPath filePathOld = gSessionPath;
   481 	TPath filePathOld = gSessionPath;
   485 	filePathOld+= _L("*.*");
   482 	filePathOld+= _L("*.*");
   486 	TPath filePathNew =	_L("?:\\TEST\\");
   483 	TPath filePathNew =	_L("?:\\TEST\\");
   487 	TChar driveLetter;
   484 	TChar driveLetter;
   488 	TInt r=TheFs.DriveToChar(gDrive,driveLetter);
   485 	TInt r=TheFs.DriveToChar(gDrive,driveLetter);
   489 	test_KErrNone(r);
   486 	test(r==KErrNone);
   490 	filePathNew[0] = (TText) driveLetter;
   487 	filePathNew[0] = (TText) driveLetter;
   491 
   488 
   492 	// move to new directory
   489 	// move to new directory
   493 	r = fileMan->Move(filePathOld, filePathNew, CFileMan::ERecurse | CFileMan::EOverWrite);
   490 	r = fileMan->Move(filePathOld, filePathNew, CFileMan::ERecurse | CFileMan::EOverWrite);
   494 	test_KErrNone(r);
   491 	test(r == KErrNone);
   495 
   492 
   496 	// then move back again
   493 	// then move back again
   497 	r = fileMan->Move(filePathNew, filePathOld);
   494 	r = fileMan->Move(filePathNew, filePathOld);
   498 	test_KErrNone(r);
   495 	test(r == KErrNone);
   499 
   496 
   500 	delete fileMan;
   497 	delete fileMan;
   501 	}
   498 	}
   502 
   499 
   503 
   500 
   523 	TPath filePathOld = gSessionPath;
   520 	TPath filePathOld = gSessionPath;
   524 	filePathOld+= _L("*.*");
   521 	filePathOld+= _L("*.*");
   525 	TPath filePathNew =	_L("?:\\TEST\\");
   522 	TPath filePathNew =	_L("?:\\TEST\\");
   526 	TChar driveLetter;
   523 	TChar driveLetter;
   527 	TInt r = TheFs.DriveToChar(gDrive,driveLetter);
   524 	TInt r = TheFs.DriveToChar(gDrive,driveLetter);
   528 	test_KErrNone(r);
   525 	test(r == KErrNone);
   529 	filePathNew[0] = (TText) driveLetter;
   526 	filePathNew[0] = (TText) driveLetter;
   530 
   527 
   531 	// create some small files in the source directory 
   528 	// create some small files in the source directory 
   532 	// so that there is a combination of small files and one large files
   529 	// so that there is a combination of small files and one large files
   533 	RFile file;
   530 	RFile file;
   534 	_LIT(KFileSmall1, "FileSmallOne.txt");
   531 	_LIT(KFileSmall1, "FileSmallOne.txt");
   535 	_LIT(KFileSmall2, "FileSmallTwo.txt");
   532 	_LIT(KFileSmall2, "FileSmallTwo.txt");
   536 	_LIT(KFileSmall3, "FileSmallThree.txt");
   533 	_LIT(KFileSmall3, "FileSmallThree.txt");
   537 	r = file.Create(TheFs, KFileSmall1(), EFileWrite | EFileShareAny);
   534 	r = file.Create(TheFs, KFileSmall1(), EFileWrite | EFileShareAny);
   538 	test_KErrNone(r);
   535 	test(r == KErrNone);
   539 	r = file.Write(_L8("1"));
   536 	r = file.Write(_L8("1"));
   540 	test_KErrNone(r);
   537 	test(r == KErrNone);
   541 	file.Close();
   538 	file.Close();
   542 
   539 
   543 	r = file.Create(TheFs, KFileSmall2(), EFileWrite | EFileShareAny);
   540 	r = file.Create(TheFs, KFileSmall2(), EFileWrite | EFileShareAny);
   544 	test_KErrNone(r);
   541 	test(r == KErrNone);
   545 	r = file.Write(_L8("12"));
   542 	r = file.Write(_L8("12"));
   546 	test_KErrNone(r);
   543 	test(r == KErrNone);
   547 	file.Close();
   544 	file.Close();
   548 
   545 
   549 	r = file.Create(TheFs, KFileSmall3(), EFileWrite | EFileShareAny);
   546 	r = file.Create(TheFs, KFileSmall3(), EFileWrite | EFileShareAny);
   550 	test_KErrNone(r);
   547 	test(r == KErrNone);
   551 	r = file.Write(_L8("123"));
   548 	r = file.Write(_L8("123"));
   552 	test_KErrNone(r);
   549 	test(r == KErrNone);
   553 	file.Close();
   550 	file.Close();
   554 
   551 
   555 	// copy to new directory
   552 	// copy to new directory
   556 	r = fileMan->Copy(filePathOld, filePathNew, CFileMan::ERecurse | CFileMan::EOverWrite);
   553 	r = fileMan->Copy(filePathOld, filePathNew, CFileMan::ERecurse | CFileMan::EOverWrite);
   557 	test_Value(r, r == KErrNone || r == KErrTooBig);
   554 	test(r == KErrNone || r == KErrTooBig);
   558 
   555 
   559 
   556 
   560 	// check SMALL files have been copied
   557 	// check SMALL files have been copied
   561 	RDir dir;
   558 	RDir dir;
   562 	r = dir.Open(TheFs, filePathNew, KEntryAttNormal);
   559 	r = dir.Open(TheFs, filePathNew, KEntryAttNormal);
   563 	test_KErrNone(r);
   560 	test (r == KErrNone);
   564 	TEntryArray entryArray;
   561 	TEntryArray entryArray;
   565 	r = dir.Read(entryArray);
   562 	r = dir.Read(entryArray);
   566 	test_Value(r, r == KErrEof);
   563 	test (r == KErrEof);
   567 	test(entryArray.Count() == 3);
   564 	test(entryArray.Count() == 3);
   568 	dir.Close();
   565 	dir.Close();
   569 	
   566 	
   570 	// then delete the new directory
   567 	// then delete the new directory
   571 	r = fileMan->Delete(filePathNew);
   568 	r = fileMan->Delete(filePathNew);
   572 	test_KErrNone(r);
   569 	test(r == KErrNone);
   573 
   570 
   574 	
   571 	
   575 	// attempt to copy to new directory again - this time with an observer
   572 	// attempt to copy to new directory again - this time with an observer
   576 	fileMan->SetObserver(observer);
   573 	fileMan->SetObserver(observer);
   577 	r = fileMan->Copy(filePathOld, filePathNew, CFileMan::ERecurse | CFileMan::EOverWrite);
   574 	r = fileMan->Copy(filePathOld, filePathNew, CFileMan::ERecurse | CFileMan::EOverWrite);
   578 	test_Value(r, r == KErrNone || r == KErrTooBig);
   575 	test(r == KErrNone || r == KErrTooBig);
   579 	
   576 	
   580 	// test that 3 small files were copied and 1 or 2 large files failed to copy
   577 	// test that 3 small files were copied and 1 or 2 large files failed to copy
   581 	// (For 8 GB disk, the 4GB file is missing)
   578 	// (For 8 GB disk, the 4GB file is missing)
   582 	test(observer->iNotifyEndedSuccesses == 3);
   579 	test(observer->iNotifyEndedSuccesses == 3);
   583 	test(observer->iNotifyEndedFailures == 1 || observer->iNotifyEndedFailures == 2);
   580 	test(observer->iNotifyEndedFailures == 1 || observer->iNotifyEndedFailures == 2);
   584 
   581 
   585 	// check SMALL files have been copied
   582 	// check SMALL files have been copied
   586 	r = dir.Open(TheFs, filePathNew, KEntryAttNormal);
   583 	r = dir.Open(TheFs, filePathNew, KEntryAttNormal);
   587 	test_KErrNone(r);
   584 	test (r == KErrNone);
   588 	r = dir.Read(entryArray);
   585 	r = dir.Read(entryArray);
   589 	test_Value(r, r == KErrEof);
   586 	test (r == KErrEof);
   590 	test(entryArray.Count() == 3);
   587 	test(entryArray.Count() == 3);
   591 	dir.Close();
   588 	dir.Close();
   592 	
   589 	
   593 	// then delete the new directory
   590 	// then delete the new directory
   594 	r = fileMan->Delete(filePathNew);
   591 	r = fileMan->Delete(filePathNew);
   595 	test_KErrNone(r);
   592 	test(r == KErrNone);
   596 
   593 
   597 	delete observer;
   594 	delete observer;
   598 	delete fileMan;
   595 	delete fileMan;
   599 	}
   596 	}
   600 
   597 
   613 	TInt r;
   610 	TInt r;
   614 	TFileName dirName;
   611 	TFileName dirName;
   615 
   612 
   616 	CDirScan* scanner = NULL;
   613 	CDirScan* scanner = NULL;
   617 	TRAP(r, scanner = CDirScan::NewL(TheFs));
   614 	TRAP(r, scanner = CDirScan::NewL(TheFs));
   618 	test_Value(r, r == KErrNone && scanner);
   615 	test(r == KErrNone && scanner);
   619 
   616 
   620 	TRAP(r, scanner->SetScanDataL(aName,KEntryAttDir,ESortByName|EAscending,aDirection));
   617 	TRAP(r, scanner->SetScanDataL(aName,KEntryAttDir,ESortByName|EAscending,aDirection));
   621 	test_KErrNone(r);
   618 	test(r == KErrNone);
   622 	
   619 	
   623 	CDir *entryList=NULL;
   620 	CDir *entryList=NULL;
   624 	TInt filesFound = 0;
   621 	TInt filesFound = 0;
   625 	for (;;)
   622 	for (;;)
   626 		{
   623 		{
   627 		TRAP(r, scanner->NextL(entryList));
   624 		TRAP(r, scanner->NextL(entryList));
   628 		test_Value(r, r == aError);
   625 		test(r == aError);
   629 		if (entryList==NULL)
   626 		if (entryList==NULL)
   630 			break;
   627 			break;
   631 		TInt count = entryList->Count();
   628 		TInt count = entryList->Count();
   632 		while (count--)
   629 		while (count--)
   633 			{
   630 			{
   670 		}
   667 		}
   671 
   668 
   672 	TInt r;
   669 	TInt r;
   673 
   670 
   674 	r = TheFs.CharToDrive(gDriveToTest, gDrive);
   671 	r = TheFs.CharToDrive(gDriveToTest, gDrive);
   675 	test_KErrNone(r);
   672 	test(r==KErrNone);
   676 
   673 
   677 #ifdef __MOUNT_RAW_EXT__
   674 #ifdef __MOUNT_RAW_EXT__
   678 	r=TheFs.FileSystemName(gOldFsName, gDrive);
   675 	r=TheFs.FileSystemName(gOldFsName, gDrive);
   679 	test_KErrNone(r);
   676 	test(r==KErrNone);
   680 
   677 
   681 	if (gOldFsName.CompareF(KFATName) != 0)
   678 	if (gOldFsName.CompareF(KFATName) != 0)
   682 		{
   679 		{
   683 		test.Printf(_L("Skipping test: Not a FAT drive\n"));
   680 		test.Printf(_L("Skipping test: Not a FAT drive\n"));
   684 		return;
   681 		return;
   685 		}
   682 		}
   686 
   683 
   687     r = TheFs.AddExtension(KExtName);
   684     r = TheFs.AddExtension(KExtName);
   688     test_Value(r, r == KErrNone || r==KErrAlreadyExists);
   685     test(r==KErrNone || r==KErrAlreadyExists);
   689     r = TheFs.MountExtension(KExtName, gDrive);
   686     r = TheFs.MountExtension(KExtName, gDrive);
   690     test_Value(r, r == KErrNone || r==KErrAlreadyExists);
   687     test(r==KErrNone || r==KErrAlreadyExists);
   691 #endif
   688 #endif
   692 
   689 
   693 	TVolumeInfo vi;
   690 	TVolumeInfo vi;
   694 	test((r = TheFs.Volume(vi, gDrive)) == KErrNone);
   691 	test((r = TheFs.Volume(vi, gDrive)) == KErrNone);
   695 	test.Printf(_L("vi.iSize = %ld\n"), vi.iSize);
   692 	test.Printf(_L("vi.iSize = %ld\n"), vi.iSize);
   716 		// Test that RFs::CheckDisk() succeeds with large files present
   713 		// Test that RFs::CheckDisk() succeeds with large files present
   717 		CheckDisk();
   714 		CheckDisk();
   718 		
   715 		
   719 		test.Next(_L("Scan Drive"));
   716 		test.Next(_L("Scan Drive"));
   720 		r = TheFs.ScanDrive(gSessionPath);
   717 		r = TheFs.ScanDrive(gSessionPath);
   721 		test_KErrNone(r);
   718 		test (r == KErrNone);
   722 
   719 
   723 		// NB the 4GB file will not be present unless the disk is > 8GB (because it doesn't fit)
   720 		// NB the 4GB file will not be present unless the disk is > 8GB (because it doesn't fit)
   724 		if (!FilePresent(KFile4GBMinusOne()))
   721 		if (!FilePresent(KFile4GBMinusOne()))
   725 			gFilesInDirectory--;
   722 			gFilesInDirectory--;
   726 
   723 
   762 		Format (gDrive);
   759 		Format (gDrive);
   763 		}
   760 		}
   764 
   761 
   765 #ifdef __MOUNT_RAW_EXT__
   762 #ifdef __MOUNT_RAW_EXT__
   766 	r = TheFs.DismountExtension(KExtName, gDrive);
   763 	r = TheFs.DismountExtension(KExtName, gDrive);
   767 	test_KErrNone(r);
   764 	test(r==KErrNone);
   768 
   765 
   769 	r = TheFs.RemoveExtension(KExtName);
   766 	r = TheFs.RemoveExtension(KExtName);
   770 	test_KErrNone(r);
   767 	test(r==KErrNone);
   771 
   768 
   772 #endif
   769 #endif
   773 
   770 
   774 	delete gBuf; gBuf = NULL;
   771 	delete gBuf; gBuf = NULL;
   775 	}
   772 	}