48 KErrAccessDenied to the write operation but EFat returns |
48 KErrAccessDenied to the write operation but EFat returns |
49 KErrNone... |
49 KErrNone... |
50 |
50 |
51 RFile f1; |
51 RFile f1; |
52 TInt r=f1.Open(TheFs,_L("TESTER"),EFileRead|EFileShareAny); |
52 TInt r=f1.Open(TheFs,_L("TESTER"),EFileRead|EFileShareAny); |
53 test(r==KErrNone); |
53 test_KErrNone(r); |
54 RFile f2; |
54 RFile f2; |
55 r=f2.Open(TheFs,_L("TESTER"),EFileWrite|EFileShareAny); |
55 r=f2.Open(TheFs,_L("TESTER"),EFileWrite|EFileShareAny); |
56 test(r==KErrNone); |
56 test_KErrNone(r); |
57 |
57 |
58 r=f2.Write(_L("0")); |
58 r=f2.Write(_L("0")); |
59 test.Printf(_L("returned %d"),r); |
59 test.Printf(_L("returned %d"),r); |
60 |
60 |
61 f1.Close(); |
61 f1.Close(); |
62 f2.Close(); |
62 f2.Close(); |
63 |
63 |
64 r=TheFs.Delete(_L("TESTER")); |
64 r=TheFs.Delete(_L("TESTER")); |
65 test(r==KErrNone); |
65 test_KErrNone(r); |
66 */ |
66 */ |
67 |
67 |
68 RFile f1; |
68 RFile f1; |
69 TInt r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
69 TInt r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
70 test(r==KErrNone); |
70 test_KErrNone(r); |
71 RFile f2; |
71 RFile f2; |
72 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
72 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
73 test(r==KErrInUse); |
73 test_Value(r, r == KErrInUse); |
74 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
74 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
75 test(r==KErrInUse); |
75 test_Value(r, r == KErrInUse); |
76 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
76 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
77 test(r==KErrInUse); |
77 test_Value(r, r == KErrInUse); |
78 f1.Close(); |
78 f1.Close(); |
79 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileWrite|EFileShareExclusive); |
79 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileWrite|EFileShareExclusive); |
80 test(r==KErrNone); |
80 test_KErrNone(r); |
81 f1.Close(); |
81 f1.Close(); |
82 |
82 |
83 test.Next(_L("Test readers only sharing")); |
83 test.Next(_L("Test readers only sharing")); |
84 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileWrite|EFileShareReadersOnly); |
84 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileWrite|EFileShareReadersOnly); |
85 test(r==KErrArgument); |
85 test_Value(r, r == KErrArgument); |
86 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
86 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
87 test(r==KErrNone); |
87 test_KErrNone(r); |
88 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
88 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
89 test(r==KErrInUse); |
89 test_Value(r, r == KErrInUse); |
90 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
90 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
91 test(r==KErrInUse); |
91 test_Value(r, r == KErrInUse); |
92 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileWrite|EFileShareReadersOnly); |
92 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileWrite|EFileShareReadersOnly); |
93 test(r==KErrArgument); |
93 test_Value(r, r == KErrArgument); |
94 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
94 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
95 test(r==KErrNone); |
95 test_KErrNone(r); |
96 f1.Close(); |
96 f1.Close(); |
97 f2.Close(); |
97 f2.Close(); |
98 |
98 |
99 test.Next(_L("Test any sharing")); |
99 test.Next(_L("Test any sharing")); |
100 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileWrite|EFileShareAny); |
100 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileWrite|EFileShareAny); |
101 test(r==KErrNone); |
101 test_KErrNone(r); |
102 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
102 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
103 test(r==KErrInUse); |
103 test_Value(r, r == KErrInUse); |
104 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
104 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
105 test(r==KErrInUse); |
105 test_Value(r, r == KErrInUse); |
106 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
106 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
107 test(r==KErrNone); |
107 test_KErrNone(r); |
108 f1.Close(); |
108 f1.Close(); |
109 f2.Close(); |
109 f2.Close(); |
110 |
110 |
111 test.End(); |
111 test.End(); |
112 } |
112 } |
119 |
119 |
120 test.Start(_L("Test change mode")); |
120 test.Start(_L("Test change mode")); |
121 RFile f1; |
121 RFile f1; |
122 RFile f2; |
122 RFile f2; |
123 TInt r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
123 TInt r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
124 test(r==KErrNone); // Opened exclusive |
124 test_KErrNone(r); // Opened exclusive |
125 r=f1.ChangeMode(EFileShareReadersOnly); |
125 r=f1.ChangeMode(EFileShareReadersOnly); |
126 test(r==KErrNone); // Change to readers only |
126 test_KErrNone(r); // Change to readers only |
127 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
127 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
128 test(r==KErrNone); // Open as reader |
128 test_KErrNone(r); // Open as reader |
129 r=f1.ChangeMode(EFileShareExclusive); |
129 r=f1.ChangeMode(EFileShareExclusive); |
130 test(r==KErrAccessDenied); // Change back to exclusive fails |
130 test_Value(r, r == KErrAccessDenied); // Change back to exclusive fails |
131 r=f2.ChangeMode(EFileShareExclusive); |
131 r=f2.ChangeMode(EFileShareExclusive); |
132 test(r==KErrAccessDenied); // Change to exclusive fails |
132 test_Value(r, r == KErrAccessDenied); // Change to exclusive fails |
133 f1.Close(); // Close other reader |
133 f1.Close(); // Close other reader |
134 r=f2.ChangeMode(EFileShareExclusive); |
134 r=f2.ChangeMode(EFileShareExclusive); |
135 test(r==KErrNone); // Change to exclusive succeeds. |
135 test_KErrNone(r); // Change to exclusive succeeds. |
136 f2.Close(); |
136 f2.Close(); |
137 |
137 |
138 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
138 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
139 test(r==KErrNone); // Opened readers only |
139 test_KErrNone(r); // Opened readers only |
140 r=f1.ChangeMode(EFileShareExclusive); |
140 r=f1.ChangeMode(EFileShareExclusive); |
141 test(r==KErrNone); // Change to exclusive |
141 test_KErrNone(r); // Change to exclusive |
142 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
142 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
143 test(r==KErrInUse); // Open as reader fails |
143 test_Value(r, r == KErrInUse); // Open as reader fails |
144 r=f1.ChangeMode(EFileShareReadersOnly); |
144 r=f1.ChangeMode(EFileShareReadersOnly); |
145 test(r==KErrNone); // Change to readers only |
145 test_KErrNone(r); // Change to readers only |
146 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
146 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
147 test(r==KErrNone); // Open as reader |
147 test_KErrNone(r); // Open as reader |
148 r=f1.ChangeMode(EFileShareExclusive); |
148 r=f1.ChangeMode(EFileShareExclusive); |
149 test(r==KErrAccessDenied); // Change back to exclusive fails |
149 test_Value(r, r == KErrAccessDenied); // Change back to exclusive fails |
150 r=f2.ChangeMode(EFileShareExclusive); |
150 r=f2.ChangeMode(EFileShareExclusive); |
151 test(r==KErrAccessDenied); // Change to exclusive fails |
151 test_Value(r, r == KErrAccessDenied); // Change to exclusive fails |
152 f1.Close(); // Close other reader |
152 f1.Close(); // Close other reader |
153 r=f2.ChangeMode(EFileShareExclusive); |
153 r=f2.ChangeMode(EFileShareExclusive); |
154 test(r==KErrNone); // Change to exclusive succeeds. |
154 test_KErrNone(r); // Change to exclusive succeeds. |
155 f2.Close(); |
155 f2.Close(); |
156 |
156 |
157 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileWrite|EFileShareExclusive); |
157 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileWrite|EFileShareExclusive); |
158 test(r==KErrNone); // Opened exclusive for writing |
158 test_KErrNone(r); // Opened exclusive for writing |
159 r=f1.ChangeMode(EFileShareReadersOnly); |
159 r=f1.ChangeMode(EFileShareReadersOnly); |
160 test(r==KErrAccessDenied); // Change to readers fails |
160 test_Value(r, r == KErrAccessDenied); // Change to readers fails |
161 r=f1.ChangeMode(EFileShareExclusive); |
161 r=f1.ChangeMode(EFileShareExclusive); |
162 test(r==KErrNone); // No change ok |
162 test_KErrNone(r); // No change ok |
163 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
163 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
164 test(r==KErrInUse); // Open as reader fails |
164 test_Value(r, r == KErrInUse); // Open as reader fails |
165 f1.Close(); |
165 f1.Close(); |
166 |
166 |
167 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
167 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
168 test(r==KErrNone); // Opened share any |
168 test_KErrNone(r); // Opened share any |
169 r=f1.ChangeMode(EFileShareExclusive); |
169 r=f1.ChangeMode(EFileShareExclusive); |
170 test(r==KErrAccessDenied); // Change to exclusive fails |
170 test_Value(r, r == KErrAccessDenied); // Change to exclusive fails |
171 r=f1.ChangeMode(EFileShareReadersOnly); |
171 r=f1.ChangeMode(EFileShareReadersOnly); |
172 test(r==KErrAccessDenied); // Change to readers only fails |
172 test_Value(r, r == KErrAccessDenied); // Change to readers only fails |
173 f1.Close(); |
173 f1.Close(); |
174 |
174 |
175 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
175 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
176 test(r==KErrNone); // Opened exclusive |
176 test_KErrNone(r); // Opened exclusive |
177 r=f1.ChangeMode(EFileShareAny); |
177 r=f1.ChangeMode(EFileShareAny); |
178 test(r==KErrArgument); // Change to share any fails KErrArgument |
178 test_Value(r, r == KErrArgument); // Change to share any fails KErrArgument |
179 r=f1.ChangeMode((TFileMode)42); |
179 r=f1.ChangeMode((TFileMode)42); |
180 test(r==KErrArgument); // Change to random value fails |
180 test_Value(r, r == KErrArgument); // Change to random value fails |
181 f1.Close(); |
181 f1.Close(); |
182 test.End(); |
182 test.End(); |
183 } |
183 } |
184 |
184 |
185 static void testReadFile() |
185 static void testReadFile() |
278 TFileName fn = _L("File.File"); |
278 TFileName fn = _L("File.File"); |
279 TBuf8<16> testData=_L8("testData"); |
279 TBuf8<16> testData=_L8("testData"); |
280 |
280 |
281 // write test 1 |
281 // write test 1 |
282 TInt r=file.Replace(TheFs,fn,EFileStreamText); |
282 TInt r=file.Replace(TheFs,fn,EFileStreamText); |
283 test(r==KErrNone); |
283 test_KErrNone(r); |
284 |
284 |
285 test.Next(_L("Write file")); |
285 test.Next(_L("Write file")); |
286 |
286 |
287 r=file.Write(testData); |
287 r=file.Write(testData); |
288 test(r==KErrNone); |
288 test_KErrNone(r); |
289 |
289 |
290 file.Close(); |
290 file.Close(); |
291 |
291 |
292 // test write modes |
292 // test write modes |
293 // test writing with EFileRead |
293 // test writing with EFileRead |
294 r=file.Open(TheFs,fn,EFileStreamText|EFileRead); |
294 r=file.Open(TheFs,fn,EFileStreamText|EFileRead); |
295 test(r==KErrNone); |
295 test_KErrNone(r); |
296 |
296 |
297 test.Next(_L("Write file")); |
297 test.Next(_L("Write file")); |
298 r=file.Write(testData); |
298 r=file.Write(testData); |
299 test(r==KErrAccessDenied); |
299 test_Value(r, r == KErrAccessDenied); |
300 file.Close(); |
300 file.Close(); |
301 |
301 |
302 // test writing with EFileWrite |
302 // test writing with EFileWrite |
303 r=file.Open(TheFs,fn,EFileStreamText|EFileWrite); |
303 r=file.Open(TheFs,fn,EFileStreamText|EFileWrite); |
304 test(r==KErrNone); |
304 test_KErrNone(r); |
305 |
305 |
306 test.Next(_L("Write file")); |
306 test.Next(_L("Write file")); |
307 r=file.Write(testData); |
307 r=file.Write(testData); |
308 test(r==KErrNone); |
308 test_KErrNone(r); |
309 file.Close(); |
309 file.Close(); |
310 |
310 |
311 // test writing with share mode EFileShareExclusive |
311 // test writing with share mode EFileShareExclusive |
312 r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareExclusive); |
312 r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareExclusive); |
313 test(r==KErrNone); |
313 test_KErrNone(r); |
314 |
314 |
315 test.Next(_L("Write file")); |
315 test.Next(_L("Write file")); |
316 r=file.Write(testData); |
316 r=file.Write(testData); |
317 test(r==KErrNone); |
317 test_KErrNone(r); |
318 file.Close(); |
318 file.Close(); |
319 |
319 |
320 // test writing with share mode EFileShareReadersOnly (fails with KErrArgument) |
320 // test writing with share mode EFileShareReadersOnly (fails with KErrArgument) |
321 r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareReadersOnly); |
321 r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareReadersOnly); |
322 test(r==KErrArgument); |
322 test_Value(r, r == KErrArgument); |
323 |
323 |
324 // test writing with share mode EFileShareReadersOrWriters |
324 // test writing with share mode EFileShareReadersOrWriters |
325 r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareReadersOrWriters); |
325 r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareReadersOrWriters); |
326 test(r==KErrNone); |
326 test_KErrNone(r); |
327 |
327 |
328 test.Next(_L("Write file")); |
328 test.Next(_L("Write file")); |
329 r=file.Write(testData); |
329 r=file.Write(testData); |
330 test(r==KErrNone); |
330 test_KErrNone(r); |
331 file.Close(); |
331 file.Close(); |
332 |
332 |
333 // test writing with share mode EFileShareAny |
333 // test writing with share mode EFileShareAny |
334 r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareAny); |
334 r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareAny); |
335 test(r==KErrNone); |
335 test_KErrNone(r); |
336 |
336 |
337 test.Next(_L("Write file")); |
337 test.Next(_L("Write file")); |
338 r=file.Write(testData); |
338 r=file.Write(testData); |
339 test(r==KErrNone); |
339 test_KErrNone(r); |
340 file.Close(); |
340 file.Close(); |
341 |
341 |
342 // tidy up |
342 // tidy up |
343 r=TheFs.Delete(fn); |
343 r=TheFs.Delete(fn); |
344 test(r==KErrNone); |
344 test_KErrNone(r); |
345 |
345 |
346 test.End(); |
346 test.End(); |
347 } |
347 } |
348 |
348 |
349 static void CopyFileToTestDirectory() |
349 static void CopyFileToTestDirectory() |
487 trecord[1].Set((TUint8*)tmpTextrecord.Ptr(),tmpTextrecord.Length()*sizeof(TText)); |
487 trecord[1].Set((TUint8*)tmpTextrecord.Ptr(),tmpTextrecord.Length()*sizeof(TText)); |
488 |
488 |
489 for (i=0;i<2;i++) |
489 for (i=0;i<2;i++) |
490 { |
490 { |
491 r=f.Write(trecord[i]); |
491 r=f.Write(trecord[i]); |
492 test(r==KErrNone); |
492 test_KErrNone(r); |
493 } |
493 } |
494 textFile.Set(f); |
494 textFile.Set(f); |
495 textFile.Seek(ESeekStart); |
495 textFile.Seek(ESeekStart); |
496 for(i=0;i<2;i++) |
496 for(i=0;i<2;i++) |
497 { |
497 { |
498 r=textFile.Read(recBuf); |
498 r=textFile.Read(recBuf); |
499 test(r==KErrNone); |
499 test_KErrNone(r); |
500 test(recBuf==record[0]); |
500 test(recBuf==record[0]); |
501 } |
501 } |
502 r=textFile.Read(recBuf); |
502 r=textFile.Read(recBuf); |
503 test(r==KErrEof); |
503 test_Value(r, r == KErrEof); |
504 test(recBuf.Length()==0); |
504 test(recBuf.Length()==0); |
505 f.Close(); |
505 f.Close(); |
506 |
506 |
507 test.Next(_L("Read into a buffer < recordSize")); |
507 test.Next(_L("Read into a buffer < recordSize")); |
508 TBuf<8> smallBuf; |
508 TBuf<8> smallBuf; |
509 r=f.Open(TheFs,_L("TEXTFILE.txt"),0); |
509 r=f.Open(TheFs,_L("TEXTFILE.txt"),0); |
510 test(r==KErrNone); |
510 test_KErrNone(r); |
511 textFile.Set(f); |
511 textFile.Set(f); |
512 for(i=0;i<2;i++) |
512 for(i=0;i<2;i++) |
513 { |
513 { |
514 r=textFile.Read(smallBuf); |
514 r=textFile.Read(smallBuf); |
515 test(r==KErrTooBig); |
515 test_Value(r, r == KErrTooBig); |
516 test(smallBuf==_L("12345678")); |
516 test(smallBuf==_L("12345678")); |
517 } |
517 } |
518 f.Close(); |
518 f.Close(); |
519 |
519 |
520 test.Next(_L("Nasty cases: 1) \\r \\n split over buffer boundary")); |
520 test.Next(_L("Nasty cases: 1) \\r \\n split over buffer boundary")); |
521 r=f.Replace(TheFs,_L("TEXTFILE.txt"),0); |
521 r=f.Replace(TheFs,_L("TEXTFILE.txt"),0); |
522 test(r==KErrNone); |
522 test_KErrNone(r); |
523 HBufC* largeRecord=HBufC::NewL(600); |
523 HBufC* largeRecord=HBufC::NewL(600); |
524 largeRecord->Des().SetLength(250); |
524 largeRecord->Des().SetLength(250); |
525 largeRecord->Des().Fill('A'); |
525 largeRecord->Des().Fill('A'); |
526 largeRecord->Des()[249]='\n'; |
526 largeRecord->Des()[249]='\n'; |
527 TPtrC8 bufPtr; |
527 TPtrC8 bufPtr; |
528 bufPtr.Set((TUint8*)largeRecord->Ptr(),largeRecord->Size()); // Size() returns length in bytes |
528 bufPtr.Set((TUint8*)largeRecord->Ptr(),largeRecord->Size()); // Size() returns length in bytes |
529 r=f.Write(bufPtr); |
529 r=f.Write(bufPtr); |
530 test(r==KErrNone); |
530 test_KErrNone(r); |
531 TBuf<16> boundaryBuf=_L("12345\r\n"); |
531 TBuf<16> boundaryBuf=_L("12345\r\n"); |
532 bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size()); |
532 bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size()); |
533 r=f.Write(bufPtr); |
533 r=f.Write(bufPtr); |
534 test(r==KErrNone); |
534 test_KErrNone(r); |
535 r=f.Write(trecord[0]); |
535 r=f.Write(trecord[0]); |
536 test(r==KErrNone); |
536 test_KErrNone(r); |
537 |
537 |
538 textFile.Set(f); |
538 textFile.Set(f); |
539 textFile.Seek(ESeekStart); |
539 textFile.Seek(ESeekStart); |
540 r=textFile.Read(recBuf); |
540 r=textFile.Read(recBuf); |
541 test(r==KErrTooBig); |
541 test_Value(r, r == KErrTooBig); |
542 test(recBuf==_L("AAAAAAAAAAAAAAAA")); |
542 test(recBuf==_L("AAAAAAAAAAAAAAAA")); |
543 r=textFile.Read(recBuf); |
543 r=textFile.Read(recBuf); |
544 test(r==KErrNone); |
544 test_KErrNone(r); |
545 test(recBuf==_L("12345")); |
545 test(recBuf==_L("12345")); |
546 r=textFile.Read(recBuf); |
546 r=textFile.Read(recBuf); |
547 test(r==KErrNone); |
547 test_KErrNone(r); |
548 test(recBuf==record[0]); |
548 test(recBuf==record[0]); |
549 f.Close(); |
549 f.Close(); |
550 |
550 |
551 test.Next(_L("Nasty cases: 2) \\r on buffer boundary")); |
551 test.Next(_L("Nasty cases: 2) \\r on buffer boundary")); |
552 r=f.Replace(TheFs,_L("TEXTFILE.txt"),0); |
552 r=f.Replace(TheFs,_L("TEXTFILE.txt"),0); |
553 test(r==KErrNone); |
553 test_KErrNone(r); |
554 largeRecord->Des().SetLength(250); |
554 largeRecord->Des().SetLength(250); |
555 largeRecord->Des().Fill('A'); |
555 largeRecord->Des().Fill('A'); |
556 largeRecord->Des()[249]='\n'; |
556 largeRecord->Des()[249]='\n'; |
557 bufPtr.Set((TUint8*)largeRecord->Ptr(),largeRecord->Size()); |
557 bufPtr.Set((TUint8*)largeRecord->Ptr(),largeRecord->Size()); |
558 r=f.Write(bufPtr); |
558 r=f.Write(bufPtr); |
559 test(r==KErrNone); |
559 test_KErrNone(r); |
560 boundaryBuf=_L("12345\rxyz\n"); |
560 boundaryBuf=_L("12345\rxyz\n"); |
561 bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size()); |
561 bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size()); |
562 r=f.Write(bufPtr); |
562 r=f.Write(bufPtr); |
563 test(r==KErrNone); |
563 test_KErrNone(r); |
564 r=f.Write(trecord[0]); |
564 r=f.Write(trecord[0]); |
565 test(r==KErrNone); |
565 test_KErrNone(r); |
566 |
566 |
567 textFile.Set(f); |
567 textFile.Set(f); |
568 textFile.Seek(ESeekStart); |
568 textFile.Seek(ESeekStart); |
569 r=textFile.Read(recBuf); |
569 r=textFile.Read(recBuf); |
570 test(r==KErrTooBig); |
570 test_Value(r, r == KErrTooBig); |
571 test(recBuf==_L("AAAAAAAAAAAAAAAA")); |
571 test(recBuf==_L("AAAAAAAAAAAAAAAA")); |
572 r=textFile.Read(recBuf); |
572 r=textFile.Read(recBuf); |
573 test(r==KErrNone); |
573 test_KErrNone(r); |
574 test(recBuf==_L("12345\rxyz")); |
574 test(recBuf==_L("12345\rxyz")); |
575 r=textFile.Read(recBuf); |
575 r=textFile.Read(recBuf); |
576 test(r==KErrNone); |
576 test_KErrNone(r); |
577 test(recBuf==record[0]); |
577 test(recBuf==record[0]); |
578 f.Close(); |
578 f.Close(); |
579 |
579 |
580 test.Next(_L("Nasty cases: 3) record size > buffer size")); |
580 test.Next(_L("Nasty cases: 3) record size > buffer size")); |
581 r=f.Replace(TheFs,_L("TEXTFILE.txt"),0); |
581 r=f.Replace(TheFs,_L("TEXTFILE.txt"),0); |
582 test(r==KErrNone); |
582 test_KErrNone(r); |
583 largeRecord->Des().SetLength(600); |
583 largeRecord->Des().SetLength(600); |
584 largeRecord->Des().Fill('Z'); |
584 largeRecord->Des().Fill('Z'); |
585 largeRecord->Des()[511]='\r'; |
585 largeRecord->Des()[511]='\r'; |
586 largeRecord->Des()[599]='\n'; |
586 largeRecord->Des()[599]='\n'; |
587 bufPtr.Set((TUint8*)largeRecord->Ptr(),largeRecord->Size()); |
587 bufPtr.Set((TUint8*)largeRecord->Ptr(),largeRecord->Size()); |
588 r=f.Write(bufPtr); |
588 r=f.Write(bufPtr); |
589 test(r==KErrNone); |
589 test_KErrNone(r); |
590 boundaryBuf=_L("12345\rxyz\n"); |
590 boundaryBuf=_L("12345\rxyz\n"); |
591 bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size()); |
591 bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size()); |
592 r=f.Write(bufPtr); |
592 r=f.Write(bufPtr); |
593 test(r==KErrNone); |
593 test_KErrNone(r); |
594 r=f.Write(trecord[0]); |
594 r=f.Write(trecord[0]); |
595 test(r==KErrNone); |
595 test_KErrNone(r); |
596 |
596 |
597 textFile.Set(f); |
597 textFile.Set(f); |
598 textFile.Seek(ESeekStart); |
598 textFile.Seek(ESeekStart); |
599 r=textFile.Read(recBuf); |
599 r=textFile.Read(recBuf); |
600 test(r==KErrTooBig); |
600 test_Value(r, r == KErrTooBig); |
601 test(recBuf==_L("ZZZZZZZZZZZZZZZZ")); |
601 test(recBuf==_L("ZZZZZZZZZZZZZZZZ")); |
602 r=textFile.Read(recBuf); |
602 r=textFile.Read(recBuf); |
603 test(r==KErrNone); |
603 test_KErrNone(r); |
604 test(recBuf==_L("12345\rxyz")); |
604 test(recBuf==_L("12345\rxyz")); |
605 r=textFile.Read(recBuf); |
605 r=textFile.Read(recBuf); |
606 test(r==KErrNone); |
606 test_KErrNone(r); |
607 test(recBuf==record[0]); |
607 test(recBuf==record[0]); |
608 |
608 |
609 TBuf<601> bigBuf; |
609 TBuf<601> bigBuf; |
610 TPtrC largePtr((TText*)largeRecord->Ptr(),(largeRecord->Length()-1)); |
610 TPtrC largePtr((TText*)largeRecord->Ptr(),(largeRecord->Length()-1)); |
611 textFile.Seek(ESeekStart); |
611 textFile.Seek(ESeekStart); |
612 r=textFile.Read(bigBuf); |
612 r=textFile.Read(bigBuf); |
613 test(r==KErrNone); |
613 test_KErrNone(r); |
614 test(bigBuf==largePtr); |
614 test(bigBuf==largePtr); |
615 r=textFile.Read(recBuf); |
615 r=textFile.Read(recBuf); |
616 test(r==KErrNone); |
616 test_KErrNone(r); |
617 test(recBuf==_L("12345\rxyz")); |
617 test(recBuf==_L("12345\rxyz")); |
618 r=textFile.Read(recBuf); |
618 r=textFile.Read(recBuf); |
619 test(r==KErrNone); |
619 test_KErrNone(r); |
620 test(recBuf==record[0]); |
620 test(recBuf==record[0]); |
621 f.Close(); |
621 f.Close(); |
622 |
622 |
623 User::Free(largeRecord); |
623 User::Free(largeRecord); |
624 } |
624 } |
630 { |
630 { |
631 |
631 |
632 test.Next(_L("Test FileText last record has no terminator")); |
632 test.Next(_L("Test FileText last record has no terminator")); |
633 RFile f; |
633 RFile f; |
634 TInt r=f.Replace(TheFs,_L("TextFile"),0); |
634 TInt r=f.Replace(TheFs,_L("TextFile"),0); |
635 test(r==KErrNone); |
635 test_KErrNone(r); |
636 TPtrC8 bufPtr; |
636 TPtrC8 bufPtr; |
637 TBuf<16>boundaryBuf=_L("Record1\n"); |
637 TBuf<16>boundaryBuf=_L("Record1\n"); |
638 bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size()); |
638 bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size()); |
639 r=f.Write(bufPtr); |
639 r=f.Write(bufPtr); |
640 test(r==KErrNone); |
640 test_KErrNone(r); |
641 boundaryBuf=_L("Record2\n"); |
641 boundaryBuf=_L("Record2\n"); |
642 bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size()); |
642 bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size()); |
643 r=f.Write(bufPtr); |
643 r=f.Write(bufPtr); |
644 test(r==KErrNone); |
644 test_KErrNone(r); |
645 boundaryBuf=_L("Record3\n"); |
645 boundaryBuf=_L("Record3\n"); |
646 bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size()); |
646 bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size()); |
647 r=f.Write(bufPtr); |
647 r=f.Write(bufPtr); |
648 test(r==KErrNone); |
648 test_KErrNone(r); |
649 |
649 |
650 TFileText fText; |
650 TFileText fText; |
651 fText.Set(f); |
651 fText.Set(f); |
652 r=fText.Seek(ESeekStart); |
652 r=fText.Seek(ESeekStart); |
653 test(r==KErrNone); |
653 test_KErrNone(r); |
654 TBuf<32> recBuf; |
654 TBuf<32> recBuf; |
655 r=fText.Read(recBuf); |
655 r=fText.Read(recBuf); |
656 test(r==KErrNone); |
656 test_KErrNone(r); |
657 test(recBuf.MatchF(_L("record1"))!=KErrNotFound); |
657 test(recBuf.MatchF(_L("record1"))!=KErrNotFound); |
658 r=fText.Read(recBuf); |
658 r=fText.Read(recBuf); |
659 test(r==KErrNone); |
659 test_KErrNone(r); |
660 test(recBuf.MatchF(_L("record2"))!=KErrNotFound); |
660 test(recBuf.MatchF(_L("record2"))!=KErrNotFound); |
661 r=fText.Read(recBuf); |
661 r=fText.Read(recBuf); |
662 test(r==KErrNone); |
662 test_KErrNone(r); |
663 test(recBuf.MatchF(_L("record3"))!=KErrNotFound); |
663 test(recBuf.MatchF(_L("record3"))!=KErrNotFound); |
664 r=fText.Read(recBuf); |
664 r=fText.Read(recBuf); |
665 test(r==KErrEof); |
665 test_Value(r, r == KErrEof); |
666 test(recBuf.Length()==0); |
666 test(recBuf.Length()==0); |
667 f.Close(); |
667 f.Close(); |
668 |
668 |
669 TBuf<0x100> bigBuf(0x100); |
669 TBuf<0x100> bigBuf(0x100); |
670 bigBuf.Fill('A'); |
670 bigBuf.Fill('A'); |
671 r=f.Replace(TheFs,_L("TextFile"),0); |
671 r=f.Replace(TheFs,_L("TextFile"),0); |
672 test(r==KErrNone); |
672 test_KErrNone(r); |
673 |
673 |
674 bufPtr.Set((TUint8*)bigBuf.Ptr(),bigBuf.Size()); |
674 bufPtr.Set((TUint8*)bigBuf.Ptr(),bigBuf.Size()); |
675 r=f.Write(bufPtr); |
675 r=f.Write(bufPtr); |
676 test(r==KErrNone); |
676 test_KErrNone(r); |
677 |
677 |
678 fText.Set(f); |
678 fText.Set(f); |
679 r=fText.Seek(ESeekStart); |
679 r=fText.Seek(ESeekStart); |
680 test(r==KErrNone); |
680 test_KErrNone(r); |
681 bigBuf.SetLength(0); |
681 bigBuf.SetLength(0); |
682 r=fText.Read(bigBuf); |
682 r=fText.Read(bigBuf); |
683 test.Printf(_L("fText.Read returns %d\n"),r); |
683 test.Printf(_L("fText.Read returns %d\n"),r); |
684 test(r==KErrNone); |
684 test_KErrNone(r); |
685 test.Printf(_L("BigBuf.Length()==%d\n"),bigBuf.Length()); |
685 test.Printf(_L("BigBuf.Length()==%d\n"),bigBuf.Length()); |
686 test(bigBuf.Length()==0x100); |
686 test(bigBuf.Length()==0x100); |
687 r=fText.Read(bigBuf); |
687 r=fText.Read(bigBuf); |
688 test(r==KErrEof); |
688 test_Value(r, r == KErrEof); |
689 test(bigBuf.Length()==0); |
689 test(bigBuf.Length()==0); |
690 f.Close(); |
690 f.Close(); |
691 } |
691 } |
692 |
692 |
693 static void testFileNames() |
693 static void testFileNames() |
730 { |
730 { |
731 |
731 |
732 test.Next(_L("Archive att is set after creation")); |
732 test.Next(_L("Archive att is set after creation")); |
733 RFile f; |
733 RFile f; |
734 TInt r=TheFs.Delete(_L("FILEATT.ARC")); |
734 TInt r=TheFs.Delete(_L("FILEATT.ARC")); |
735 test(r==KErrNone || r==KErrNotFound); |
735 test_Value(r, r == KErrNone || r==KErrNotFound); |
736 r=f.Create(TheFs,_L("FILEATT.ARC"),EFileRead); |
736 r=f.Create(TheFs,_L("FILEATT.ARC"),EFileRead); |
737 test(r==KErrNone); |
737 test_KErrNone(r); |
738 TUint atts; |
738 TUint atts; |
739 r=f.Att(atts); |
739 r=f.Att(atts); |
740 test(r==KErrNone); |
740 test_KErrNone(r); |
741 test((atts&ATT_MASK)==KEntryAttArchive); |
741 test((atts&ATT_MASK)==KEntryAttArchive); |
742 TEntry fileAtt; |
742 TEntry fileAtt; |
743 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
743 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
744 test(r==KErrNone); |
744 test_KErrNone(r); |
745 test(fileAtt.iAtt==KEntryAttArchive); |
745 test(fileAtt.iAtt==KEntryAttArchive); |
746 f.Close(); |
746 f.Close(); |
747 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
747 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
748 test(r==KErrNone); |
748 test_KErrNone(r); |
749 test(fileAtt.iAtt==KEntryAttArchive); |
749 test(fileAtt.iAtt==KEntryAttArchive); |
750 |
750 |
751 test.Next(_L("Archive att is set after a write")); |
751 test.Next(_L("Archive att is set after a write")); |
752 TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive); |
752 TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive); |
753 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
753 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
754 test(r==KErrNone); |
754 test_KErrNone(r); |
755 test(fileAtt.iAtt==0); |
755 test(fileAtt.iAtt==0); |
756 r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite); |
756 r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite); |
757 test(r==KErrNone); |
757 test_KErrNone(r); |
758 r=f.Write(_L8("Hello World")); |
758 r=f.Write(_L8("Hello World")); |
759 test(r==KErrNone); |
759 test_KErrNone(r); |
760 r=f.Att(atts); |
760 r=f.Att(atts); |
761 test(r==KErrNone); |
761 test_KErrNone(r); |
762 test((atts&ATT_MASK)==KEntryAttArchive); |
762 test((atts&ATT_MASK)==KEntryAttArchive); |
763 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
763 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
764 test(r==KErrNone); |
764 test_KErrNone(r); |
765 test(fileAtt.iAtt==KEntryAttArchive); |
765 test(fileAtt.iAtt==KEntryAttArchive); |
766 f.Close(); |
766 f.Close(); |
767 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
767 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
768 test(r==KErrNone); |
768 test_KErrNone(r); |
769 test(fileAtt.iAtt==KEntryAttArchive); |
769 test(fileAtt.iAtt==KEntryAttArchive); |
770 |
770 |
771 test.Next(_L("Archive att is set after setsize")); |
771 test.Next(_L("Archive att is set after setsize")); |
772 TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive); |
772 TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive); |
773 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
773 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
774 test(r==KErrNone); |
774 test_KErrNone(r); |
775 test(fileAtt.iAtt==0); |
775 test(fileAtt.iAtt==0); |
776 r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite); |
776 r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite); |
777 test(r==KErrNone); |
777 test_KErrNone(r); |
778 r=f.SetSize(447); |
778 r=f.SetSize(447); |
779 test(r==KErrNone); |
779 test_KErrNone(r); |
780 TInt size; |
780 TInt size; |
781 r=f.Size(size); |
781 r=f.Size(size); |
782 test(r==KErrNone); |
782 test_KErrNone(r); |
783 test(size==447); |
783 test(size==447); |
784 r=f.Att(atts); |
784 r=f.Att(atts); |
785 test(r==KErrNone); |
785 test_KErrNone(r); |
786 test((atts&ATT_MASK)==KEntryAttArchive); |
786 test((atts&ATT_MASK)==KEntryAttArchive); |
787 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
787 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
788 test(r==KErrNone); |
788 test_KErrNone(r); |
789 test(fileAtt.iAtt==KEntryAttArchive); |
789 test(fileAtt.iAtt==KEntryAttArchive); |
790 f.Close(); |
790 f.Close(); |
791 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
791 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
792 test(r==KErrNone); |
792 test_KErrNone(r); |
793 test(fileAtt.iAtt==KEntryAttArchive); |
793 test(fileAtt.iAtt==KEntryAttArchive); |
794 |
794 |
795 test.Next(_L("Archive att is not set after open")); |
795 test.Next(_L("Archive att is not set after open")); |
796 r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive); |
796 r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive); |
797 test(r==KErrNone); |
797 test_KErrNone(r); |
798 r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite); |
798 r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite); |
799 test(r==KErrNone); |
799 test_KErrNone(r); |
800 r=f.Att(atts); |
800 r=f.Att(atts); |
801 test(r==KErrNone); |
801 test_KErrNone(r); |
802 test((atts&ATT_MASK)==0); |
802 test((atts&ATT_MASK)==0); |
803 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
803 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
804 test(r==KErrNone); |
804 test_KErrNone(r); |
805 test(fileAtt.iAtt==0); |
805 test(fileAtt.iAtt==0); |
806 f.Close(); |
806 f.Close(); |
807 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
807 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
808 test(r==KErrNone); |
808 test_KErrNone(r); |
809 test(fileAtt.iAtt==0); |
809 test(fileAtt.iAtt==0); |
810 |
810 |
811 test.Next(_L("Archive att is not set after a read")); |
811 test.Next(_L("Archive att is not set after a read")); |
812 TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive); |
812 TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive); |
813 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
813 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
814 test(r==KErrNone); |
814 test_KErrNone(r); |
815 test(fileAtt.iAtt==0); |
815 test(fileAtt.iAtt==0); |
816 r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite); |
816 r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite); |
817 test(r==KErrNone); |
817 test_KErrNone(r); |
818 TBuf8<16> readBuf; |
818 TBuf8<16> readBuf; |
819 r=f.Read(readBuf); |
819 r=f.Read(readBuf); |
820 test(r==KErrNone); |
820 test_KErrNone(r); |
821 r=f.Att(atts); |
821 r=f.Att(atts); |
822 test(r==KErrNone); |
822 test_KErrNone(r); |
823 test((atts&ATT_MASK)==0); |
823 test((atts&ATT_MASK)==0); |
824 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
824 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
825 test(r==KErrNone); |
825 test_KErrNone(r); |
826 test(fileAtt.iAtt==0); |
826 test(fileAtt.iAtt==0); |
827 f.Close(); |
827 f.Close(); |
828 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
828 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
829 test(r==KErrNone); |
829 test_KErrNone(r); |
830 test(fileAtt.iAtt==0); |
830 test(fileAtt.iAtt==0); |
831 |
831 |
832 test.Next(_L("Archive att is set after replace")); |
832 test.Next(_L("Archive att is set after replace")); |
833 r=f.Replace(TheFs,_L("FILEATT.ARC"),EFileWrite); |
833 r=f.Replace(TheFs,_L("FILEATT.ARC"),EFileWrite); |
834 test(r==KErrNone); |
834 test_KErrNone(r); |
835 r=f.Att(atts); |
835 r=f.Att(atts); |
836 test(r==KErrNone); |
836 test_KErrNone(r); |
837 test((atts&ATT_MASK)==KEntryAttArchive); |
837 test((atts&ATT_MASK)==KEntryAttArchive); |
838 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
838 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
839 test(r==KErrNone); |
839 test_KErrNone(r); |
840 test(fileAtt.iAtt==KEntryAttArchive); |
840 test(fileAtt.iAtt==KEntryAttArchive); |
841 f.Close(); |
841 f.Close(); |
842 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
842 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
843 test(r==KErrNone); |
843 test_KErrNone(r); |
844 test(fileAtt.iAtt==KEntryAttArchive); |
844 test(fileAtt.iAtt==KEntryAttArchive); |
845 |
845 |
846 test.Next(_L("Read only bit can be unset")); |
846 test.Next(_L("Read only bit can be unset")); |
847 r=TheFs.SetAtt(_L("FILEATT.ARC"),KEntryAttReadOnly|KEntryAttHidden,0); |
847 r=TheFs.SetAtt(_L("FILEATT.ARC"),KEntryAttReadOnly|KEntryAttHidden,0); |
848 test(r==KErrNone); |
848 test_KErrNone(r); |
849 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
849 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
850 test(r==KErrNone); |
850 test_KErrNone(r); |
851 test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive)); |
851 test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive)); |
852 |
852 |
853 r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttHidden); |
853 r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttHidden); |
854 test(r==KErrNone); |
854 test_KErrNone(r); |
855 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
855 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
856 test(r==KErrNone); |
856 test_KErrNone(r); |
857 test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttArchive)); |
857 test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttArchive)); |
858 |
858 |
859 r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttReadOnly); |
859 r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttReadOnly); |
860 test(r==KErrNone); |
860 test_KErrNone(r); |
861 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
861 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
862 test(r==KErrNone); |
862 test_KErrNone(r); |
863 test(fileAtt.iAtt==(KEntryAttArchive)); |
863 test(fileAtt.iAtt==(KEntryAttArchive)); |
864 |
864 |
865 r=TheFs.SetAtt(_L("FILEATT.ARC"),KEntryAttReadOnly|KEntryAttHidden,0); |
865 r=TheFs.SetAtt(_L("FILEATT.ARC"),KEntryAttReadOnly|KEntryAttHidden,0); |
866 test(r==KErrNone); |
866 test_KErrNone(r); |
867 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
867 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
868 test(r==KErrNone); |
868 test_KErrNone(r); |
869 test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive)); |
869 test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive)); |
870 |
870 |
871 r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttReadOnly); |
871 r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttReadOnly); |
872 test(r==KErrNone); |
872 test_KErrNone(r); |
873 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
873 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
874 test(r==KErrNone); |
874 test_KErrNone(r); |
875 test(fileAtt.iAtt==(KEntryAttHidden|KEntryAttArchive)); |
875 test(fileAtt.iAtt==(KEntryAttHidden|KEntryAttArchive)); |
876 |
876 |
877 r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttHidden); |
877 r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttHidden); |
878 test(r==KErrNone); |
878 test_KErrNone(r); |
879 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
879 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
880 test(r==KErrNone); |
880 test_KErrNone(r); |
881 test(fileAtt.iAtt==(KEntryAttArchive)); |
881 test(fileAtt.iAtt==(KEntryAttArchive)); |
882 |
882 |
883 TTime time(0); |
883 TTime time(0); |
884 r=TheFs.SetEntry(_L("FILEATT.ARC"),time,KEntryAttReadOnly|KEntryAttHidden,0); |
884 r=TheFs.SetEntry(_L("FILEATT.ARC"),time,KEntryAttReadOnly|KEntryAttHidden,0); |
885 test(r==KErrNone); |
885 test_KErrNone(r); |
886 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
886 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
887 test(r==KErrNone); |
887 test_KErrNone(r); |
888 test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive)); |
888 test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive)); |
889 |
889 |
890 r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttHidden); |
890 r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttHidden); |
891 test(r==KErrNone); |
891 test_KErrNone(r); |
892 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
892 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
893 test(r==KErrNone); |
893 test_KErrNone(r); |
894 test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttArchive)); |
894 test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttArchive)); |
895 |
895 |
896 r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttReadOnly); |
896 r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttReadOnly); |
897 test(r==KErrNone); |
897 test_KErrNone(r); |
898 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
898 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
899 test(r==KErrNone); |
899 test_KErrNone(r); |
900 test(fileAtt.iAtt==(KEntryAttArchive)); |
900 test(fileAtt.iAtt==(KEntryAttArchive)); |
901 |
901 |
902 r=TheFs.SetEntry(_L("FILEATT.ARC"),time,KEntryAttReadOnly|KEntryAttHidden,0); |
902 r=TheFs.SetEntry(_L("FILEATT.ARC"),time,KEntryAttReadOnly|KEntryAttHidden,0); |
903 test(r==KErrNone); |
903 test_KErrNone(r); |
904 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
904 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
905 test(r==KErrNone); |
905 test_KErrNone(r); |
906 test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive)); |
906 test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive)); |
907 |
907 |
908 r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttReadOnly); |
908 r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttReadOnly); |
909 test(r==KErrNone); |
909 test_KErrNone(r); |
910 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
910 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
911 test(r==KErrNone); |
911 test_KErrNone(r); |
912 test(fileAtt.iAtt==(KEntryAttHidden|KEntryAttArchive)); |
912 test(fileAtt.iAtt==(KEntryAttHidden|KEntryAttArchive)); |
913 |
913 |
914 r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttHidden); |
914 r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttHidden); |
915 test(r==KErrNone); |
915 test_KErrNone(r); |
916 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
916 r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt); |
917 test(r==KErrNone); |
917 test_KErrNone(r); |
918 test(fileAtt.iAtt==(KEntryAttArchive)); |
918 test(fileAtt.iAtt==(KEntryAttArchive)); |
919 |
919 |
920 test.Next(_L("Cashing the 'read-only' attribute")); |
920 test.Next(_L("Cashing the 'read-only' attribute")); |
921 const TDesC& fname = _L("TEST.RO"); |
921 const TDesC& fname = _L("TEST.RO"); |
922 |
922 |
923 // Test RO attribute after creating a file |
923 // Test RO attribute after creating a file |
924 r=f.Create(TheFs,fname,EFileWrite); |
924 r=f.Create(TheFs,fname,EFileWrite); |
925 test(r==KErrNone); |
925 test_KErrNone(r); |
926 r=f.SetAtt(KEntryAttReadOnly,0); |
926 r=f.SetAtt(KEntryAttReadOnly,0); |
927 test(r==KErrNone); |
927 test_KErrNone(r); |
928 r=f.Write(_L8("Hello World")); |
928 r=f.Write(_L8("Hello World")); |
929 test(r==KErrNone); // <-- here! |
929 test_KErrNone(r); // <-- here! |
930 f.Close(); |
930 f.Close(); |
931 |
931 |
932 // Test we can't open for write or delete a RO file |
932 // Test we can't open for write or delete a RO file |
933 r=f.Open(TheFs,fname,EFileWrite); |
933 r=f.Open(TheFs,fname,EFileWrite); |
934 test(r==KErrAccessDenied); |
934 test_Value(r, r == KErrAccessDenied); |
935 r=TheFs.Delete(fname); |
935 r=TheFs.Delete(fname); |
936 test(r==KErrAccessDenied); |
936 test_Value(r, r == KErrAccessDenied); |
937 |
937 |
938 // Tidy up and re-create test file |
938 // Tidy up and re-create test file |
939 r=TheFs.SetAtt(fname,0,KEntryAttReadOnly); |
939 r=TheFs.SetAtt(fname,0,KEntryAttReadOnly); |
940 test(r==KErrNone); |
940 test_KErrNone(r); |
941 r=TheFs.Delete(fname); |
941 r=TheFs.Delete(fname); |
942 test(r==KErrNone); |
942 test_KErrNone(r); |
943 r=f.Create(TheFs,fname,EFileWrite); |
943 r=f.Create(TheFs,fname,EFileWrite); |
944 test(r==KErrNone); |
944 test_KErrNone(r); |
945 f.Close(); |
945 f.Close(); |
946 |
946 |
947 // Test RO attribute after opening a file |
947 // Test RO attribute after opening a file |
948 r=f.Open(TheFs,fname,EFileWrite); |
948 r=f.Open(TheFs,fname,EFileWrite); |
949 test(r==KErrNone); |
949 test_KErrNone(r); |
950 r=f.SetAtt(KEntryAttReadOnly,0); |
950 r=f.SetAtt(KEntryAttReadOnly,0); |
951 test(r==KErrNone); |
951 test_KErrNone(r); |
952 r=f.Write(_L8("Hello World")); |
952 r=f.Write(_L8("Hello World")); |
953 test(r==KErrNone); |
953 test_KErrNone(r); |
954 f.Close(); |
954 f.Close(); |
955 |
955 |
956 // Tidy up |
956 // Tidy up |
957 r=TheFs.SetAtt(fname,0,KEntryAttReadOnly); |
957 r=TheFs.SetAtt(fname,0,KEntryAttReadOnly); |
958 test(r==KErrNone); |
958 test_KErrNone(r); |
959 r=TheFs.Delete(fname); |
959 r=TheFs.Delete(fname); |
960 test(r==KErrNone); |
960 test_KErrNone(r); |
961 } |
961 } |
962 |
962 |
963 static void testShortNameAccessorFunctions() |
963 static void testShortNameAccessorFunctions() |
964 // |
964 // |
965 // Test RFs::GetShortName(...) |
965 // Test RFs::GetShortName(...) |
1033 TFileName longName5; |
1033 TFileName longName5; |
1034 |
1034 |
1035 if (Is_Win32(TheFs, gDriveNum)) |
1035 if (Is_Win32(TheFs, gDriveNum)) |
1036 { |
1036 { |
1037 r=TheFs.GetLongName(_L("LONGFI~1.LON"),longName1); |
1037 r=TheFs.GetLongName(_L("LONGFI~1.LON"),longName1); |
1038 test(r==KErrNone); |
1038 test_KErrNone(r); |
1039 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\LONGFI~1.LON"),longName2); |
1039 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\LONGFI~1.LON"),longName2); |
1040 test(r==KErrNone); |
1040 test_KErrNone(r); |
1041 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\BADCHA~1"),longName3); |
1041 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\BADCHA~1"),longName3); |
1042 test(r==KErrNone); |
1042 test_KErrNone(r); |
1043 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\GOODCHAR.TXT"),longName4); |
1043 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\GOODCHAR.TXT"),longName4); |
1044 test(r==KErrNone); |
1044 test_KErrNone(r); |
1045 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE~1"),longName5); |
1045 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE~1"),longName5); |
1046 test(r==KErrNone); |
1046 test_KErrNone(r); |
1047 } |
1047 } |
1048 else if (!IsTestingLFFS()) |
1048 else if (!IsTestingLFFS()) |
1049 { |
1049 { |
1050 r=TheFs.GetLongName(_L("LONGFI~1.LON"),longName1); |
1050 r=TheFs.GetLongName(_L("LONGFI~1.LON"),longName1); |
1051 test(r==KErrNone); |
1051 test_KErrNone(r); |
1052 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\LONGFI~1.LON"),longName2); |
1052 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\LONGFI~1.LON"),longName2); |
1053 test(r==KErrNone); |
1053 test_KErrNone(r); |
1054 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\BAD_CHAR"),longName3); |
1054 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\BAD_CHAR"),longName3); |
1055 test(r==KErrNone); |
1055 test_KErrNone(r); |
1056 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\GOODCHAR.TXT"),longName4); |
1056 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\GOODCHAR.TXT"),longName4); |
1057 test(r==KErrNone); |
1057 test_KErrNone(r); |
1058 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE~1"),longName5); |
1058 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE~1"),longName5); |
1059 test(r==KErrNone); |
1059 test_KErrNone(r); |
1060 } |
1060 } |
1061 else |
1061 else |
1062 { |
1062 { |
1063 // LFFS longname tests |
1063 // LFFS longname tests |
1064 r=TheFs.GetLongName(shortName1,longName1); |
1064 r=TheFs.GetLongName(shortName1,longName1); |
1065 test(r==KErrNone); |
1065 test_KErrNone(r); |
1066 r=TheFs.SetSessionPath(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\")); |
1066 r=TheFs.SetSessionPath(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\")); |
1067 test(r==KErrNone); |
1067 test_KErrNone(r); |
1068 r=TheFs.GetLongName(shortName2,longName2); |
1068 r=TheFs.GetLongName(shortName2,longName2); |
1069 test(r==KErrNone); |
1069 test_KErrNone(r); |
1070 r=TheFs.GetLongName(shortName3,longName3); |
1070 r=TheFs.GetLongName(shortName3,longName3); |
1071 test(r==KErrNone); |
1071 test_KErrNone(r); |
1072 r=TheFs.GetLongName(shortName4,longName4); |
1072 r=TheFs.GetLongName(shortName4,longName4); |
1073 test(r==KErrNone); |
1073 test_KErrNone(r); |
1074 r=TheFs.SetSessionPath(_L("\\F32-TST\\TFILE\\TOPLEVEL\\")); |
1074 r=TheFs.SetSessionPath(_L("\\F32-TST\\TFILE\\TOPLEVEL\\")); |
1075 test(r==KErrNone); |
1075 test_KErrNone(r); |
1076 r=TheFs.GetLongName(shortName5,longName5); |
1076 r=TheFs.GetLongName(shortName5,longName5); |
1077 test(r==KErrNone); |
1077 test_KErrNone(r); |
1078 r=TheFs.SetSessionPath(sessionPath); |
1078 r=TheFs.SetSessionPath(sessionPath); |
1079 test(r==KErrNone); |
1079 test_KErrNone(r); |
1080 } |
1080 } |
1081 |
1081 |
1082 test(longName1==_L("LONGFILENAME.LONGEXT")); |
1082 test(longName1==_L("LONGFILENAME.LONGEXT")); |
1083 test(longName2==_L("LONGFILENAME.LONGEXT")); |
1083 test(longName2==_L("LONGFILENAME.LONGEXT")); |
1084 test(longName3==_L("BAD CHAR")); |
1084 test(longName3==_L("BAD CHAR")); |
1085 test(longName4.FindF(_L("GOODCHAR.TXT"))>=0); |
1085 test(longName4.FindF(_L("GOODCHAR.TXT"))>=0); |
1086 test(longName5==_L("MIDDLE-DIRECTORY")); |
1086 test(longName5==_L("MIDDLE-DIRECTORY")); |
1087 |
1087 |
1088 r=TheFs.GetShortName(_L("XXX.YYY"),shortName1); |
1088 r=TheFs.GetShortName(_L("XXX.YYY"),shortName1); |
1089 test(r==KErrNotFound); |
1089 test_Value(r, r == KErrNotFound); |
1090 r=TheFs.GetShortName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-YROTCERID\\LASTDIR\\BAD-CHAR"),shortName1); |
1090 r=TheFs.GetShortName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-YROTCERID\\LASTDIR\\BAD-CHAR"),shortName1); |
1091 test(r==KErrPathNotFound); |
1091 test_Value(r, r == KErrPathNotFound); |
1092 r=TheFs.GetLongName(_L("XXX.YYY"),longName1); |
1092 r=TheFs.GetLongName(_L("XXX.YYY"),longName1); |
1093 test(r==KErrNotFound); |
1093 test_Value(r, r == KErrNotFound); |
1094 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-YROTCERID\\LASTDIR\\BAD-CHAR"),longName1); |
1094 r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-YROTCERID\\LASTDIR\\BAD-CHAR"),longName1); |
1095 test(r==KErrPathNotFound); |
1095 test_Value(r, r == KErrPathNotFound); |
1096 |
1096 |
1097 r=TheFs.Delete(_L("LONGFILENAME.LONGEXT")); |
1097 r=TheFs.Delete(_L("LONGFILENAME.LONGEXT")); |
1098 test(r==KErrNone); |
1098 test_KErrNone(r); |
1099 |
1099 |
1100 TEntry romEntry; |
1100 TEntry romEntry; |
1101 r=TheFs.Entry(_L("Z:\\System"),romEntry); |
1101 r=TheFs.Entry(_L("Z:\\System"),romEntry); |
1102 if (r==KErrNotReady) |
1102 if (r==KErrNotReady) |
1103 { |
1103 { |
1104 test.Printf(_L("ERROR: No rom filesystem present")); |
1104 test.Printf(_L("ERROR: No rom filesystem present")); |
1105 //test.Getch(); |
1105 //test.Getch(); |
1106 //return; |
1106 //return; |
1107 } |
1107 } |
1108 test(r==KErrNone); |
1108 test_KErrNone(r); |
1109 TBuf<64> romFileName=_L("Z:\\"); |
1109 TBuf<64> romFileName=_L("Z:\\"); |
1110 romFileName.Append(romEntry.iName); |
1110 romFileName.Append(romEntry.iName); |
1111 r=TheFs.GetShortName(romFileName,shortName1); |
1111 r=TheFs.GetShortName(romFileName,shortName1); |
1112 test(r==KErrNotSupported); |
1112 test_Value(r, r == KErrNotSupported); |
1113 r=TheFs.GetLongName(_L("Z:\\system"),longName1); |
1113 r=TheFs.GetLongName(_L("Z:\\system"),longName1); |
1114 test(r==KErrNotSupported); |
1114 test_Value(r, r == KErrNotSupported); |
1115 } |
1115 } |
1116 |
1116 |
1117 static void RmDir(const TDesC& aDirName) |
1117 static void RmDir(const TDesC& aDirName) |
1118 // |
1118 // |
1119 // Remove a directory |
1119 // Remove a directory |
1120 // |
1120 // |
1121 { |
1121 { |
1122 CFileMan* fMan=CFileMan::NewL(TheFs); |
1122 CFileMan* fMan=CFileMan::NewL(TheFs); |
1123 test(fMan!=NULL); |
1123 test(fMan!=NULL); |
1124 TInt r=TheFs.SessionPath(gSessionPath); |
1124 TInt r=TheFs.SessionPath(gSessionPath); |
1125 test(r==KErrNone); |
1125 test_KErrNone(r); |
1126 r=TheFs.CheckDisk(gSessionPath); |
1126 r=TheFs.CheckDisk(gSessionPath); |
1127 if (r!=KErrNone && r!=KErrNotSupported) |
1127 if (r!=KErrNone && r!=KErrNotSupported) |
1128 ReportCheckDiskFailure(r); |
1128 ReportCheckDiskFailure(r); |
1129 |
1129 |
1130 TFileName removeDirName = gSessionPath; |
1130 TFileName removeDirName = gSessionPath; |
1131 removeDirName.Append(aDirName); |
1131 removeDirName.Append(aDirName); |
1132 |
1132 |
1133 fMan->Attribs(removeDirName, 0, KEntryAttReadOnly, 0, CFileMan::ERecurse); |
1133 fMan->Attribs(removeDirName, 0, KEntryAttReadOnly, 0, CFileMan::ERecurse); |
1134 r=fMan->RmDir(removeDirName); |
1134 r=fMan->RmDir(removeDirName); |
1135 test(r==KErrNone || r==KErrNotFound || r==KErrPathNotFound); |
1135 test_Value(r, r == KErrNone || r==KErrNotFound || r==KErrPathNotFound); |
1136 |
1136 |
1137 delete fMan; |
1137 delete fMan; |
1138 } |
1138 } |
1139 //--------------------------------------------- |
1139 //--------------------------------------------- |
1140 //! @SYMTestCaseID PBASE-T_TFILE-0659 |
1140 //! @SYMTestCaseID PBASE-T_TFILE-0659 |
1253 |
1253 |
1254 test.Next(_L("Test opened files cannot be deleted")); |
1254 test.Next(_L("Test opened files cannot be deleted")); |
1255 RFile f; |
1255 RFile f; |
1256 f.Close(); |
1256 f.Close(); |
1257 TInt r=f.Replace(TheFs,_L("Open.File"),EFileWrite); |
1257 TInt r=f.Replace(TheFs,_L("Open.File"),EFileWrite); |
1258 test(r==KErrNone); |
1258 test_KErrNone(r); |
1259 r=TheFs.Delete(_L("OPEN.FILE")); |
1259 r=TheFs.Delete(_L("OPEN.FILE")); |
1260 test(r==KErrInUse); |
1260 test_Value(r, r == KErrInUse); |
1261 f.Close(); |
1261 f.Close(); |
1262 f.Close(); |
1262 f.Close(); |
1263 f.Close(); |
1263 f.Close(); |
1264 r=TheFs.Delete(_L("Open.FILe")); |
1264 r=TheFs.Delete(_L("Open.FILe")); |
1265 test(r==KErrNone); |
1265 test_KErrNone(r); |
1266 |
1266 |
1267 TFileName fileName; |
1267 TFileName fileName; |
1268 r=f.Temp(TheFs,_L(""),fileName,EFileWrite); |
1268 r=f.Temp(TheFs,_L(""),fileName,EFileWrite); |
1269 test(r==KErrNone); |
1269 test_KErrNone(r); |
1270 r=TheFs.Delete(fileName); |
1270 r=TheFs.Delete(fileName); |
1271 test(r==KErrInUse); |
1271 test_Value(r, r == KErrInUse); |
1272 f.Close(); |
1272 f.Close(); |
1273 r=TheFs.Delete(fileName); |
1273 r=TheFs.Delete(fileName); |
1274 test(r==KErrNone); |
1274 test_KErrNone(r); |
1275 |
1275 |
1276 MakeFile(_L("\\Documents\\TEstfile.txt")); |
1276 MakeFile(_L("\\Documents\\TEstfile.txt")); |
1277 r=f.Open(TheFs,_L("\\Documents\\TEstfile.txt"),EFileWrite); |
1277 r=f.Open(TheFs,_L("\\Documents\\TEstfile.txt"),EFileWrite); |
1278 test(r==KErrNone); |
1278 test_KErrNone(r); |
1279 r=TheFs.Delete(_L("\\Documents\\TEstfile.txt")); |
1279 r=TheFs.Delete(_L("\\Documents\\TEstfile.txt")); |
1280 test(r==KErrInUse); |
1280 test_Value(r, r == KErrInUse); |
1281 r=TheFs.Delete(_L("\\documents\\TEstfile.txt")); |
1281 r=TheFs.Delete(_L("\\documents\\TEstfile.txt")); |
1282 test(r==KErrInUse); |
1282 test_Value(r, r == KErrInUse); |
1283 r=TheFs.Delete(_L("\\Documents.\\TEstfile.txt")); |
1283 r=TheFs.Delete(_L("\\Documents.\\TEstfile.txt")); |
1284 test(r==KErrBadName); |
1284 test_Value(r, r == KErrBadName); |
1285 r=TheFs.Delete(_L("\\documents.\\TEstfile.txt")); |
1285 r=TheFs.Delete(_L("\\documents.\\TEstfile.txt")); |
1286 test(r==KErrBadName); |
1286 test_Value(r, r == KErrBadName); |
1287 r=TheFs.Delete(_L("\\Documents\\Testfile.txt")); |
1287 r=TheFs.Delete(_L("\\Documents\\Testfile.txt")); |
1288 test(r==KErrInUse); |
1288 test_Value(r, r == KErrInUse); |
1289 r=TheFs.Delete(_L("\\documents\\testfile.txt")); |
1289 r=TheFs.Delete(_L("\\documents\\testfile.txt")); |
1290 test(r==KErrInUse); |
1290 test_Value(r, r == KErrInUse); |
1291 r=TheFs.Delete(_L("\\Documents.\\TEstfile.TXT")); |
1291 r=TheFs.Delete(_L("\\Documents.\\TEstfile.TXT")); |
1292 test(r==KErrBadName); |
1292 test_Value(r, r == KErrBadName); |
1293 r=TheFs.Delete(_L("\\docUMENTS.\\TESTFILE.TXT")); |
1293 r=TheFs.Delete(_L("\\docUMENTS.\\TESTFILE.TXT")); |
1294 test(r==KErrBadName); |
1294 test_Value(r, r == KErrBadName); |
1295 f.Close(); |
1295 f.Close(); |
1296 r=TheFs.Delete(_L("\\Documents\\TEstfile.TXT")); |
1296 r=TheFs.Delete(_L("\\Documents\\TEstfile.TXT")); |
1297 test(r==KErrNone); |
1297 test_KErrNone(r); |
1298 |
1298 |
1299 MakeFile(_L("\\Documents\\Documents\\TEstfile.txt")); |
1299 MakeFile(_L("\\Documents\\Documents\\TEstfile.txt")); |
1300 r=f.Open(TheFs,_L("\\Documents\\Documents\\TEstfile.txt"),EFileWrite); |
1300 r=f.Open(TheFs,_L("\\Documents\\Documents\\TEstfile.txt"),EFileWrite); |
1301 test(r==KErrNone); |
1301 test_KErrNone(r); |
1302 r=TheFs.Delete(_L("\\Documents\\documents.\\TEstfile.txt")); |
1302 r=TheFs.Delete(_L("\\Documents\\documents.\\TEstfile.txt")); |
1303 test(r==KErrBadName); |
1303 test_Value(r, r == KErrBadName); |
1304 r=TheFs.Delete(_L("\\documents\\Documents.\\TEstfile.txt")); |
1304 r=TheFs.Delete(_L("\\documents\\Documents.\\TEstfile.txt")); |
1305 test(r==KErrBadName); |
1305 test_Value(r, r == KErrBadName); |
1306 r=TheFs.Delete(_L("\\Documents.\\documents\\TEstfile.txt")); |
1306 r=TheFs.Delete(_L("\\Documents.\\documents\\TEstfile.txt")); |
1307 test(r==KErrBadName); |
1307 test_Value(r, r == KErrBadName); |
1308 r=TheFs.Delete(_L("\\documents.\\Documents\\TEstfile.txt")); |
1308 r=TheFs.Delete(_L("\\documents.\\Documents\\TEstfile.txt")); |
1309 test(r==KErrBadName); |
1309 test_Value(r, r == KErrBadName); |
1310 r=TheFs.Delete(_L("\\Documents\\Documents\\Testfile.txt")); |
1310 r=TheFs.Delete(_L("\\Documents\\Documents\\Testfile.txt")); |
1311 test(r==KErrInUse); |
1311 test_Value(r, r == KErrInUse); |
1312 r=TheFs.Delete(_L("\\documents\\documents\\testfile.txt")); |
1312 r=TheFs.Delete(_L("\\documents\\documents\\testfile.txt")); |
1313 test(r==KErrInUse); |
1313 test_Value(r, r == KErrInUse); |
1314 r=TheFs.Delete(_L("\\Documents.\\Documents.\\TEstfile.TXT")); |
1314 r=TheFs.Delete(_L("\\Documents.\\Documents.\\TEstfile.TXT")); |
1315 test(r==KErrBadName); |
1315 test_Value(r, r == KErrBadName); |
1316 r=TheFs.Delete(_L("\\docUMENTS.\\docUMENTS.\\TESTFILE.TXT")); |
1316 r=TheFs.Delete(_L("\\docUMENTS.\\docUMENTS.\\TESTFILE.TXT")); |
1317 test(r==KErrBadName); |
1317 test_Value(r, r == KErrBadName); |
1318 |
1318 |
1319 |
1319 |
1320 r=TheFs.RmDir(_L("\\Documents\\")); |
1320 r=TheFs.RmDir(_L("\\Documents\\")); |
1321 test(r==KErrInUse); |
1321 test_Value(r, r == KErrInUse); |
1322 r=TheFs.RmDir(_L("\\documents\\")); |
1322 r=TheFs.RmDir(_L("\\documents\\")); |
1323 test(r==KErrInUse); |
1323 test_Value(r, r == KErrInUse); |
1324 r=TheFs.RmDir(_L("\\Documents.\\")); |
1324 r=TheFs.RmDir(_L("\\Documents.\\")); |
1325 test(r==KErrBadName); |
1325 test_Value(r, r == KErrBadName); |
1326 r=TheFs.RmDir(_L("\\documents.\\")); |
1326 r=TheFs.RmDir(_L("\\documents.\\")); |
1327 test(r==KErrBadName); |
1327 test_Value(r, r == KErrBadName); |
1328 r=TheFs.RmDir(_L("\\Documents\\documents\\")); |
1328 r=TheFs.RmDir(_L("\\Documents\\documents\\")); |
1329 test(r==KErrInUse); |
1329 test_Value(r, r == KErrInUse); |
1330 r=TheFs.RmDir(_L("\\documents\\documents.\\")); |
1330 r=TheFs.RmDir(_L("\\documents\\documents.\\")); |
1331 test(r==KErrBadName); |
1331 test_Value(r, r == KErrBadName); |
1332 r=TheFs.RmDir(_L("\\Documents.\\Documents\\")); |
1332 r=TheFs.RmDir(_L("\\Documents.\\Documents\\")); |
1333 test(r==KErrBadName); |
1333 test_Value(r, r == KErrBadName); |
1334 r=TheFs.RmDir(_L("\\documents.\\Documents.\\")); |
1334 r=TheFs.RmDir(_L("\\documents.\\Documents.\\")); |
1335 test(r==KErrBadName); |
1335 test_Value(r, r == KErrBadName); |
1336 r=TheFs.RmDir(_L("\\Documents\\TestFile.TXT")); |
1336 r=TheFs.RmDir(_L("\\Documents\\TestFile.TXT")); |
1337 test(r==KErrInUse); |
1337 test_Value(r, r == KErrInUse); |
1338 r=TheFs.RmDir(_L("\\documents\\TestFile")); |
1338 r=TheFs.RmDir(_L("\\documents\\TestFile")); |
1339 test(r==KErrInUse); |
1339 test_Value(r, r == KErrInUse); |
1340 r=TheFs.RmDir(_L("\\Documents.\\Testfile.")); |
1340 r=TheFs.RmDir(_L("\\Documents.\\Testfile.")); |
1341 test(r==KErrBadName); |
1341 test_Value(r, r == KErrBadName); |
1342 r=TheFs.RmDir(_L("\\documents.\\t")); |
1342 r=TheFs.RmDir(_L("\\documents.\\t")); |
1343 test(r==KErrBadName); |
1343 test_Value(r, r == KErrBadName); |
1344 f.Close(); |
1344 f.Close(); |
1345 r=TheFs.Delete(_L("\\Documents\\documents\\TEstfile.TXT")); |
1345 r=TheFs.Delete(_L("\\Documents\\documents\\TEstfile.TXT")); |
1346 test(r==KErrNone); |
1346 test_KErrNone(r); |
1347 r=TheFs.RmDir(_L("\\Documents\\documents.\\")); |
1347 r=TheFs.RmDir(_L("\\Documents\\documents.\\")); |
1348 test(r==KErrBadName); |
1348 test_Value(r, r == KErrBadName); |
1349 r=TheFs.RmDir(_L("\\Documents.\\")); |
1349 r=TheFs.RmDir(_L("\\Documents.\\")); |
1350 test(r==KErrBadName); |
1350 test_Value(r, r == KErrBadName); |
1351 } |
1351 } |
1352 |
1352 |
1353 static void testFileSeek() |
1353 static void testFileSeek() |
1354 // |
1354 // |
1355 // Test seeking |
1355 // Test seeking |
1356 // |
1356 // |
1357 { |
1357 { |
1358 test.Next(_L("Test file seek")); |
1358 test.Next(_L("Test file seek")); |
1359 RFile f; |
1359 RFile f; |
1360 TInt r=f.Open(TheFs,_L("T_File.cpp"),EFileWrite); |
1360 TInt r=f.Open(TheFs,_L("T_File.cpp"),EFileWrite); |
1361 test(r==KErrNone); |
1361 test_KErrNone(r); |
1362 |
1362 |
1363 TBuf8<20> text1;TInt pos1=0; |
1363 TBuf8<20> text1;TInt pos1=0; |
1364 TBuf8<20> text2;TInt pos2=510; |
1364 TBuf8<20> text2;TInt pos2=510; |
1365 TBuf8<20> text3;TInt pos3=900; |
1365 TBuf8<20> text3;TInt pos3=900; |
1366 TBuf8<20> text4;TInt pos4=2010; |
1366 TBuf8<20> text4;TInt pos4=2010; |
1367 TBuf8<20> text5;TInt pos5=4999; |
1367 TBuf8<20> text5;TInt pos5=4999; |
1368 |
1368 |
1369 r=f.Read(pos1,text1); |
1369 r=f.Read(pos1,text1); |
1370 test(r==KErrNone); |
1370 test_KErrNone(r); |
1371 r=f.Read(pos2,text2); |
1371 r=f.Read(pos2,text2); |
1372 test(r==KErrNone); |
1372 test_KErrNone(r); |
1373 r=f.Read(pos3,text3); |
1373 r=f.Read(pos3,text3); |
1374 test(r==KErrNone); |
1374 test_KErrNone(r); |
1375 r=f.Read(pos4,text4); |
1375 r=f.Read(pos4,text4); |
1376 test(r==KErrNone); |
1376 test_KErrNone(r); |
1377 r=f.Read(pos5,text5); |
1377 r=f.Read(pos5,text5); |
1378 test(r==KErrNone); |
1378 test_KErrNone(r); |
1379 |
1379 |
1380 TBuf8<20> testBuf; |
1380 TBuf8<20> testBuf; |
1381 |
1381 |
1382 r=f.Read(pos3,testBuf); |
1382 r=f.Read(pos3,testBuf); |
1383 test(r==KErrNone); |
1383 test_KErrNone(r); |
1384 test(testBuf==text3); |
1384 test(testBuf==text3); |
1385 |
1385 |
1386 r=f.Read(pos1,testBuf); |
1386 r=f.Read(pos1,testBuf); |
1387 test(r==KErrNone); |
1387 test_KErrNone(r); |
1388 test(testBuf==text1); |
1388 test(testBuf==text1); |
1389 |
1389 |
1390 r=f.Read(pos4,testBuf); |
1390 r=f.Read(pos4,testBuf); |
1391 test(r==KErrNone); |
1391 test_KErrNone(r); |
1392 test(testBuf==text4); |
1392 test(testBuf==text4); |
1393 |
1393 |
1394 r=f.Read(pos2,testBuf); |
1394 r=f.Read(pos2,testBuf); |
1395 test(r==KErrNone); |
1395 test_KErrNone(r); |
1396 test(testBuf==text2); |
1396 test(testBuf==text2); |
1397 |
1397 |
1398 r=f.Read(pos5,testBuf); |
1398 r=f.Read(pos5,testBuf); |
1399 test(r==KErrNone); |
1399 test_KErrNone(r); |
1400 test(testBuf==text5); |
1400 test(testBuf==text5); |
1401 |
1401 |
1402 r=f.Read(pos2,testBuf); |
1402 r=f.Read(pos2,testBuf); |
1403 test(r==KErrNone); |
1403 test_KErrNone(r); |
1404 test(testBuf==text2); |
1404 test(testBuf==text2); |
1405 r=f.SetSize(1023); |
1405 r=f.SetSize(1023); |
1406 test(r==KErrNone); |
1406 test_KErrNone(r); |
1407 r=f.Read(pos2,testBuf); |
1407 r=f.Read(pos2,testBuf); |
1408 test(r==KErrNone); |
1408 test_KErrNone(r); |
1409 test(testBuf==text2); |
1409 test(testBuf==text2); |
1410 r=f.SetSize(1024); |
1410 r=f.SetSize(1024); |
1411 test(r==KErrNone); |
1411 test_KErrNone(r); |
1412 r=f.Read(pos1,testBuf); |
1412 r=f.Read(pos1,testBuf); |
1413 test(r==KErrNone); |
1413 test_KErrNone(r); |
1414 test(testBuf==text1); |
1414 test(testBuf==text1); |
1415 r=f.Read(pos2,testBuf); |
1415 r=f.Read(pos2,testBuf); |
1416 test(r==KErrNone); |
1416 test_KErrNone(r); |
1417 test(testBuf==text2); |
1417 test(testBuf==text2); |
1418 |
1418 |
1419 r=f.Read(pos1,testBuf); |
1419 r=f.Read(pos1,testBuf); |
1420 test(r==KErrNone); |
1420 test_KErrNone(r); |
1421 test(testBuf==text1); |
1421 test(testBuf==text1); |
1422 r=f.SetSize(511); |
1422 r=f.SetSize(511); |
1423 test(r==KErrNone); |
1423 test_KErrNone(r); |
1424 r=f.Read(pos1,testBuf); |
1424 r=f.Read(pos1,testBuf); |
1425 test(r==KErrNone); |
1425 test_KErrNone(r); |
1426 test(testBuf==text1); |
1426 test(testBuf==text1); |
1427 r=f.SetSize(512); |
1427 r=f.SetSize(512); |
1428 test(r==KErrNone); |
1428 test_KErrNone(r); |
1429 r=f.Read(pos1,testBuf); |
1429 r=f.Read(pos1,testBuf); |
1430 test(r==KErrNone); |
1430 test_KErrNone(r); |
1431 test(testBuf==text1); |
1431 test(testBuf==text1); |
1432 f.Close(); |
1432 f.Close(); |
1433 } |
1433 } |
1434 |
1434 |
1435 static void testMoreFileSeek() |
1435 static void testMoreFileSeek() |
1633 TInt r; |
1633 TInt r; |
1634 RFile f1; |
1634 RFile f1; |
1635 |
1635 |
1636 //-- test renaming a file to a non-existing directory |
1636 //-- test renaming a file to a non-existing directory |
1637 r = TheFs.MkDir(_L("\\temp\\")); |
1637 r = TheFs.MkDir(_L("\\temp\\")); |
1638 test(r==KErrNone || r==KErrAlreadyExists); |
1638 test_Value(r, r == KErrNone || r==KErrAlreadyExists); |
1639 |
1639 |
1640 r = f1.Replace(TheFs, _L("\\temp\\file1"), 0); |
1640 r = f1.Replace(TheFs, _L("\\temp\\file1"), 0); |
1641 test(r==KErrNone); |
1641 test_KErrNone(r); |
1642 |
1642 |
1643 r = f1.Rename(_L("\\temp\\temp\\file1")); |
1643 r = f1.Rename(_L("\\temp\\temp\\file1")); |
1644 test(r == KErrPathNotFound); |
1644 test_Value(r, r == KErrPathNotFound); |
1645 |
1645 |
1646 f1.Close(); |
1646 f1.Close(); |
1647 |
1647 |
1648 |
1648 |
1649 r=f1.Replace(TheFs,name2,EFileWrite); |
1649 r=f1.Replace(TheFs,name2,EFileWrite); |
1650 test(r==KErrNone); |
1650 test_KErrNone(r); |
1651 r=f1.Write(_L8("1234")); |
1651 r=f1.Write(_L8("1234")); |
1652 test(r==KErrNone); |
1652 test_KErrNone(r); |
1653 TInt len=CheckFileExists(name2,KErrNone); |
1653 TInt len=CheckFileExists(name2,KErrNone); |
1654 test(len==4); |
1654 test(len==4); |
1655 r=f1.Rename(name1); |
1655 r=f1.Rename(name1); |
1656 test(r==KErrNone); |
1656 test_KErrNone(r); |
1657 |
1657 |
1658 r=f1.Read(0,contents); |
1658 r=f1.Read(0,contents); |
1659 test(r==KErrNone); |
1659 test_KErrNone(r); |
1660 test(contents==_L8("1234")); |
1660 test(contents==_L8("1234")); |
1661 r=f1.Write(4,_L8("5678")); |
1661 r=f1.Write(4,_L8("5678")); |
1662 test(r==KErrNone); |
1662 test_KErrNone(r); |
1663 |
1663 |
1664 len=CheckFileExists(name1,KErrNone); |
1664 len=CheckFileExists(name1,KErrNone); |
1665 test(len==8); |
1665 test(len==8); |
1666 CheckFileExists(name2,KErrNotFound); |
1666 CheckFileExists(name2,KErrNotFound); |
1667 r=f1.Write(8,_L8("90")); |
1667 r=f1.Write(8,_L8("90")); |
1668 test(r==KErrNone); |
1668 test_KErrNone(r); |
1669 f1.Close(); |
1669 f1.Close(); |
1670 len=CheckFileExists(name1,KErrNone); |
1670 len=CheckFileExists(name1,KErrNone); |
1671 test(len==10); |
1671 test(len==10); |
1672 |
1672 |
1673 test.Next(_L("Test can change case using rename")); |
1673 test.Next(_L("Test can change case using rename")); |
1674 r=f1.Open(TheFs,name1,EFileRead|EFileWrite); |
1674 r=f1.Open(TheFs,name1,EFileRead|EFileWrite); |
1675 test(r==KErrNone); |
1675 test_KErrNone(r); |
1676 r=f1.Rename(name3); |
1676 r=f1.Rename(name3); |
1677 test(r==KErrNone); |
1677 test_KErrNone(r); |
1678 CheckFileExists(name1,KErrNone,EFalse); |
1678 CheckFileExists(name1,KErrNone,EFalse); |
1679 len=CheckFileExists(name3,KErrNone); |
1679 len=CheckFileExists(name3,KErrNone); |
1680 test(len==10); |
1680 test(len==10); |
1681 f1.Close(); |
1681 f1.Close(); |
1682 CheckFileExists(name1,KErrNone,EFalse); |
1682 CheckFileExists(name1,KErrNone,EFalse); |
1683 len=CheckFileExists(name3,KErrNone); |
1683 len=CheckFileExists(name3,KErrNone); |
1684 test(len==10); |
1684 test(len==10); |
1685 |
1685 |
1686 test.Next(_L("Test can rename to an identical filename")); |
1686 test.Next(_L("Test can rename to an identical filename")); |
1687 r=f1.Open(TheFs,name3,EFileRead|EFileWrite); |
1687 r=f1.Open(TheFs,name3,EFileRead|EFileWrite); |
1688 test(r==KErrNone); |
1688 test_KErrNone(r); |
1689 r=f1.Rename(name3); |
1689 r=f1.Rename(name3); |
1690 test(r==KErrNone); |
1690 test_KErrNone(r); |
1691 len=CheckFileExists(name3,KErrNone); |
1691 len=CheckFileExists(name3,KErrNone); |
1692 test(len==10); |
1692 test(len==10); |
1693 f1.Close(); |
1693 f1.Close(); |
1694 len=CheckFileExists(name3,KErrNone); |
1694 len=CheckFileExists(name3,KErrNone); |
1695 test(len==10); |
1695 test(len==10); |
1696 |
1696 |
1697 test.Next(_L("Test rename to a name containing a wildcard is rejected")); |
1697 test.Next(_L("Test rename to a name containing a wildcard is rejected")); |
1698 r=f1.Open(TheFs,name3,EFileRead|EFileWrite); |
1698 r=f1.Open(TheFs,name3,EFileRead|EFileWrite); |
1699 test(r==KErrNone); |
1699 test_KErrNone(r); |
1700 r=f1.Rename(_L("asdf*ASDF")); |
1700 r=f1.Rename(_L("asdf*ASDF")); |
1701 test(r==KErrBadName); |
1701 test_Value(r, r == KErrBadName); |
1702 r=f1.Rename(_L("asdf?AF")); |
1702 r=f1.Rename(_L("asdf?AF")); |
1703 test(r==KErrBadName); |
1703 test_Value(r, r == KErrBadName); |
1704 f1.Close(); |
1704 f1.Close(); |
1705 |
1705 |
1706 r=f1.Open(TheFs,name3,EFileRead); |
1706 r=f1.Open(TheFs,name3,EFileRead); |
1707 test(r==KErrNone); |
1707 test_KErrNone(r); |
1708 r=f1.Read(contents); |
1708 r=f1.Read(contents); |
1709 test(r==KErrNone); |
1709 test_KErrNone(r); |
1710 test(contents==_L8("1234567890")); |
1710 test(contents==_L8("1234567890")); |
1711 r=f1.Read(contents); |
1711 r=f1.Read(contents); |
1712 test(r==KErrNone); |
1712 test_KErrNone(r); |
1713 test(contents.Length()==0); |
1713 test(contents.Length()==0); |
1714 f1.Close(); |
1714 f1.Close(); |
1715 |
1715 |
1716 test.Next(_L("Check file date is retained")); |
1716 test.Next(_L("Check file date is retained")); |
1717 TDateTime dateTime(1995,(TMonth)10,19,23,0,0,0); |
1717 TDateTime dateTime(1995,(TMonth)10,19,23,0,0,0); |
1718 TTime oldTime(dateTime); |
1718 TTime oldTime(dateTime); |
1719 r=TheFs.SetEntry(name3,oldTime,0,0); |
1719 r=TheFs.SetEntry(name3,oldTime,0,0); |
1720 test(r==KErrNone); |
1720 test_KErrNone(r); |
1721 r=f1.Open(TheFs,name3,EFileRead|EFileWrite); |
1721 r=f1.Open(TheFs,name3,EFileRead|EFileWrite); |
1722 test(r==KErrNone); |
1722 test_KErrNone(r); |
1723 TTime check; |
1723 TTime check; |
1724 r=f1.Modified(check); |
1724 r=f1.Modified(check); |
1725 test(r==KErrNone); |
1725 test_KErrNone(r); |
1726 test(check==oldTime); |
1726 test(check==oldTime); |
1727 |
1727 |
1728 r=f1.Rename(_L("OldFile.Old")); |
1728 r=f1.Rename(_L("OldFile.Old")); |
1729 test(r==KErrNone); |
1729 test_KErrNone(r); |
1730 |
1730 |
1731 r=f1.Modified(check); |
1731 r=f1.Modified(check); |
1732 test(r==KErrNone); |
1732 test_KErrNone(r); |
1733 test(check==oldTime); |
1733 test(check==oldTime); |
1734 r=TheFs.Modified(_L("oldfile.old"),check); |
1734 r=TheFs.Modified(_L("oldfile.old"),check); |
1735 test(r==KErrNone); |
1735 test_KErrNone(r); |
1736 test(check==oldTime); |
1736 test(check==oldTime); |
1737 f1.Close(); |
1737 f1.Close(); |
1738 r=TheFs.Modified(_L("oldfile.old"),check); |
1738 r=TheFs.Modified(_L("oldfile.old"),check); |
1739 test(r==KErrNone); |
1739 test_KErrNone(r); |
1740 test(check==oldTime); |
1740 test(check==oldTime); |
1741 } |
1741 } |
1742 |
1742 |
1743 static void TestFileUids() |
1743 static void TestFileUids() |
1744 // |
1744 // |
1849 MakeFile(_L("TESTER")); |
1849 MakeFile(_L("TESTER")); |
1850 |
1850 |
1851 // Open a file in EFileShareReadersOnly mode |
1851 // Open a file in EFileShareReadersOnly mode |
1852 RFile f1; |
1852 RFile f1; |
1853 TInt r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
1853 TInt r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
1854 test(r==KErrNone); |
1854 test_KErrNone(r); |
1855 |
1855 |
1856 // Opening a share in EFileShareReadersOnly mode should succeed |
1856 // Opening a share in EFileShareReadersOnly mode should succeed |
1857 RFile f2; |
1857 RFile f2; |
1858 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
1858 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
1859 test(r==KErrNone); |
1859 test_KErrNone(r); |
1860 f2.Close(); |
1860 f2.Close(); |
1861 |
1861 |
1862 // Opening a share in EFileShareReadersOrWriters mode with EFileRead access should succeed |
1862 // Opening a share in EFileShareReadersOrWriters mode with EFileRead access should succeed |
1863 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead); |
1863 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead); |
1864 test(r==KErrNone); |
1864 test_KErrNone(r); |
1865 f2.Close(); |
1865 f2.Close(); |
1866 |
1866 |
1867 // Opening a share in EFileShareReadersOrWriters mode with EFileWrite access should succeed |
1867 // Opening a share in EFileShareReadersOrWriters mode with EFileWrite access should succeed |
1868 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite); |
1868 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite); |
1869 test(r==KErrInUse); |
1869 test_Value(r, r == KErrInUse); |
1870 |
1870 |
1871 // Opening a share in EFileShareReadersOrWriters mode with EFileRead|EFileWrite access should succeed |
1871 // Opening a share in EFileShareReadersOrWriters mode with EFileRead|EFileWrite access should succeed |
1872 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite); |
1872 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite); |
1873 test(r==KErrInUse); |
1873 test_Value(r, r == KErrInUse); |
1874 |
1874 |
1875 // Opening a share in EShareAny mode should fail |
1875 // Opening a share in EShareAny mode should fail |
1876 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
1876 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
1877 test(r==KErrInUse); |
1877 test_Value(r, r == KErrInUse); |
1878 |
1878 |
1879 f1.Close(); |
1879 f1.Close(); |
1880 |
1880 |
1881 ////////////////////// |
1881 ////////////////////// |
1882 |
1882 |
1883 // Open a file in EFileShareReadersOrWriters mode for reading |
1883 // Open a file in EFileShareReadersOrWriters mode for reading |
1884 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead); |
1884 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead); |
1885 test(r==KErrNone); |
1885 test_KErrNone(r); |
1886 |
1886 |
1887 // Opening a share in EFileShareExclusive mode should fail |
1887 // Opening a share in EFileShareExclusive mode should fail |
1888 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
1888 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
1889 test(r==KErrInUse); |
1889 test_Value(r, r == KErrInUse); |
1890 |
1890 |
1891 // Opening a share in EFileShareReadersOnly mode should succeed |
1891 // Opening a share in EFileShareReadersOnly mode should succeed |
1892 // (the share doesn't care if the file is opened for reading or writing) |
1892 // (the share doesn't care if the file is opened for reading or writing) |
1893 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
1893 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
1894 test(r==KErrNone); |
1894 test_KErrNone(r); |
1895 f2.Close(); |
1895 f2.Close(); |
1896 |
1896 |
1897 // Opening a share in EFileShareReadersOnly mode with EFileRead accesss should succeed |
1897 // Opening a share in EFileShareReadersOnly mode with EFileRead accesss should succeed |
1898 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead); |
1898 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead); |
1899 test(r==KErrNone); |
1899 test_KErrNone(r); |
1900 f2.Close(); |
1900 f2.Close(); |
1901 |
1901 |
1902 // Opening a share in EFileShareReadersOnly mode with EFileWrite accesss should succeed |
1902 // Opening a share in EFileShareReadersOnly mode with EFileWrite accesss should succeed |
1903 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite); |
1903 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite); |
1904 test(r==KErrNone); |
1904 test_KErrNone(r); |
1905 f2.Close(); |
1905 f2.Close(); |
1906 |
1906 |
1907 // Opening a share in EFileShareReadersOnly mode with EFileRead|EFileWrite accesss should succeed |
1907 // Opening a share in EFileShareReadersOnly mode with EFileRead|EFileWrite accesss should succeed |
1908 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite); |
1908 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite); |
1909 test(r==KErrNone); |
1909 test_KErrNone(r); |
1910 f2.Close(); |
1910 f2.Close(); |
1911 |
1911 |
1912 // Opening a share in EFileShareAny mode should succeed |
1912 // Opening a share in EFileShareAny mode should succeed |
1913 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
1913 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
1914 test(r==KErrNone); |
1914 test_KErrNone(r); |
1915 f2.Close(); |
1915 f2.Close(); |
1916 |
1916 |
1917 f1.Close(); |
1917 f1.Close(); |
1918 |
1918 |
1919 ////////////////////// |
1919 ////////////////////// |
1920 |
1920 |
1921 // Open a file in EFileShareReadersOrWriters mode for writing |
1921 // Open a file in EFileShareReadersOrWriters mode for writing |
1922 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite); |
1922 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite); |
1923 test(r==KErrNone); |
1923 test_KErrNone(r); |
1924 |
1924 |
1925 // Opening a share in EFileShareExclusive mode should fail |
1925 // Opening a share in EFileShareExclusive mode should fail |
1926 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
1926 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
1927 test(r==KErrInUse); |
1927 test_Value(r, r == KErrInUse); |
1928 |
1928 |
1929 // Opening a share in EFileShareReadersOnly mode should fail |
1929 // Opening a share in EFileShareReadersOnly mode should fail |
1930 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
1930 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
1931 test(r==KErrInUse); |
1931 test_Value(r, r == KErrInUse); |
1932 |
1932 |
1933 // Opening a share in EFileShareReadersOrWriters mode with EFileRead access should succeed |
1933 // Opening a share in EFileShareReadersOrWriters mode with EFileRead access should succeed |
1934 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead); |
1934 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead); |
1935 test(r==KErrNone); |
1935 test_KErrNone(r); |
1936 f2.Close(); |
1936 f2.Close(); |
1937 |
1937 |
1938 // Opening a share in EFileShareReadersOrWriters mode with EFileWrite access should succeed |
1938 // Opening a share in EFileShareReadersOrWriters mode with EFileWrite access should succeed |
1939 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite); |
1939 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite); |
1940 test(r==KErrNone); |
1940 test_KErrNone(r); |
1941 f2.Close(); |
1941 f2.Close(); |
1942 |
1942 |
1943 // Opening a share in EFileShareReadersOrWriters mode with EFileRead|EFileWrite access should succeed |
1943 // Opening a share in EFileShareReadersOrWriters mode with EFileRead|EFileWrite access should succeed |
1944 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite); |
1944 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite); |
1945 test(r==KErrNone); |
1945 test_KErrNone(r); |
1946 f2.Close(); |
1946 f2.Close(); |
1947 |
1947 |
1948 // Opening a share in EFileShareAny mode should succeed |
1948 // Opening a share in EFileShareAny mode should succeed |
1949 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
1949 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
1950 test(r==KErrNone); |
1950 test_KErrNone(r); |
1951 f2.Close(); |
1951 f2.Close(); |
1952 |
1952 |
1953 f1.Close(); |
1953 f1.Close(); |
1954 |
1954 |
1955 ////////////////////////// |
1955 ////////////////////////// |
1956 |
1956 |
1957 // Open a file in EFileShareAny mode |
1957 // Open a file in EFileShareAny mode |
1958 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
1958 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
1959 test(r==KErrNone); |
1959 test_KErrNone(r); |
1960 |
1960 |
1961 // Opening a share in EFileShareExclusive mode should fail |
1961 // Opening a share in EFileShareExclusive mode should fail |
1962 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
1962 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive); |
1963 test(r==KErrInUse); |
1963 test_Value(r, r == KErrInUse); |
1964 |
1964 |
1965 // Opening a share in EFileShareReadersOnly mode should fail |
1965 // Opening a share in EFileShareReadersOnly mode should fail |
1966 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
1966 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
1967 test(r==KErrInUse); |
1967 test_Value(r, r == KErrInUse); |
1968 |
1968 |
1969 // Opening a share in EFileShareReadersOrWriters mode with EFileRead access should succeed |
1969 // Opening a share in EFileShareReadersOrWriters mode with EFileRead access should succeed |
1970 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead); |
1970 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead); |
1971 test(r==KErrNone); |
1971 test_KErrNone(r); |
1972 f2.Close(); |
1972 f2.Close(); |
1973 |
1973 |
1974 // Opening a share in EFileShareReadersOrWriters mode with EFileWrite access should succeed |
1974 // Opening a share in EFileShareReadersOrWriters mode with EFileWrite access should succeed |
1975 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite); |
1975 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite); |
1976 test(r==KErrNone); |
1976 test_KErrNone(r); |
1977 f2.Close(); |
1977 f2.Close(); |
1978 |
1978 |
1979 // Opening a share in EFileShareReadersOrWriters mode with EFileRead|EFileWrite access should succeed |
1979 // Opening a share in EFileShareReadersOrWriters mode with EFileRead|EFileWrite access should succeed |
1980 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite); |
1980 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite); |
1981 test(r==KErrNone); |
1981 test_KErrNone(r); |
1982 f2.Close(); |
1982 f2.Close(); |
1983 |
1983 |
1984 // Opening a share in EFileShareAny mode with should succeed |
1984 // Opening a share in EFileShareAny mode with should succeed |
1985 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
1985 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
1986 test(r==KErrNone); |
1986 test_KErrNone(r); |
1987 f2.Close(); |
1987 f2.Close(); |
1988 |
1988 |
1989 f1.Close(); |
1989 f1.Close(); |
1990 |
1990 |
1991 ////////////////////// |
1991 ////////////////////// |
1992 |
1992 |
1993 // Open a file in EFileShareReadersOrWriters mode for reading |
1993 // Open a file in EFileShareReadersOrWriters mode for reading |
1994 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead); |
1994 r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead); |
1995 test(r==KErrNone); |
1995 test_KErrNone(r); |
1996 |
1996 |
1997 // Opening a share in EFileShareReadersOnly mode should succeed |
1997 // Opening a share in EFileShareReadersOnly mode should succeed |
1998 // - The share should now be promoted to EFileShareReadersOnly mode |
1998 // - The share should now be promoted to EFileShareReadersOnly mode |
1999 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
1999 r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly); |
2000 test(r==KErrNone); |
2000 test_KErrNone(r); |
2001 |
2001 |
2002 TInt pass = 2; |
2002 TInt pass = 2; |
2003 while(pass--) |
2003 while(pass--) |
2004 { |
2004 { |
2005 RFile f3; |
2005 RFile f3; |
2006 // Opening a share in EFileShareReadersOnly mode with EFileRead accesss should succeed |
2006 // Opening a share in EFileShareReadersOnly mode with EFileRead accesss should succeed |
2007 r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead); |
2007 r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead); |
2008 test(r==KErrNone); |
2008 test_KErrNone(r); |
2009 f3.Close(); |
2009 f3.Close(); |
2010 |
2010 |
2011 // Opening a share in EFileShareReadersOnly mode with EFileWrite accesss should fail |
2011 // Opening a share in EFileShareReadersOnly mode with EFileWrite accesss should fail |
2012 r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite); |
2012 r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite); |
2013 if(pass == 1) |
2013 if(pass == 1) |
2014 { |
2014 { |
2015 // The share is promoted - should obey EFileShareReadersOnly rules |
2015 // The share is promoted - should obey EFileShareReadersOnly rules |
2016 test(r==KErrInUse); |
2016 test_Value(r, r == KErrInUse); |
2017 } |
2017 } |
2018 else |
2018 else |
2019 { |
2019 { |
2020 // The share is demoted - should obey EFileShareReadersOrWriters rules |
2020 // The share is demoted - should obey EFileShareReadersOrWriters rules |
2021 test(r==KErrNone); |
2021 test_KErrNone(r); |
2022 f3.Close(); |
2022 f3.Close(); |
2023 } |
2023 } |
2024 |
2024 |
2025 // Opening a share in EFileShareReadersOnly mode with EFileRead|EFileWrite accesss should fail |
2025 // Opening a share in EFileShareReadersOnly mode with EFileRead|EFileWrite accesss should fail |
2026 r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite); |
2026 r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite); |
2027 if(pass == 1) |
2027 if(pass == 1) |
2028 { |
2028 { |
2029 // The share is promoted - should obey EFileShareReadersOnly rules |
2029 // The share is promoted - should obey EFileShareReadersOnly rules |
2030 test(r==KErrInUse); |
2030 test_Value(r, r == KErrInUse); |
2031 } |
2031 } |
2032 else |
2032 else |
2033 { |
2033 { |
2034 // The share is demoted - should obey EFileShareReadersOrWriters rules |
2034 // The share is demoted - should obey EFileShareReadersOrWriters rules |
2035 test(r==KErrNone); |
2035 test_KErrNone(r); |
2036 f3.Close(); |
2036 f3.Close(); |
2037 } |
2037 } |
2038 |
2038 |
2039 // Opening a share in EFileShareAny mode should fails |
2039 // Opening a share in EFileShareAny mode should fails |
2040 r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
2040 r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny); |
2041 if(pass == 1) |
2041 if(pass == 1) |
2042 { |
2042 { |
2043 // The share is promoted - should obey EFileShareReadersOnly rules |
2043 // The share is promoted - should obey EFileShareReadersOnly rules |
2044 test(r==KErrInUse); |
2044 test_Value(r, r == KErrInUse); |
2045 f2.Close(); |
2045 f2.Close(); |
2046 } |
2046 } |
2047 else |
2047 else |
2048 { |
2048 { |
2049 // The share is demoted - should obey EFileShareReadersOrWriters rules |
2049 // The share is demoted - should obey EFileShareReadersOrWriters rules |
2050 test(r==KErrNone); |
2050 test_KErrNone(r); |
2051 f3.Close(); |
2051 f3.Close(); |
2052 } |
2052 } |
2053 } |
2053 } |
2054 |
2054 |
2055 f1.Close(); |
2055 f1.Close(); |
2822 TEntry entry; |
2822 TEntry entry; |
2823 TheFs.Delete(KFile); |
2823 TheFs.Delete(KFile); |
2824 |
2824 |
2825 //-- 1. create test file |
2825 //-- 1. create test file |
2826 nRes = CreateEmptyFile(TheFs, KFile, 33); |
2826 nRes = CreateEmptyFile(TheFs, KFile, 33); |
2827 test(nRes == KErrNone); |
2827 test_KErrNone(nRes); |
2828 |
2828 |
2829 //-- 2. open it for write |
2829 //-- 2. open it for write |
2830 RFile file; |
2830 RFile file; |
2831 nRes = file.Open(TheFs, KFile, EFileWrite); |
2831 nRes = file.Open(TheFs, KFile, EFileWrite); |
2832 test(nRes == KErrNone); |
2832 test_KErrNone(nRes); |
2833 |
2833 |
2834 //-- 3. write a couple of bytes there. This must cause 'Archive' attribute set |
2834 //-- 3. write a couple of bytes there. This must cause 'Archive' attribute set |
2835 nRes = file.Write(0, _L8("a")); |
2835 nRes = file.Write(0, _L8("a")); |
2836 test(nRes == KErrNone); |
2836 test_KErrNone(nRes); |
2837 nRes = file.Write(10, _L8("b")); |
2837 nRes = file.Write(10, _L8("b")); |
2838 test(nRes == KErrNone); |
2838 test_KErrNone(nRes); |
2839 |
2839 |
2840 nRes = TheFs.Entry(KFile, entry); |
2840 nRes = TheFs.Entry(KFile, entry); |
2841 test(nRes == KErrNone); |
2841 test_KErrNone(nRes); |
2842 |
2842 |
2843 test(entry.IsArchive()); //-- 'A' attribute must be set. |
2843 test(entry.IsArchive()); //-- 'A' attribute must be set. |
2844 |
2844 |
2845 //-- the file cache (if present) is dirty now. Dirty data timer starts to tick. |
2845 //-- the file cache (if present) is dirty now. Dirty data timer starts to tick. |
2846 //-- 4. set new file attributes (w/o 'A') and creation time |
2846 //-- 4. set new file attributes (w/o 'A') and creation time |
2847 const TUint newAtt = KEntryAttSystem ; |
2847 const TUint newAtt = KEntryAttSystem ; |
2848 nRes = file.SetAtt(newAtt, ~newAtt & KEntryAttMaskSupported); |
2848 nRes = file.SetAtt(newAtt, ~newAtt & KEntryAttMaskSupported); |
2849 test(nRes == KErrNone); |
2849 test_KErrNone(nRes); |
2850 |
2850 |
2851 TTime newTime; |
2851 TTime newTime; |
2852 nRes = newTime.Set(_L("19970310:101809.000000")); |
2852 nRes = newTime.Set(_L("19970310:101809.000000")); |
2853 test(nRes == KErrNone); |
2853 test_KErrNone(nRes); |
2854 nRes = file.SetModified(newTime); |
2854 nRes = file.SetModified(newTime); |
2855 test(nRes == KErrNone); |
2855 test_KErrNone(nRes); |
2856 |
2856 |
2857 //-- 5. wait 5 seconds. file server shall flush dirty data during this period. |
2857 //-- 5. wait 5 seconds. file server shall flush dirty data during this period. |
2858 User::After(5*K1Sec); |
2858 User::After(5*K1Sec); |
2859 |
2859 |
2860 //-- 6. check that attributes haven't chanded because of flush |
2860 //-- 6. check that attributes haven't chanded because of flush |
2861 nRes = file.Flush(); //-- this will flush attributes to the media |
2861 nRes = file.Flush(); //-- this will flush attributes to the media |
2862 test(nRes == KErrNone); |
2862 test_KErrNone(nRes); |
2863 |
2863 |
2864 nRes = TheFs.Entry(KFile, entry); |
2864 nRes = TheFs.Entry(KFile, entry); |
2865 test(nRes == KErrNone); |
2865 test_KErrNone(nRes); |
2866 |
2866 |
2867 test(entry.iAtt == newAtt); |
2867 test(entry.iAtt == newAtt); |
2868 test(entry.iModified.DateTime().Year() == 1997); |
2868 test(entry.iModified.DateTime().Year() == 1997); |
2869 test(entry.iModified.DateTime().Month() == 3); |
2869 test(entry.iModified.DateTime().Month() == 3); |
2870 test(entry.iModified.DateTime().Day() == 10); |
2870 test(entry.iModified.DateTime().Day() == 10); |
2871 |
2871 |
2872 //-- 7. write some data and ensure that 'A' attribute is set now and 'modified' time updated |
2872 //-- 7. write some data and ensure that 'A' attribute is set now and 'modified' time updated |
2873 nRes = file.Write(12, _L8("c")); |
2873 nRes = file.Write(12, _L8("c")); |
2874 test(nRes == KErrNone); |
2874 test_KErrNone(nRes); |
2875 |
2875 |
2876 file.Close(); //-- this will flush attributes to the media |
2876 file.Close(); //-- this will flush attributes to the media |
2877 |
2877 |
2878 nRes = TheFs.Entry(KFile, entry); |
2878 nRes = TheFs.Entry(KFile, entry); |
2879 test(nRes == KErrNone); |
2879 test_KErrNone(nRes); |
2880 test(entry.iAtt == (newAtt | KEntryAttArchive)); |
2880 test(entry.iAtt == (newAtt | KEntryAttArchive)); |
2881 test(entry.iModified.DateTime().Year() != 1997); |
2881 test(entry.iModified.DateTime().Year() != 1997); |
2882 |
2882 |
2883 |
2883 |
2884 |
2884 |
2921 |
2921 |
2922 //-- 1. create 4GB-1 file |
2922 //-- 1. create 4GB-1 file |
2923 //-- this file has enabled write caching by default |
2923 //-- this file has enabled write caching by default |
2924 test.Printf(_L("creating maximal length file, size = 0x%x\n"),KMaxFAT32FileSize); |
2924 test.Printf(_L("creating maximal length file, size = 0x%x\n"),KMaxFAT32FileSize); |
2925 nRes = file64.Replace(TheFs, KFileName, EFileWrite); |
2925 nRes = file64.Replace(TheFs, KFileName, EFileWrite); |
2926 test(nRes == KErrNone); |
2926 test_KErrNone(nRes); |
2927 |
2927 |
2928 const TInt64 fileSize = KMaxFAT32FileSize; |
2928 const TInt64 fileSize = KMaxFAT32FileSize; |
2929 |
2929 |
2930 nRes = file64.SetSize(fileSize); |
2930 nRes = file64.SetSize(fileSize); |
2931 test(nRes == KErrNone); |
2931 test_KErrNone(nRes); |
2932 |
2932 |
2933 test.Printf(_L("seeking to the file end...\n")); |
2933 test.Printf(_L("seeking to the file end...\n")); |
2934 TInt64 filePos = 0; |
2934 TInt64 filePos = 0; |
2935 nRes = file64.Seek(ESeekEnd, filePos); |
2935 nRes = file64.Seek(ESeekEnd, filePos); |
2936 test(nRes == KErrNone); |
2936 test_KErrNone(nRes); |
2937 |
2937 |
2938 |
2938 |
2939 test.Printf(_L("test writing to the last bytes of the file (rel pos addressing) \n")); |
2939 test.Printf(_L("test writing to the last bytes of the file (rel pos addressing) \n")); |
2940 |
2940 |
2941 //-- 1. writing using relative position |
2941 //-- 1. writing using relative position |
2942 filePos = -1; |
2942 filePos = -1; |
2943 nRes = file64.Seek(ESeekEnd, filePos); |
2943 nRes = file64.Seek(ESeekEnd, filePos); |
2944 test(nRes == KErrNone); |
2944 test_KErrNone(nRes); |
2945 test(filePos == fileSize-1); |
2945 test(filePos == fileSize-1); |
2946 |
2946 |
2947 nRes = file64.Write(_L8("z")); //-- write 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file |
2947 nRes = file64.Write(_L8("z")); //-- write 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file |
2948 test(nRes == KErrNone); |
2948 test_KErrNone(nRes); |
2949 |
2949 |
2950 nRes = file64.Write(_L8("x")); //-- write 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size, this shall fail |
2950 nRes = file64.Write(_L8("x")); //-- write 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size, this shall fail |
2951 test(nRes == KErrNotSupported); |
2951 test_Value(nRes, nRes == KErrNotSupported); |
2952 |
2952 |
2953 nRes = file64.Flush(); |
2953 nRes = file64.Flush(); |
2954 test(nRes == KErrNone); |
2954 test_KErrNone(nRes); |
2955 |
2955 |
2956 //-- 1.1 check the result by reading data using rel. pos |
2956 //-- 1.1 check the result by reading data using rel. pos |
2957 filePos = -1; |
2957 filePos = -1; |
2958 nRes = file64.Seek(ESeekEnd, filePos); |
2958 nRes = file64.Seek(ESeekEnd, filePos); |
2959 test(nRes == KErrNone); |
2959 test_KErrNone(nRes); |
2960 test(filePos == fileSize-1); |
2960 test(filePos == fileSize-1); |
2961 |
2961 |
2962 test.Printf(_L("reading 1 byte at pos: 0x%x\n"), filePos); |
2962 test.Printf(_L("reading 1 byte at pos: 0x%x\n"), filePos); |
2963 nRes = file64.Read(buf, 1); //-- read 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file |
2963 nRes = file64.Read(buf, 1); //-- read 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file |
2964 test(nRes == KErrNone); |
2964 test_KErrNone(nRes); |
2965 test(buf.Length() == 1 && buf[0]=='z'); |
2965 test(buf.Length() == 1 && buf[0]=='z'); |
2966 |
2966 |
2967 nRes = file64.Read(buf, 1); //-- read 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size, this shall fail |
2967 nRes = file64.Read(buf, 1); //-- read 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size, this shall fail |
2968 test(nRes == KErrNone); |
2968 test_KErrNone(nRes); |
2969 test(buf.Length() == 0); |
2969 test(buf.Length() == 0); |
2970 |
2970 |
2971 file64.Close(); |
2971 file64.Close(); |
2972 |
2972 |
2973 test.Printf(_L("test writing to the last bytes of the file (absolute pos addressing) \n")); |
2973 test.Printf(_L("test writing to the last bytes of the file (absolute pos addressing) \n")); |
2974 //-- 2. writing using absolute position |
2974 //-- 2. writing using absolute position |
2975 nRes = file64.Open(TheFs, KFileName, EFileWrite); |
2975 nRes = file64.Open(TheFs, KFileName, EFileWrite); |
2976 test(nRes == KErrNone); |
2976 test_KErrNone(nRes); |
2977 |
2977 |
2978 filePos = fileSize-1; |
2978 filePos = fileSize-1; |
2979 |
2979 |
2980 nRes = file64.Write(filePos-2, _L8("0"), 1); //-- write 1 byte a pos 0xFFFFFFFC |
2980 nRes = file64.Write(filePos-2, _L8("0"), 1); //-- write 1 byte a pos 0xFFFFFFFC |
2981 test(nRes == KErrNone); |
2981 test_KErrNone(nRes); |
2982 |
2982 |
2983 nRes = file64.Write(filePos, _L8("a"), 1); //-- write 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file |
2983 nRes = file64.Write(filePos, _L8("a"), 1); //-- write 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file |
2984 test(nRes == KErrNone); |
2984 test_KErrNone(nRes); |
2985 |
2985 |
2986 nRes = file64.Write(filePos+1, _L8("b"), 1); //-- write 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size, this shall fail |
2986 nRes = file64.Write(filePos+1, _L8("b"), 1); //-- write 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size, this shall fail |
2987 test(nRes == KErrNotSupported); |
2987 test_Value(nRes, nRes == KErrNotSupported); |
2988 |
2988 |
2989 nRes = file64.Flush(); |
2989 nRes = file64.Flush(); |
2990 test(nRes == KErrNone); |
2990 test_KErrNone(nRes); |
2991 |
2991 |
2992 //-- 1.1 check the result by reading data absolute rel. position |
2992 //-- 1.1 check the result by reading data absolute rel. position |
2993 |
2993 |
2994 nRes = file64.Read(filePos-2, buf, 1); //-- read 1 byte a pos 0xFFFFFFFD |
2994 nRes = file64.Read(filePos-2, buf, 1); //-- read 1 byte a pos 0xFFFFFFFD |
2995 test(nRes == KErrNone); |
2995 test_KErrNone(nRes); |
2996 test(buf.Length() == 1 && buf[0]=='0'); |
2996 test(buf.Length() == 1 && buf[0]=='0'); |
2997 |
2997 |
2998 nRes = file64.Read(filePos, buf, 1); //-- read 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file |
2998 nRes = file64.Read(filePos, buf, 1); //-- read 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file |
2999 test(nRes == KErrNone); |
2999 test_KErrNone(nRes); |
3000 test(buf.Length() == 1 && buf[0]=='a'); |
3000 test(buf.Length() == 1 && buf[0]=='a'); |
3001 |
3001 |
3002 nRes = file64.Read(filePos+1, buf, 1); //-- read 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size |
3002 nRes = file64.Read(filePos+1, buf, 1); //-- read 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size |
3003 test(nRes == KErrNone); |
3003 test_KErrNone(nRes); |
3004 test(buf.Length() == 0); |
3004 test(buf.Length() == 0); |
3005 |
3005 |
3006 nRes = file64.Read(filePos+2, buf, 1); //buf.Len must be 0 |
3006 nRes = file64.Read(filePos+2, buf, 1); //buf.Len must be 0 |
3007 test(nRes == KErrNone); |
3007 test_KErrNone(nRes); |
3008 test(buf.Length() == 0); |
3008 test(buf.Length() == 0); |
3009 |
3009 |
3010 file64.Close(); |
3010 file64.Close(); |
3011 |
3011 |
3012 test.Printf(_L("deleting the huge file.\n")); |
3012 test.Printf(_L("deleting the huge file.\n")); |
3013 nRes = TheFs.Delete(KFileName); |
3013 nRes = TheFs.Delete(KFileName); |
3014 test(nRes == KErrNone); |
3014 test_KErrNone(nRes); |
3015 |
3015 |
3016 #else |
3016 #else |
3017 |
3017 |
3018 test.Printf(_L("RFile64 is not supported! Skipping.\n")); |
3018 test.Printf(_L("RFile64 is not supported! Skipping.\n")); |
3019 |
3019 |