166 const TFileName fname = KFile2GBMinusOne(); |
167 const TFileName fname = KFile2GBMinusOne(); |
167 |
168 |
168 test.Next(_L("2GBMinusOne File: Open")); |
169 test.Next(_L("2GBMinusOne File: Open")); |
169 |
170 |
170 r = f.Open(TheFs, fname, EFileRead); |
171 r = f.Open(TheFs, fname, EFileRead); |
171 test(r==KErrNone); |
172 test_KErrNone(r); |
172 |
173 |
173 testSize = K2GbMinusOne; |
174 testSize = K2GbMinusOne; |
174 |
175 |
175 test.Next(_L("2GBMinusOne File: Read")); |
176 test.Next(_L("2GBMinusOne File: Read")); |
176 |
177 |
177 r=f.Size((TInt&) size); |
178 r=f.Size((TInt&) size); |
178 test(r==KErrNone); |
179 test_KErrNone(r); |
179 test(size == testSize); |
180 test(size == testSize); |
180 |
181 |
181 r = TheFs.Entry(fname, entry); |
182 r = TheFs.Entry(fname, entry); |
182 test(r==KErrNone); |
183 test_KErrNone(r); |
183 test ((TUint) entry.iSize == testSize); |
184 test ((TUint) entry.iSize == testSize); |
184 |
185 |
185 // seek to just below 2GB |
186 // seek to just below 2GB |
186 testPos = (K2GbMinusOne - K1Kb) & KPosMask; |
187 testPos = (K2GbMinusOne - K1Kb) & KPosMask; |
187 r = f.Seek(ESeekStart, (TInt&) testPos); |
188 r = f.Seek(ESeekStart, (TInt&) testPos); |
188 test(r==KErrNone); |
189 test_KErrNone(r); |
189 |
190 |
190 r = f.Read(bufPtr); |
191 r = f.Read(bufPtr); |
191 test(r==KErrNone); |
192 test_KErrNone(r); |
192 |
193 |
193 TUint posRead = * ((TUint*) &bufPtr[0]); |
194 TUint posRead = * ((TUint*) &bufPtr[0]); |
194 test.Printf(_L("position read %08X, expected %08X\n"), posRead, testPos); |
195 test.Printf(_L("position read %08X, expected %08X\n"), posRead, testPos); |
195 test(posRead == testPos); |
196 test(posRead == testPos); |
196 |
197 |
219 const TFileName fname = KFile2GB(); |
220 const TFileName fname = KFile2GB(); |
220 testSize = K2Gb; |
221 testSize = K2Gb; |
221 |
222 |
222 test.Next(_L("2GB File: Test the size with RFs::Entry")); |
223 test.Next(_L("2GB File: Test the size with RFs::Entry")); |
223 r = TheFs.Entry(fname, entry); |
224 r = TheFs.Entry(fname, entry); |
224 test(r==KErrNone); |
225 test_KErrNone(r); |
225 test ((TUint) entry.iSize == testSize); |
226 test ((TUint) entry.iSize == testSize); |
226 |
227 |
227 test.Next(_L("2GB File: Attempt to open (should fail with KErrToBig)")); |
228 test.Next(_L("2GB File: Attempt to open (should fail with KErrToBig)")); |
228 |
229 |
229 r = f.Open(TheFs, fname, EFileRead); |
230 r = f.Open(TheFs, fname, EFileRead); |
230 test(r==KErrTooBig); |
231 test_Value(r, r == KErrTooBig); |
231 } |
232 } |
232 |
233 |
233 //---------------------------------------------------------------------------------------------- |
234 //---------------------------------------------------------------------------------------------- |
234 //! @SYMTestCaseID PBASE-T_BIGFILE-0003 |
235 //! @SYMTestCaseID PBASE-T_BIGFILE-0003 |
235 //! @SYMTestType CIT |
236 //! @SYMTestType CIT |
252 const TFileName fname = KFile3GB(); |
253 const TFileName fname = KFile3GB(); |
253 testSize = K3Gb; |
254 testSize = K3Gb; |
254 |
255 |
255 test.Next(_L("3GB File: Test the size with RFs::Entry")); |
256 test.Next(_L("3GB File: Test the size with RFs::Entry")); |
256 r = TheFs.Entry(fname, entry); |
257 r = TheFs.Entry(fname, entry); |
257 test(r==KErrNone); |
258 test_KErrNone(r); |
258 test ((TUint) entry.iSize == testSize); |
259 test ((TUint) entry.iSize == testSize); |
259 |
260 |
260 test.Next(_L("3GB File: Attempt to open (should fail with KErrToBig)")); |
261 test.Next(_L("3GB File: Attempt to open (should fail with KErrToBig)")); |
261 |
262 |
262 r = f.Open(TheFs, fname, EFileRead); |
263 r = f.Open(TheFs, fname, EFileRead); |
263 test(r==KErrTooBig); |
264 test_Value(r, r == KErrTooBig); |
264 } |
265 } |
265 |
266 |
266 //---------------------------------------------------------------------------------------------- |
267 //---------------------------------------------------------------------------------------------- |
267 //! @SYMTestCaseID PBASE-T_BIGFILE-0004 |
268 //! @SYMTestCaseID PBASE-T_BIGFILE-0004 |
268 //! @SYMTestType CIT |
269 //! @SYMTestType CIT |
322 testSize = K2GbMinusOne; |
323 testSize = K2GbMinusOne; |
323 |
324 |
324 test.Next(_L("2GBMinusOne File: Open")); |
325 test.Next(_L("2GBMinusOne File: Open")); |
325 |
326 |
326 r = f.Open(TheFs, fname, EFileRead | EFileWrite); |
327 r = f.Open(TheFs, fname, EFileRead | EFileWrite); |
327 test(r==KErrNone); |
328 test_KErrNone(r); |
328 |
329 |
329 |
330 |
330 test.Next(_L("2GBMinusOne File: Attempt to extend")); |
331 test.Next(_L("2GBMinusOne File: Attempt to extend")); |
331 |
332 |
332 r=f.Size((TInt&) size); |
333 r=f.Size((TInt&) size); |
333 test(r==KErrNone); |
334 test_KErrNone(r); |
334 test(size == testSize); |
335 test(size == testSize); |
335 |
336 |
336 r = TheFs.Entry(fname, entry); |
337 r = TheFs.Entry(fname, entry); |
337 test(r==KErrNone); |
338 test_KErrNone(r); |
338 test ((TUint) entry.iSize == testSize); |
339 test ((TUint) entry.iSize == testSize); |
339 |
340 |
340 // seek to end |
341 // seek to end |
341 testPos = 0; |
342 testPos = 0; |
342 r = f.Seek(ESeekEnd, (TInt&) testPos); |
343 r = f.Seek(ESeekEnd, (TInt&) testPos); |
343 test(r==KErrNone); |
344 test_KErrNone(r); |
344 |
345 |
345 bufPtr.SetLength(1); |
346 bufPtr.SetLength(1); |
346 r = f.Write(bufPtr); |
347 r = f.Write(bufPtr); |
347 test(r==KErrTooBig); |
348 test_Value(r, r == KErrTooBig); |
348 |
349 |
349 f.Close(); |
350 f.Close(); |
350 } |
351 } |
351 |
352 |
352 //---------------------------------------------------------------------------------------------- |
353 //---------------------------------------------------------------------------------------------- |
481 TPath filePathOld = gSessionPath; |
482 TPath filePathOld = gSessionPath; |
482 filePathOld+= _L("*.*"); |
483 filePathOld+= _L("*.*"); |
483 TPath filePathNew = _L("?:\\TEST\\"); |
484 TPath filePathNew = _L("?:\\TEST\\"); |
484 TChar driveLetter; |
485 TChar driveLetter; |
485 TInt r=TheFs.DriveToChar(gDrive,driveLetter); |
486 TInt r=TheFs.DriveToChar(gDrive,driveLetter); |
486 test(r==KErrNone); |
487 test_KErrNone(r); |
487 filePathNew[0] = (TText) driveLetter; |
488 filePathNew[0] = (TText) driveLetter; |
488 |
489 |
489 // move to new directory |
490 // move to new directory |
490 r = fileMan->Move(filePathOld, filePathNew, CFileMan::ERecurse | CFileMan::EOverWrite); |
491 r = fileMan->Move(filePathOld, filePathNew, CFileMan::ERecurse | CFileMan::EOverWrite); |
491 test(r == KErrNone); |
492 test_KErrNone(r); |
492 |
493 |
493 // then move back again |
494 // then move back again |
494 r = fileMan->Move(filePathNew, filePathOld); |
495 r = fileMan->Move(filePathNew, filePathOld); |
495 test(r == KErrNone); |
496 test_KErrNone(r); |
496 |
497 |
497 delete fileMan; |
498 delete fileMan; |
498 } |
499 } |
499 |
500 |
500 |
501 |
520 TPath filePathOld = gSessionPath; |
521 TPath filePathOld = gSessionPath; |
521 filePathOld+= _L("*.*"); |
522 filePathOld+= _L("*.*"); |
522 TPath filePathNew = _L("?:\\TEST\\"); |
523 TPath filePathNew = _L("?:\\TEST\\"); |
523 TChar driveLetter; |
524 TChar driveLetter; |
524 TInt r = TheFs.DriveToChar(gDrive,driveLetter); |
525 TInt r = TheFs.DriveToChar(gDrive,driveLetter); |
525 test(r == KErrNone); |
526 test_KErrNone(r); |
526 filePathNew[0] = (TText) driveLetter; |
527 filePathNew[0] = (TText) driveLetter; |
527 |
528 |
528 // create some small files in the source directory |
529 // create some small files in the source directory |
529 // so that there is a combination of small files and one large files |
530 // so that there is a combination of small files and one large files |
530 RFile file; |
531 RFile file; |
531 _LIT(KFileSmall1, "FileSmallOne.txt"); |
532 _LIT(KFileSmall1, "FileSmallOne.txt"); |
532 _LIT(KFileSmall2, "FileSmallTwo.txt"); |
533 _LIT(KFileSmall2, "FileSmallTwo.txt"); |
533 _LIT(KFileSmall3, "FileSmallThree.txt"); |
534 _LIT(KFileSmall3, "FileSmallThree.txt"); |
534 r = file.Create(TheFs, KFileSmall1(), EFileWrite | EFileShareAny); |
535 r = file.Create(TheFs, KFileSmall1(), EFileWrite | EFileShareAny); |
535 test(r == KErrNone); |
536 test_KErrNone(r); |
536 r = file.Write(_L8("1")); |
537 r = file.Write(_L8("1")); |
537 test(r == KErrNone); |
538 test_KErrNone(r); |
538 file.Close(); |
539 file.Close(); |
539 |
540 |
540 r = file.Create(TheFs, KFileSmall2(), EFileWrite | EFileShareAny); |
541 r = file.Create(TheFs, KFileSmall2(), EFileWrite | EFileShareAny); |
541 test(r == KErrNone); |
542 test_KErrNone(r); |
542 r = file.Write(_L8("12")); |
543 r = file.Write(_L8("12")); |
543 test(r == KErrNone); |
544 test_KErrNone(r); |
544 file.Close(); |
545 file.Close(); |
545 |
546 |
546 r = file.Create(TheFs, KFileSmall3(), EFileWrite | EFileShareAny); |
547 r = file.Create(TheFs, KFileSmall3(), EFileWrite | EFileShareAny); |
547 test(r == KErrNone); |
548 test_KErrNone(r); |
548 r = file.Write(_L8("123")); |
549 r = file.Write(_L8("123")); |
549 test(r == KErrNone); |
550 test_KErrNone(r); |
550 file.Close(); |
551 file.Close(); |
551 |
552 |
552 // copy to new directory |
553 // copy to new directory |
553 r = fileMan->Copy(filePathOld, filePathNew, CFileMan::ERecurse | CFileMan::EOverWrite); |
554 r = fileMan->Copy(filePathOld, filePathNew, CFileMan::ERecurse | CFileMan::EOverWrite); |
554 test(r == KErrNone || r == KErrTooBig); |
555 test_Value(r, r == KErrNone || r == KErrTooBig); |
555 |
556 |
556 |
557 |
557 // check SMALL files have been copied |
558 // check SMALL files have been copied |
558 RDir dir; |
559 RDir dir; |
559 r = dir.Open(TheFs, filePathNew, KEntryAttNormal); |
560 r = dir.Open(TheFs, filePathNew, KEntryAttNormal); |
560 test (r == KErrNone); |
561 test_KErrNone(r); |
561 TEntryArray entryArray; |
562 TEntryArray entryArray; |
562 r = dir.Read(entryArray); |
563 r = dir.Read(entryArray); |
563 test (r == KErrEof); |
564 test_Value(r, r == KErrEof); |
564 test(entryArray.Count() == 3); |
565 test(entryArray.Count() == 3); |
565 dir.Close(); |
566 dir.Close(); |
566 |
567 |
567 // then delete the new directory |
568 // then delete the new directory |
568 r = fileMan->Delete(filePathNew); |
569 r = fileMan->Delete(filePathNew); |
569 test(r == KErrNone); |
570 test_KErrNone(r); |
570 |
571 |
571 |
572 |
572 // attempt to copy to new directory again - this time with an observer |
573 // attempt to copy to new directory again - this time with an observer |
573 fileMan->SetObserver(observer); |
574 fileMan->SetObserver(observer); |
574 r = fileMan->Copy(filePathOld, filePathNew, CFileMan::ERecurse | CFileMan::EOverWrite); |
575 r = fileMan->Copy(filePathOld, filePathNew, CFileMan::ERecurse | CFileMan::EOverWrite); |
575 test(r == KErrNone || r == KErrTooBig); |
576 test_Value(r, r == KErrNone || r == KErrTooBig); |
576 |
577 |
577 // test that 3 small files were copied and 1 or 2 large files failed to copy |
578 // test that 3 small files were copied and 1 or 2 large files failed to copy |
578 // (For 8 GB disk, the 4GB file is missing) |
579 // (For 8 GB disk, the 4GB file is missing) |
579 test(observer->iNotifyEndedSuccesses == 3); |
580 test(observer->iNotifyEndedSuccesses == 3); |
580 test(observer->iNotifyEndedFailures == 1 || observer->iNotifyEndedFailures == 2); |
581 test(observer->iNotifyEndedFailures == 1 || observer->iNotifyEndedFailures == 2); |
581 |
582 |
582 // check SMALL files have been copied |
583 // check SMALL files have been copied |
583 r = dir.Open(TheFs, filePathNew, KEntryAttNormal); |
584 r = dir.Open(TheFs, filePathNew, KEntryAttNormal); |
584 test (r == KErrNone); |
585 test_KErrNone(r); |
585 r = dir.Read(entryArray); |
586 r = dir.Read(entryArray); |
586 test (r == KErrEof); |
587 test_Value(r, r == KErrEof); |
587 test(entryArray.Count() == 3); |
588 test(entryArray.Count() == 3); |
588 dir.Close(); |
589 dir.Close(); |
589 |
590 |
590 // then delete the new directory |
591 // then delete the new directory |
591 r = fileMan->Delete(filePathNew); |
592 r = fileMan->Delete(filePathNew); |
592 test(r == KErrNone); |
593 test_KErrNone(r); |
593 |
594 |
594 delete observer; |
595 delete observer; |
595 delete fileMan; |
596 delete fileMan; |
596 } |
597 } |
597 |
598 |
667 } |
668 } |
668 |
669 |
669 TInt r; |
670 TInt r; |
670 |
671 |
671 r = TheFs.CharToDrive(gDriveToTest, gDrive); |
672 r = TheFs.CharToDrive(gDriveToTest, gDrive); |
672 test(r==KErrNone); |
673 test_KErrNone(r); |
673 |
674 |
674 #ifdef __MOUNT_RAW_EXT__ |
675 #ifdef __MOUNT_RAW_EXT__ |
675 r=TheFs.FileSystemName(gOldFsName, gDrive); |
676 r=TheFs.FileSystemName(gOldFsName, gDrive); |
676 test(r==KErrNone); |
677 test_KErrNone(r); |
677 |
678 |
678 if (gOldFsName.CompareF(KFATName) != 0) |
679 if (gOldFsName.CompareF(KFATName) != 0) |
679 { |
680 { |
680 test.Printf(_L("Skipping test: Not a FAT drive\n")); |
681 test.Printf(_L("Skipping test: Not a FAT drive\n")); |
681 return; |
682 return; |
682 } |
683 } |
683 |
684 |
684 r = TheFs.AddExtension(KExtName); |
685 r = TheFs.AddExtension(KExtName); |
685 test(r==KErrNone || r==KErrAlreadyExists); |
686 test_Value(r, r == KErrNone || r==KErrAlreadyExists); |
686 r = TheFs.MountExtension(KExtName, gDrive); |
687 r = TheFs.MountExtension(KExtName, gDrive); |
687 test(r==KErrNone || r==KErrAlreadyExists); |
688 test_Value(r, r == KErrNone || r==KErrAlreadyExists); |
688 #endif |
689 #endif |
689 |
690 |
690 TVolumeInfo vi; |
691 TVolumeInfo vi; |
691 test((r = TheFs.Volume(vi, gDrive)) == KErrNone); |
692 test((r = TheFs.Volume(vi, gDrive)) == KErrNone); |
692 test.Printf(_L("vi.iSize = %ld\n"), vi.iSize); |
693 test.Printf(_L("vi.iSize = %ld\n"), vi.iSize); |