kerneltest/f32test/server/t_file.cpp
branchRCL_3
changeset 43 c1f20ce4abcf
parent 42 a179b74831c9
child 44 3e88ff8f41d5
equal deleted inserted replaced
42:a179b74831c9 43:c1f20ce4abcf
    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()
   188 //
   188 //
   189 	{
   189 	{
   190 
   190 
   191 	test.Start(_L("Test read file"));
   191 	test.Start(_L("Test read file"));
   192 	RFile f,ZFile;
   192 	RFile f,ZFile;
   193 	TInt r=f.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText);
   193 	
   194 	test(r==KErrNone);
   194     TInt r=f.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText);
   195 	TFileName fn = _L("Z:\\TEST\\T_FILE.CPP");
   195 	test_KErrNone(r);
       
   196 	
       
   197     TFileName fn = _L("Z:\\TEST\\T_FILE.CPP");
   196 	fn[0] = gExeFileName[0];
   198 	fn[0] = gExeFileName[0];
   197 	r=ZFile.Open(TheFs,fn,EFileStreamText);
   199 	
   198 	test(r==KErrNone);
   200     r=ZFile.Open(TheFs,fn,EFileStreamText);
       
   201 	test_KErrNone(r);
   199 
   202 
   200 	// check the file on the Z: drive his read-only
   203 	// check the file on the Z: drive his read-only
   201 	TEntry fileAtt;
   204 	TEntry fileAtt;
   202 	r=TheFs.Entry(fn,fileAtt);
   205 	r=TheFs.Entry(fn,fileAtt);
   203 	test_KErrNone(r);
   206 	test_KErrNone(r);
   204 	test((fileAtt.iAtt & KEntryAttReadOnly) == KEntryAttReadOnly);
   207 	test((fileAtt.iAtt & KEntryAttReadOnly) == KEntryAttReadOnly);
   205 
   208 
   206 
   209 
   207 	test.Next(_L("Read file"));
   210 	test.Next(_L("Read file"));
   208 	TBuf8<0x100> a,b;
   211 	TBuf8<0x100> a,b;
   209 	FOREVER
   212 	
       
   213     for(;;)
   210 		{
   214 		{
   211 		r=f.Read(b);
   215 		r=f.Read(b);
   212 		test(r==KErrNone);
   216 		test_KErrNone(r);
   213 		r=ZFile.Read(a);
   217 		
   214 		test(r==KErrNone);
   218         r=ZFile.Read(a);
   215 		test(a==b);
   219 		test_KErrNone(r);
   216 		if (b.Length()<b.MaxLength())
   220 		
       
   221         test(CompareBuffers(a, b));
       
   222 		
       
   223         if (b.Length()<b.MaxLength())
   217 			break;
   224 			break;
   218 		}
   225 		}
       
   226 
   219 	b.SetLength(10);
   227 	b.SetLength(10);
   220 	r=f.Read(b);
   228 	r=f.Read(b);
   221 	test(r==KErrNone);
   229 	test_KErrNone(r);
   222 	test(b.Length()==0);
   230 	test(b.Length()==0);
   223 	f.Close();
   231 	f.Close();
   224 	ZFile.Close();
   232 	ZFile.Close();
   225 
   233 
   226 	test.Next(_L("Read way beyond the end of the file"));
   234 	test.Next(_L("Read way beyond the end of the file"));
   227 	r=f.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText);
   235 	r=f.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText);
   228 	test(r==KErrNone);
   236 	test_KErrNone(r);
   229 	r=f.Read(3000000,gBuf);
   237 	r=f.Read(3000000,gBuf);
   230 	test(r==KErrNone);
   238 	test_KErrNone(r);
   231 	f.Close();
   239 	f.Close();
   232 
   240 
   233 	test.Next(_L("Write way beyond the end of the file"));
   241 	test.Next(_L("Write way beyond the end of the file"));
   234 	r=f.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileWrite);
   242 	r=f.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileWrite);
   235 	test(r==KErrNone);
   243 	test_KErrNone(r);
   236 	gBuf.SetLength(10);
   244 	gBuf.SetLength(10);
   237 	r=f.Write(3000000,gBuf);
   245 	r=f.Write(3000000,gBuf);
   238 	test(r==KErrNone);
   246 	test_KErrNone(r);
   239 	f.Close();
   247 	f.Close();
   240 	test.End();
   248 	test.End();
   241 	}
   249 	}
   242 
   250 
   243 static void testMultipleReadFile()
   251 static void testMultipleReadFile()
   245 // Test multiple read file handling.
   253 // Test multiple read file handling.
   246 //
   254 //
   247 	{
   255 	{
   248 
   256 
   249 	test.Start(_L("Test multiple read file"));
   257 	test.Start(_L("Test multiple read file"));
   250 	RFile f1;
   258 	
       
   259     RFile f1;
   251 	TInt r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
   260 	TInt r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
   252 	test(r==KErrNone);
   261 	test_KErrNone(r);
   253 	RFile f2;
   262 	
       
   263     RFile f2;
   254 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
   264 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
   255 	test(r==KErrNone);
   265 	test_KErrNone(r);
   256 
   266 
   257 	test.Next(_L("Read file"));
   267 	test.Next(_L("Read file"));
   258 	FOREVER
   268 	
       
   269     TBuf8<0x100> b1;
       
   270     TBuf8<0x100> b2;
       
   271     
       
   272     for(;;)
   259 		{
   273 		{
   260 		TBuf8<0x100> b1;
   274         r=f1.Read(b1);
   261 		r=f1.Read(b1);
   275 		test_KErrNone(r);
   262 		test(r==KErrNone);
   276         
   263 		TBuf8<0x100> b2;
       
   264 		r=f2.Read(b2);
   277 		r=f2.Read(b2);
   265 		test(r==KErrNone);
   278 		test_KErrNone(r);
   266 		test(b1==b2);
   279 		
       
   280         test(CompareBuffers(b1, b2));
       
   281 
   267 		if (b1.Length()<b1.MaxLength())
   282 		if (b1.Length()<b1.MaxLength())
   268 			break;
   283 			break;
   269 		}
   284 		}
   270 
   285 
   271 	test.Next(_L("Close file"));
   286 	test.Next(_L("Close file"));
   285 	TFileName fn = _L("File.File");
   300 	TFileName fn = _L("File.File");
   286 	TBuf8<16> testData=_L8("testData");
   301 	TBuf8<16> testData=_L8("testData");
   287 
   302 
   288 	// write test 1
   303 	// write test 1
   289 	TInt r=file.Replace(TheFs,fn,EFileStreamText);
   304 	TInt r=file.Replace(TheFs,fn,EFileStreamText);
   290 	test(r==KErrNone);
   305 	test_KErrNone(r);
   291 
   306 
   292 	test.Next(_L("Write file"));
   307 	test.Next(_L("Write file"));
   293 
   308 
   294 	r=file.Write(testData);
   309 	r=file.Write(testData);
   295 	test(r==KErrNone);
   310 	test_KErrNone(r);
   296 
   311 
   297 	file.Close();
   312 	file.Close();
   298 
   313 
   299 	// test write modes
   314 	// test write modes
   300 	// test writing with EFileRead
   315 	// test writing with EFileRead
   301 	r=file.Open(TheFs,fn,EFileStreamText|EFileRead);
   316 	r=file.Open(TheFs,fn,EFileStreamText|EFileRead);
   302 	test(r==KErrNone);
   317 	test_KErrNone(r);
   303 
   318 
   304 	test.Next(_L("Write file"));
   319 	test.Next(_L("Write file"));
   305 	r=file.Write(testData);
   320 	r=file.Write(testData);
   306 	test(r==KErrAccessDenied);
   321 	test_Value(r, r == KErrAccessDenied);
   307 	file.Close();
   322 	file.Close();
   308 
   323 
   309 	// test writing with EFileWrite
   324 	// test writing with EFileWrite
   310 	r=file.Open(TheFs,fn,EFileStreamText|EFileWrite);
   325 	r=file.Open(TheFs,fn,EFileStreamText|EFileWrite);
   311 	test(r==KErrNone);
   326 	test_KErrNone(r);
   312 
   327 
   313 	test.Next(_L("Write file"));
   328 	test.Next(_L("Write file"));
   314 	r=file.Write(testData);
   329 	r=file.Write(testData);
   315 	test(r==KErrNone);
   330 	test_KErrNone(r);
   316 	file.Close();
   331 	file.Close();
   317 
   332 
   318 	// test writing with share mode EFileShareExclusive
   333 	// test writing with share mode EFileShareExclusive
   319 	r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareExclusive);
   334 	r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareExclusive);
   320 	test(r==KErrNone);
   335 	test_KErrNone(r);
   321 
   336 
   322 	test.Next(_L("Write file"));
   337 	test.Next(_L("Write file"));
   323 	r=file.Write(testData);
   338 	r=file.Write(testData);
   324 	test(r==KErrNone);
   339 	test_KErrNone(r);
   325 	file.Close();
   340 	file.Close();
   326 
   341 
   327 	// test writing with share mode EFileShareReadersOnly (fails with KErrArgument)
   342 	// test writing with share mode EFileShareReadersOnly (fails with KErrArgument)
   328 	r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareReadersOnly);
   343 	r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareReadersOnly);
   329 	test(r==KErrArgument);
   344 	test_Value(r, r == KErrArgument);
   330 
   345 
   331 	// test writing with share mode EFileShareReadersOrWriters
   346 	// test writing with share mode EFileShareReadersOrWriters
   332 	r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareReadersOrWriters);
   347 	r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareReadersOrWriters);
   333 	test(r==KErrNone);
   348 	test_KErrNone(r);
   334 
   349 
   335 	test.Next(_L("Write file"));
   350 	test.Next(_L("Write file"));
   336 	r=file.Write(testData);
   351 	r=file.Write(testData);
   337 	test(r==KErrNone);
   352 	test_KErrNone(r);
   338 	file.Close();
   353 	file.Close();
   339 
   354 
   340 	// test writing with share mode EFileShareAny
   355 	// test writing with share mode EFileShareAny
   341 	r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareAny);
   356 	r=file.Open(TheFs,fn,EFileStreamText|EFileWrite|EFileShareAny);
   342 	test(r==KErrNone);
   357 	test_KErrNone(r);
   343 
   358 
   344 	test.Next(_L("Write file"));
   359 	test.Next(_L("Write file"));
   345 	r=file.Write(testData);
   360 	r=file.Write(testData);
   346 	test(r==KErrNone);
   361 	test_KErrNone(r);
   347 	file.Close();
   362 	file.Close();
   348 
   363 
   349 	// tidy up
   364 	// tidy up
   350 	r=TheFs.Delete(fn);
   365 	r=TheFs.Delete(fn);
   351 	test(r==KErrNone);
   366 	test_KErrNone(r);
   352 
   367 
   353 	test.End();
   368 	test.End();
   354 	}
   369 	}
   355 
   370 
   356 static void CopyFileToTestDirectory()
   371 static void CopyFileToTestDirectory()
   362 	TFileName fn = _L("Z:\\TEST\\T_FILE.CPP");
   377 	TFileName fn = _L("Z:\\TEST\\T_FILE.CPP");
   363 	fn[0] = gExeFileName[0];
   378 	fn[0] = gExeFileName[0];
   364 	TParse f;
   379 	TParse f;
   365 	TInt r;
   380 	TInt r;
   366 	r=TheFs.Parse(fn,f);
   381 	r=TheFs.Parse(fn,f);
   367 	test(r==KErrNone);
   382 	test_KErrNone(r);
   368 	TParse fCopy;
   383 	TParse fCopy;
   369 	r=TheFs.Parse(f.NameAndExt(),fCopy);
   384 	r=TheFs.Parse(f.NameAndExt(),fCopy);
   370 	test(r==KErrNone);
   385 	test_KErrNone(r);
   371 
   386 
   372 	RFile f1;
   387 	RFile f1;
   373 	r=f1.Open(TheFs,f.FullName(),EFileStreamText|EFileShareReadersOnly);
   388 	r=f1.Open(TheFs,f.FullName(),EFileStreamText|EFileShareReadersOnly);
   374 	test(r==KErrNone);
   389 	test_KErrNone(r);
   375 	RFile f2;
   390 	RFile f2;
   376 	r=f2.Replace(TheFs,fCopy.FullName(),EFileWrite);
   391 	r=f2.Replace(TheFs,fCopy.FullName(),EFileWrite);
   377 	test(r==KErrNone);
   392 	test_KErrNone(r);
   378 	TBuf8<512> copyBuf;
   393 	TBuf8<512> copyBuf;
   379 	TInt rem;
   394 	TInt rem;
   380 	r=f1.Size(rem);
   395 	r=f1.Size(rem);
   381 	test(r==KErrNone);
   396 	test_KErrNone(r);
   382 	TInt pos=0;
   397 	TInt pos=0;
   383 	while (rem)
   398 	while (rem)
   384 		{
   399 		{
   385 		TInt s=Min(rem,copyBuf.MaxSize());
   400 		TInt s=Min(rem,copyBuf.MaxSize());
   386 		r=f1.Read(pos,copyBuf,s);
   401 		r=f1.Read(pos,copyBuf,s);
   387 		test(r==KErrNone);
   402 		test_KErrNone(r);
   388 		test(copyBuf.Length()==s);
   403 		test(copyBuf.Length()==s);
   389 		r=f2.Write(pos,copyBuf,s);
   404 		r=f2.Write(pos,copyBuf,s);
   390 		test(r==KErrNone);
   405 		test_KErrNone(r);
   391 		pos+=s;
   406 		pos+=s;
   392 		rem-=s;
   407 		rem-=s;
   393 		}
   408 		}
   394 	f1.Close();
   409 	f1.Close();
   395 	f2.Close();
   410 	f2.Close();
   409 	record[3].Set(_L("Fourth record"));
   424 	record[3].Set(_L("Fourth record"));
   410 	record[4].Set(_L("Fifth record"));
   425 	record[4].Set(_L("Fifth record"));
   411 
   426 
   412 	RFile f;
   427 	RFile f;
   413 	TInt r=f.Replace(TheFs,_L("TEXTFILE.TXT"),0);
   428 	TInt r=f.Replace(TheFs,_L("TEXTFILE.TXT"),0);
   414 	test(r==KErrNone);
   429 	test_KErrNone(r);
   415 	TFileText textFile;
   430 	TFileText textFile;
   416 	textFile.Set(f);
   431 	textFile.Set(f);
   417 	TInt i=0;
   432 	TInt i=0;
   418 	for (i=0;i<5;i++)
   433 	for (i=0;i<5;i++)
   419 		{
   434 		{
   420 		r=textFile.Write(record[i]);
   435 		r=textFile.Write(record[i]);
   421 		test(r==KErrNone);
   436 		test_KErrNone(r);
   422 		}
   437 		}
   423 	r=textFile.Seek(ESeekStart);
   438 	r=textFile.Seek(ESeekStart);
   424 	test(r==KErrNone);
   439 	test_KErrNone(r);
   425 	TBuf<16> recBuf;
   440 	TBuf<16> recBuf;
   426 	for(i=0;i<5;i++)
   441 	for(i=0;i<5;i++)
   427 		{
   442 		{
   428 		r=textFile.Read(recBuf);
   443 		r=textFile.Read(recBuf);
   429 		test(r==KErrNone);
   444 		test_KErrNone(r);
   430 		test(recBuf==record[i]);
   445 		test(recBuf==record[i]);
   431 		}
   446 		}
   432 	r=textFile.Read(recBuf);
   447 	r=textFile.Read(recBuf);
   433 	test(r==KErrEof);
   448 	test_Value(r, r == KErrEof);
   434 	test(recBuf.Length()==0);
   449 	test(recBuf.Length()==0);
   435 	f.Close();
   450 	f.Close();
   436 
   451 
   437 	test.Next(_L("Test dosfile terminator"));
   452 	test.Next(_L("Test dosfile terminator"));
   438 	TPtrC8 trecord[7];
   453 	TPtrC8 trecord[7];
   450 	trecord[3].Set((TUint8*)tTextrecord[3].Ptr(),tTextrecord[3].Length()*sizeof(TText));
   465 	trecord[3].Set((TUint8*)tTextrecord[3].Ptr(),tTextrecord[3].Length()*sizeof(TText));
   451 	trecord[4].Set((TUint8*)tTextrecord[4].Ptr(),tTextrecord[4].Length()*sizeof(TText));
   466 	trecord[4].Set((TUint8*)tTextrecord[4].Ptr(),tTextrecord[4].Length()*sizeof(TText));
   452 	trecord[5].Set((TUint8*)tTextrecord[5].Ptr(),tTextrecord[5].Length()*sizeof(TText));
   467 	trecord[5].Set((TUint8*)tTextrecord[5].Ptr(),tTextrecord[5].Length()*sizeof(TText));
   453 	trecord[6].Set((TUint8*)tTextrecord[6].Ptr(),tTextrecord[6].Length()*sizeof(TText));
   468 	trecord[6].Set((TUint8*)tTextrecord[6].Ptr(),tTextrecord[6].Length()*sizeof(TText));
   454 	r=f.Replace(TheFs,_L("TEXTFILE.TXT"),0);
   469 	r=f.Replace(TheFs,_L("TEXTFILE.TXT"),0);
   455 	test(r==KErrNone);
   470 	test_KErrNone(r);
   456 	for(i=0;i<7;i++)
   471 	for(i=0;i<7;i++)
   457 		{
   472 		{
   458 		TBuf8<256> buf;
   473 		TBuf8<256> buf;
   459 		buf.Copy(trecord[i]);
   474 		buf.Copy(trecord[i]);
   460 		r=f.Write(buf);
   475 		r=f.Write(buf);
   461 		test(r==KErrNone);
   476 		test_KErrNone(r);
   462 		}
   477 		}
   463 	textFile.Set(f);
   478 	textFile.Set(f);
   464 	textFile.Seek(ESeekStart);
   479 	textFile.Seek(ESeekStart);
   465 	for(i=0;i<5;i++)
   480 	for(i=0;i<5;i++)
   466 		{
   481 		{
   467 		r=textFile.Read(recBuf);
   482 		r=textFile.Read(recBuf);
   468 		test(r==KErrNone);
   483 		test_KErrNone(r);
   469 		test(recBuf==record[i]);
   484 		test(recBuf==record[i]);
   470 		}
   485 		}
   471 	r=textFile.Read(recBuf);
   486 	r=textFile.Read(recBuf);
   472 	test(r==KErrNone);
   487 	test_KErrNone(r);
   473 	test(recBuf==_L("Sixth record"));
   488 	test(recBuf==_L("Sixth record"));
   474 	r=textFile.Read(recBuf);
   489 	r=textFile.Read(recBuf);
   475 	test(r==KErrNone);
   490 	test_KErrNone(r);
   476 	test(recBuf==_L("\rSeventh record"));
   491 	test(recBuf==_L("\rSeventh record"));
   477 	r=textFile.Read(recBuf);
   492 	r=textFile.Read(recBuf);
   478 	test(r==KErrEof);
   493 	test_Value(r, r == KErrEof);
   479 	test(recBuf.Length()==0);
   494 	test(recBuf.Length()==0);
   480 	f.Close();
   495 	f.Close();
   481 
   496 
   482 	test.Next(_L("Test read with bufferSize == dataSize"));
   497 	test.Next(_L("Test read with bufferSize == dataSize"));
   483 	r=f.Replace(TheFs,_L("TEXTFILE.TXT"),0);
   498 	r=f.Replace(TheFs,_L("TEXTFILE.TXT"),0);
   484 	test(r==KErrNone);
   499 	test_KErrNone(r);
   485 	record[0].Set(_L("1234567890123456"));
   500 	record[0].Set(_L("1234567890123456"));
   486 //	trecord[0].Set(_L8("1234567890123456\r\n"));
   501 //	trecord[0].Set(_L8("1234567890123456\r\n"));
   487 //	trecord[1].Set(_L8("1234567890123456\n"));
   502 //	trecord[1].Set(_L8("1234567890123456\n"));
   488 
   503 
   489 	TPtrC tmpTextrecord;
   504 	TPtrC tmpTextrecord;
   494 	trecord[1].Set((TUint8*)tmpTextrecord.Ptr(),tmpTextrecord.Length()*sizeof(TText));
   509 	trecord[1].Set((TUint8*)tmpTextrecord.Ptr(),tmpTextrecord.Length()*sizeof(TText));
   495 
   510 
   496 	for (i=0;i<2;i++)
   511 	for (i=0;i<2;i++)
   497 		{
   512 		{
   498 		r=f.Write(trecord[i]);
   513 		r=f.Write(trecord[i]);
   499 		test(r==KErrNone);
   514 		test_KErrNone(r);
   500 		}
   515 		}
   501 	textFile.Set(f);
   516 	textFile.Set(f);
   502 	textFile.Seek(ESeekStart);
   517 	textFile.Seek(ESeekStart);
   503 	for(i=0;i<2;i++)
   518 	for(i=0;i<2;i++)
   504 		{
   519 		{
   505 		r=textFile.Read(recBuf);
   520 		r=textFile.Read(recBuf);
   506 		test(r==KErrNone);
   521 		test_KErrNone(r);
   507 		test(recBuf==record[0]);
   522 		test(recBuf==record[0]);
   508 		}
   523 		}
   509 	r=textFile.Read(recBuf);
   524 	r=textFile.Read(recBuf);
   510 	test(r==KErrEof);
   525 	test_Value(r, r == KErrEof);
   511 	test(recBuf.Length()==0);
   526 	test(recBuf.Length()==0);
   512 	f.Close();
   527 	f.Close();
   513 
   528 
   514 	test.Next(_L("Read into a buffer < recordSize"));
   529 	test.Next(_L("Read into a buffer < recordSize"));
   515 	TBuf<8> smallBuf;
   530 	TBuf<8> smallBuf;
   516 	r=f.Open(TheFs,_L("TEXTFILE.txt"),0);
   531 	r=f.Open(TheFs,_L("TEXTFILE.txt"),0);
   517 	test(r==KErrNone);
   532 	test_KErrNone(r);
   518 	textFile.Set(f);
   533 	textFile.Set(f);
   519 	for(i=0;i<2;i++)
   534 	for(i=0;i<2;i++)
   520 		{
   535 		{
   521 		r=textFile.Read(smallBuf);
   536 		r=textFile.Read(smallBuf);
   522 		test(r==KErrTooBig);
   537 		test_Value(r, r == KErrTooBig);
   523 		test(smallBuf==_L("12345678"));
   538 		test(smallBuf==_L("12345678"));
   524 		}
   539 		}
   525 	f.Close();
   540 	f.Close();
   526 
   541 
   527 	test.Next(_L("Nasty cases: 1) \\r \\n split over buffer boundary"));
   542 	test.Next(_L("Nasty cases: 1) \\r \\n split over buffer boundary"));
   528 	r=f.Replace(TheFs,_L("TEXTFILE.txt"),0);
   543 	r=f.Replace(TheFs,_L("TEXTFILE.txt"),0);
   529 	test(r==KErrNone);
   544 	test_KErrNone(r);
   530 	HBufC* largeRecord=HBufC::NewL(600);
   545 	HBufC* largeRecord=HBufC::NewL(600);
   531 	largeRecord->Des().SetLength(250);
   546 	largeRecord->Des().SetLength(250);
   532 	largeRecord->Des().Fill('A');
   547 	largeRecord->Des().Fill('A');
   533 	largeRecord->Des()[249]='\n';
   548 	largeRecord->Des()[249]='\n';
   534 	TPtrC8 bufPtr;
   549 	TPtrC8 bufPtr;
   535 	bufPtr.Set((TUint8*)largeRecord->Ptr(),largeRecord->Size()); // Size() returns length in bytes
   550 	bufPtr.Set((TUint8*)largeRecord->Ptr(),largeRecord->Size()); // Size() returns length in bytes
   536 	r=f.Write(bufPtr);
   551 	r=f.Write(bufPtr);
   537 	test(r==KErrNone);
   552 	test_KErrNone(r);
   538 	TBuf<16> boundaryBuf=_L("12345\r\n");
   553 	TBuf<16> boundaryBuf=_L("12345\r\n");
   539 	bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size());
   554 	bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size());
   540 	r=f.Write(bufPtr);
   555 	r=f.Write(bufPtr);
   541 	test(r==KErrNone);
   556 	test_KErrNone(r);
   542 	r=f.Write(trecord[0]);
   557 	r=f.Write(trecord[0]);
   543 	test(r==KErrNone);
   558 	test_KErrNone(r);
   544 
   559 
   545 	textFile.Set(f);
   560 	textFile.Set(f);
   546 	textFile.Seek(ESeekStart);
   561 	textFile.Seek(ESeekStart);
   547 	r=textFile.Read(recBuf);
   562 	r=textFile.Read(recBuf);
   548 	test(r==KErrTooBig);
   563 	test_Value(r, r == KErrTooBig);
   549 	test(recBuf==_L("AAAAAAAAAAAAAAAA"));
   564 	test(recBuf==_L("AAAAAAAAAAAAAAAA"));
   550 	r=textFile.Read(recBuf);
   565 	r=textFile.Read(recBuf);
   551 	test(r==KErrNone);
   566 	test_KErrNone(r);
   552 	test(recBuf==_L("12345"));
   567 	test(recBuf==_L("12345"));
   553 	r=textFile.Read(recBuf);
   568 	r=textFile.Read(recBuf);
   554 	test(r==KErrNone);
   569 	test_KErrNone(r);
   555 	test(recBuf==record[0]);
   570 	test(recBuf==record[0]);
   556 	f.Close();
   571 	f.Close();
   557 
   572 
   558 	test.Next(_L("Nasty cases: 2) \\r on buffer boundary"));
   573 	test.Next(_L("Nasty cases: 2) \\r on buffer boundary"));
   559 	r=f.Replace(TheFs,_L("TEXTFILE.txt"),0);
   574 	r=f.Replace(TheFs,_L("TEXTFILE.txt"),0);
   560 	test(r==KErrNone);
   575 	test_KErrNone(r);
   561 	largeRecord->Des().SetLength(250);
   576 	largeRecord->Des().SetLength(250);
   562 	largeRecord->Des().Fill('A');
   577 	largeRecord->Des().Fill('A');
   563 	largeRecord->Des()[249]='\n';
   578 	largeRecord->Des()[249]='\n';
   564 	bufPtr.Set((TUint8*)largeRecord->Ptr(),largeRecord->Size());
   579 	bufPtr.Set((TUint8*)largeRecord->Ptr(),largeRecord->Size());
   565 	r=f.Write(bufPtr);
   580 	r=f.Write(bufPtr);
   566 	test(r==KErrNone);
   581 	test_KErrNone(r);
   567 	boundaryBuf=_L("12345\rxyz\n");
   582 	boundaryBuf=_L("12345\rxyz\n");
   568 	bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size());
   583 	bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size());
   569 	r=f.Write(bufPtr);
   584 	r=f.Write(bufPtr);
   570 	test(r==KErrNone);
   585 	test_KErrNone(r);
   571 	r=f.Write(trecord[0]);
   586 	r=f.Write(trecord[0]);
   572 	test(r==KErrNone);
   587 	test_KErrNone(r);
   573 
   588 
   574 	textFile.Set(f);
   589 	textFile.Set(f);
   575 	textFile.Seek(ESeekStart);
   590 	textFile.Seek(ESeekStart);
   576 	r=textFile.Read(recBuf);
   591 	r=textFile.Read(recBuf);
   577 	test(r==KErrTooBig);
   592 	test_Value(r, r == KErrTooBig);
   578 	test(recBuf==_L("AAAAAAAAAAAAAAAA"));
   593 	test(recBuf==_L("AAAAAAAAAAAAAAAA"));
   579 	r=textFile.Read(recBuf);
   594 	r=textFile.Read(recBuf);
   580 	test(r==KErrNone);
   595 	test_KErrNone(r);
   581 	test(recBuf==_L("12345\rxyz"));
   596 	test(recBuf==_L("12345\rxyz"));
   582 	r=textFile.Read(recBuf);
   597 	r=textFile.Read(recBuf);
   583 	test(r==KErrNone);
   598 	test_KErrNone(r);
   584 	test(recBuf==record[0]);
   599 	test(recBuf==record[0]);
   585 	f.Close();
   600 	f.Close();
   586 
   601 
   587 	test.Next(_L("Nasty cases: 3) record size > buffer size"));
   602 	test.Next(_L("Nasty cases: 3) record size > buffer size"));
   588 	r=f.Replace(TheFs,_L("TEXTFILE.txt"),0);
   603 	r=f.Replace(TheFs,_L("TEXTFILE.txt"),0);
   589 	test(r==KErrNone);
   604 	test_KErrNone(r);
   590 	largeRecord->Des().SetLength(600);
   605 	largeRecord->Des().SetLength(600);
   591 	largeRecord->Des().Fill('Z');
   606 	largeRecord->Des().Fill('Z');
   592 	largeRecord->Des()[511]='\r';
   607 	largeRecord->Des()[511]='\r';
   593 	largeRecord->Des()[599]='\n';
   608 	largeRecord->Des()[599]='\n';
   594 	bufPtr.Set((TUint8*)largeRecord->Ptr(),largeRecord->Size());
   609 	bufPtr.Set((TUint8*)largeRecord->Ptr(),largeRecord->Size());
   595 	r=f.Write(bufPtr);
   610 	r=f.Write(bufPtr);
   596 	test(r==KErrNone);
   611 	test_KErrNone(r);
   597 	boundaryBuf=_L("12345\rxyz\n");
   612 	boundaryBuf=_L("12345\rxyz\n");
   598 	bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size());
   613 	bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size());
   599 	r=f.Write(bufPtr);
   614 	r=f.Write(bufPtr);
   600 	test(r==KErrNone);
   615 	test_KErrNone(r);
   601 	r=f.Write(trecord[0]);
   616 	r=f.Write(trecord[0]);
   602 	test(r==KErrNone);
   617 	test_KErrNone(r);
   603 
   618 
   604 	textFile.Set(f);
   619 	textFile.Set(f);
   605 	textFile.Seek(ESeekStart);
   620 	textFile.Seek(ESeekStart);
   606 	r=textFile.Read(recBuf);
   621 	r=textFile.Read(recBuf);
   607 	test(r==KErrTooBig);
   622 	test_Value(r, r == KErrTooBig);
   608 	test(recBuf==_L("ZZZZZZZZZZZZZZZZ"));
   623 	test(recBuf==_L("ZZZZZZZZZZZZZZZZ"));
   609 	r=textFile.Read(recBuf);
   624 	r=textFile.Read(recBuf);
   610 	test(r==KErrNone);
   625 	test_KErrNone(r);
   611 	test(recBuf==_L("12345\rxyz"));
   626 	test(recBuf==_L("12345\rxyz"));
   612 	r=textFile.Read(recBuf);
   627 	r=textFile.Read(recBuf);
   613 	test(r==KErrNone);
   628 	test_KErrNone(r);
   614 	test(recBuf==record[0]);
   629 	test(recBuf==record[0]);
   615 
   630 
   616 	TBuf<601> bigBuf;
   631 	TBuf<601> bigBuf;
   617 	TPtrC largePtr((TText*)largeRecord->Ptr(),(largeRecord->Length()-1));
   632 	TPtrC largePtr((TText*)largeRecord->Ptr(),(largeRecord->Length()-1));
   618 	textFile.Seek(ESeekStart);
   633 	textFile.Seek(ESeekStart);
   619 	r=textFile.Read(bigBuf);
   634 	r=textFile.Read(bigBuf);
   620 	test(r==KErrNone);
   635 	test_KErrNone(r);
   621 	test(bigBuf==largePtr);
   636 	test(bigBuf==largePtr);
   622 	r=textFile.Read(recBuf);
   637 	r=textFile.Read(recBuf);
   623 	test(r==KErrNone);
   638 	test_KErrNone(r);
   624 	test(recBuf==_L("12345\rxyz"));
   639 	test(recBuf==_L("12345\rxyz"));
   625 	r=textFile.Read(recBuf);
   640 	r=textFile.Read(recBuf);
   626 	test(r==KErrNone);
   641 	test_KErrNone(r);
   627 	test(recBuf==record[0]);
   642 	test(recBuf==record[0]);
   628 	f.Close();
   643 	f.Close();
   629 
   644 
   630 	User::Free(largeRecord);
   645 	User::Free(largeRecord);
   631 	}
   646 	}
   637 	{
   652 	{
   638 
   653 
   639 	test.Next(_L("Test FileText last record has no terminator"));
   654 	test.Next(_L("Test FileText last record has no terminator"));
   640 	RFile f;
   655 	RFile f;
   641 	TInt r=f.Replace(TheFs,_L("TextFile"),0);
   656 	TInt r=f.Replace(TheFs,_L("TextFile"),0);
   642 	test(r==KErrNone);
   657 	test_KErrNone(r);
   643 	TPtrC8 bufPtr;
   658 	TPtrC8 bufPtr;
   644 	TBuf<16>boundaryBuf=_L("Record1\n");
   659 	TBuf<16>boundaryBuf=_L("Record1\n");
   645 	bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size());
   660 	bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size());
   646 	r=f.Write(bufPtr);
   661 	r=f.Write(bufPtr);
   647 	test(r==KErrNone);
   662 	test_KErrNone(r);
   648 	boundaryBuf=_L("Record2\n");
   663 	boundaryBuf=_L("Record2\n");
   649 	bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size());
   664 	bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size());
   650 	r=f.Write(bufPtr);
   665 	r=f.Write(bufPtr);
   651 	test(r==KErrNone);
   666 	test_KErrNone(r);
   652 	boundaryBuf=_L("Record3\n");
   667 	boundaryBuf=_L("Record3\n");
   653 	bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size());
   668 	bufPtr.Set((TUint8*)boundaryBuf.Ptr(),boundaryBuf.Size());
   654 	r=f.Write(bufPtr);
   669 	r=f.Write(bufPtr);
   655 	test(r==KErrNone);
   670 	test_KErrNone(r);
   656 
   671 
   657 	TFileText fText;
   672 	TFileText fText;
   658 	fText.Set(f);
   673 	fText.Set(f);
   659 	r=fText.Seek(ESeekStart);
   674 	r=fText.Seek(ESeekStart);
   660 	test(r==KErrNone);
   675 	test_KErrNone(r);
   661 	TBuf<32> recBuf;
   676 	TBuf<32> recBuf;
   662 	r=fText.Read(recBuf);
   677 	r=fText.Read(recBuf);
   663 	test(r==KErrNone);
   678 	test_KErrNone(r);
   664 	test(recBuf.MatchF(_L("record1"))!=KErrNotFound);
   679 	test(recBuf.MatchF(_L("record1"))!=KErrNotFound);
   665 	r=fText.Read(recBuf);
   680 	r=fText.Read(recBuf);
   666 	test(r==KErrNone);
   681 	test_KErrNone(r);
   667 	test(recBuf.MatchF(_L("record2"))!=KErrNotFound);
   682 	test(recBuf.MatchF(_L("record2"))!=KErrNotFound);
   668 	r=fText.Read(recBuf);
   683 	r=fText.Read(recBuf);
   669 	test(r==KErrNone);
   684 	test_KErrNone(r);
   670 	test(recBuf.MatchF(_L("record3"))!=KErrNotFound);
   685 	test(recBuf.MatchF(_L("record3"))!=KErrNotFound);
   671 	r=fText.Read(recBuf);
   686 	r=fText.Read(recBuf);
   672 	test(r==KErrEof);
   687 	test_Value(r, r == KErrEof);
   673 	test(recBuf.Length()==0);
   688 	test(recBuf.Length()==0);
   674 	f.Close();
   689 	f.Close();
   675 
   690 
   676 	TBuf<0x100> bigBuf(0x100);
   691 	TBuf<0x100> bigBuf(0x100);
   677 	bigBuf.Fill('A');
   692 	bigBuf.Fill('A');
   678 	r=f.Replace(TheFs,_L("TextFile"),0);
   693 	r=f.Replace(TheFs,_L("TextFile"),0);
   679 	test(r==KErrNone);
   694 	test_KErrNone(r);
   680 
   695 
   681     bufPtr.Set((TUint8*)bigBuf.Ptr(),bigBuf.Size());
   696     bufPtr.Set((TUint8*)bigBuf.Ptr(),bigBuf.Size());
   682 	r=f.Write(bufPtr);
   697 	r=f.Write(bufPtr);
   683 	test(r==KErrNone);
   698 	test_KErrNone(r);
   684 
   699 
   685 	fText.Set(f);
   700 	fText.Set(f);
   686 	r=fText.Seek(ESeekStart);
   701 	r=fText.Seek(ESeekStart);
   687 	test(r==KErrNone);
   702 	test_KErrNone(r);
   688 	bigBuf.SetLength(0);
   703 	bigBuf.SetLength(0);
   689 	r=fText.Read(bigBuf);
   704 	r=fText.Read(bigBuf);
   690 	test.Printf(_L("fText.Read returns %d\n"),r);
   705 	test.Printf(_L("fText.Read returns %d\n"),r);
   691 	test(r==KErrNone);
   706 	test_KErrNone(r);
   692 	test.Printf(_L("BigBuf.Length()==%d\n"),bigBuf.Length());
   707 	test.Printf(_L("BigBuf.Length()==%d\n"),bigBuf.Length());
   693 	test(bigBuf.Length()==0x100);
   708 	test(bigBuf.Length()==0x100);
   694 	r=fText.Read(bigBuf);
   709 	r=fText.Read(bigBuf);
   695 	test(r==KErrEof);
   710 	test_Value(r, r == KErrEof);
   696 	test(bigBuf.Length()==0);
   711 	test(bigBuf.Length()==0);
   697 	f.Close();
   712 	f.Close();
   698 	}
   713 	}
   699 
   714 
   700 static void testFileNames()
   715 static void testFileNames()
   705 
   720 
   706 	test.Next(_L("Test temp filenames specify drive"));
   721 	test.Next(_L("Test temp filenames specify drive"));
   707 	TFileName tempFileName;
   722 	TFileName tempFileName;
   708 	RFile f;
   723 	RFile f;
   709 	TInt r=f.Temp(TheFs,_L(""),tempFileName,EFileRead);
   724 	TInt r=f.Temp(TheFs,_L(""),tempFileName,EFileRead);
   710 	test(r==KErrNone);
   725 	test_KErrNone(r);
   711 	TParse p;
   726 	TParse p;
   712 	p.Set(tempFileName,NULL,NULL);
   727 	p.Set(tempFileName,NULL,NULL);
   713 	test(p.DrivePresent());
   728 	test(p.DrivePresent());
   714 	test(p.PathPresent());
   729 	test(p.PathPresent());
   715 	test(p.NamePresent());
   730 	test(p.NamePresent());
   716 	test(p.ExtPresent());
   731 	test(p.ExtPresent());
   717 	f.Close();
   732 	f.Close();
   718 
   733 
   719 	r=f.Replace(TheFs,_L("WELCOMETO"),EFileWrite);
   734 	r=f.Replace(TheFs,_L("WELCOMETO"),EFileWrite);
   720 	test(r==KErrNone);
   735 	test_KErrNone(r);
   721 	f.Close();
   736 	f.Close();
   722 	r=f.Replace(TheFs,_L("WELCOMETO.WRD"),EFileWrite);
   737 	r=f.Replace(TheFs,_L("WELCOMETO.WRD"),EFileWrite);
   723 	test(r==KErrNone);
   738 	test_KErrNone(r);
   724 	f.Close();
   739 	f.Close();
   725 	}
   740 	}
   726 
   741 
   727 // Nasty hack - mask attributes returned by RFile::Att() with this.
   742 // Nasty hack - mask attributes returned by RFile::Att() with this.
   728 // File server used to do this but that stopped the XIP attribute on the ROM file system
   743 // File server used to do this but that stopped the XIP attribute on the ROM file system
   737 	{
   752 	{
   738 
   753 
   739 	test.Next(_L("Archive att is set after creation"));
   754 	test.Next(_L("Archive att is set after creation"));
   740 	RFile f;
   755 	RFile f;
   741 	TInt r=TheFs.Delete(_L("FILEATT.ARC"));
   756 	TInt r=TheFs.Delete(_L("FILEATT.ARC"));
   742 	test(r==KErrNone || r==KErrNotFound);
   757 	test_Value(r, r == KErrNone || r==KErrNotFound);
   743 	r=f.Create(TheFs,_L("FILEATT.ARC"),EFileRead);
   758 	r=f.Create(TheFs,_L("FILEATT.ARC"),EFileRead);
   744 	test(r==KErrNone);
   759 	test_KErrNone(r);
   745 	TUint atts;
   760 	TUint atts;
   746 	r=f.Att(atts);
   761 	r=f.Att(atts);
   747 	test(r==KErrNone);
   762 	test_KErrNone(r);
   748 	test((atts&ATT_MASK)==KEntryAttArchive);
   763 	test((atts&ATT_MASK)==KEntryAttArchive);
   749 	TEntry fileAtt;
   764 	TEntry fileAtt;
   750 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   765 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   751 	test(r==KErrNone);
   766 	test_KErrNone(r);
   752 	test(fileAtt.iAtt==KEntryAttArchive);
   767 	test(fileAtt.iAtt==KEntryAttArchive);
   753 	f.Close();
   768 	f.Close();
   754 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   769 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   755 	test(r==KErrNone);
   770 	test_KErrNone(r);
   756 	test(fileAtt.iAtt==KEntryAttArchive);
   771 	test(fileAtt.iAtt==KEntryAttArchive);
   757 
   772 
   758 	test.Next(_L("Archive att is set after a write"));
   773 	test.Next(_L("Archive att is set after a write"));
   759 	TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive);
   774 	TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive);
   760 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   775 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   761 	test(r==KErrNone);
   776 	test_KErrNone(r);
   762 	test(fileAtt.iAtt==0);
   777 	test(fileAtt.iAtt==0);
   763 	r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite);
   778 	r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite);
   764 	test(r==KErrNone);
   779 	test_KErrNone(r);
   765 	r=f.Write(_L8("Hello World"));
   780 	r=f.Write(_L8("Hello World"));
   766 	test(r==KErrNone);
   781 	test_KErrNone(r);
   767 	r=f.Att(atts);
   782 	r=f.Att(atts);
   768 	test(r==KErrNone);
   783 	test_KErrNone(r);
   769 	test((atts&ATT_MASK)==KEntryAttArchive);
   784 	test((atts&ATT_MASK)==KEntryAttArchive);
   770 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   785 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   771 	test(r==KErrNone);
   786 	test_KErrNone(r);
   772 	test(fileAtt.iAtt==KEntryAttArchive);
   787 	test(fileAtt.iAtt==KEntryAttArchive);
   773 	f.Close();
   788 	f.Close();
   774 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   789 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   775 	test(r==KErrNone);
   790 	test_KErrNone(r);
   776 	test(fileAtt.iAtt==KEntryAttArchive);
   791 	test(fileAtt.iAtt==KEntryAttArchive);
   777 
   792 
   778 	test.Next(_L("Archive att is set after setsize"));
   793 	test.Next(_L("Archive att is set after setsize"));
   779 	TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive);
   794 	TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive);
   780 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   795 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   781 	test(r==KErrNone);
   796 	test_KErrNone(r);
   782 	test(fileAtt.iAtt==0);
   797 	test(fileAtt.iAtt==0);
   783 	r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite);
   798 	r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite);
   784 	test(r==KErrNone);
   799 	test_KErrNone(r);
   785 	r=f.SetSize(447);
   800 	r=f.SetSize(447);
   786 	test(r==KErrNone);
   801 	test_KErrNone(r);
   787 	TInt size;
   802 	TInt size;
   788 	r=f.Size(size);
   803 	r=f.Size(size);
   789 	test(r==KErrNone);
   804 	test_KErrNone(r);
   790 	test(size==447);
   805 	test(size==447);
   791 	r=f.Att(atts);
   806 	r=f.Att(atts);
   792 	test(r==KErrNone);
   807 	test_KErrNone(r);
   793 	test((atts&ATT_MASK)==KEntryAttArchive);
   808 	test((atts&ATT_MASK)==KEntryAttArchive);
   794 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   809 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   795 	test(r==KErrNone);
   810 	test_KErrNone(r);
   796 	test(fileAtt.iAtt==KEntryAttArchive);
   811 	test(fileAtt.iAtt==KEntryAttArchive);
   797 	f.Close();
   812 	f.Close();
   798 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   813 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   799 	test(r==KErrNone);
   814 	test_KErrNone(r);
   800 	test(fileAtt.iAtt==KEntryAttArchive);
   815 	test(fileAtt.iAtt==KEntryAttArchive);
   801 
   816 
   802 	test.Next(_L("Archive att is not set after open"));
   817 	test.Next(_L("Archive att is not set after open"));
   803 	r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive);
   818 	r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive);
   804 	test(r==KErrNone);
   819 	test_KErrNone(r);
   805 	r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite);
   820 	r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite);
   806 	test(r==KErrNone);
   821 	test_KErrNone(r);
   807 	r=f.Att(atts);
   822 	r=f.Att(atts);
   808 	test(r==KErrNone);
   823 	test_KErrNone(r);
   809 	test((atts&ATT_MASK)==0);
   824 	test((atts&ATT_MASK)==0);
   810 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   825 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   811 	test(r==KErrNone);
   826 	test_KErrNone(r);
   812 	test(fileAtt.iAtt==0);
   827 	test(fileAtt.iAtt==0);
   813 	f.Close();
   828 	f.Close();
   814 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   829 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   815 	test(r==KErrNone);
   830 	test_KErrNone(r);
   816 	test(fileAtt.iAtt==0);
   831 	test(fileAtt.iAtt==0);
   817 
   832 
   818 	test.Next(_L("Archive att is not set after a read"));
   833 	test.Next(_L("Archive att is not set after a read"));
   819 	TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive);
   834 	TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttArchive);
   820 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   835 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   821 	test(r==KErrNone);
   836 	test_KErrNone(r);
   822 	test(fileAtt.iAtt==0);
   837 	test(fileAtt.iAtt==0);
   823 	r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite);
   838 	r=f.Open(TheFs,_L("FILEATT.ARC"),EFileWrite);
   824 	test(r==KErrNone);
   839 	test_KErrNone(r);
   825 	TBuf8<16> readBuf;
   840 	TBuf8<16> readBuf;
   826 	r=f.Read(readBuf);
   841 	r=f.Read(readBuf);
   827 	test(r==KErrNone);
   842 	test_KErrNone(r);
   828 	r=f.Att(atts);
   843 	r=f.Att(atts);
   829 	test(r==KErrNone);
   844 	test_KErrNone(r);
   830 	test((atts&ATT_MASK)==0);
   845 	test((atts&ATT_MASK)==0);
   831 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   846 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   832 	test(r==KErrNone);
   847 	test_KErrNone(r);
   833 	test(fileAtt.iAtt==0);
   848 	test(fileAtt.iAtt==0);
   834 	f.Close();
   849 	f.Close();
   835 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   850 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   836 	test(r==KErrNone);
   851 	test_KErrNone(r);
   837 	test(fileAtt.iAtt==0);
   852 	test(fileAtt.iAtt==0);
   838 
   853 
   839 	test.Next(_L("Archive att is set after replace"));
   854 	test.Next(_L("Archive att is set after replace"));
   840 	r=f.Replace(TheFs,_L("FILEATT.ARC"),EFileWrite);
   855 	r=f.Replace(TheFs,_L("FILEATT.ARC"),EFileWrite);
   841 	test(r==KErrNone);
   856 	test_KErrNone(r);
   842 	r=f.Att(atts);
   857 	r=f.Att(atts);
   843 	test(r==KErrNone);
   858 	test_KErrNone(r);
   844 	test((atts&ATT_MASK)==KEntryAttArchive);
   859 	test((atts&ATT_MASK)==KEntryAttArchive);
   845 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   860 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   846 	test(r==KErrNone);
   861 	test_KErrNone(r);
   847 	test(fileAtt.iAtt==KEntryAttArchive);
   862 	test(fileAtt.iAtt==KEntryAttArchive);
   848 	f.Close();
   863 	f.Close();
   849 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   864 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   850 	test(r==KErrNone);
   865 	test_KErrNone(r);
   851 	test(fileAtt.iAtt==KEntryAttArchive);
   866 	test(fileAtt.iAtt==KEntryAttArchive);
   852 
   867 
   853 	test.Next(_L("Read only bit can be unset"));
   868 	test.Next(_L("Read only bit can be unset"));
   854 	r=TheFs.SetAtt(_L("FILEATT.ARC"),KEntryAttReadOnly|KEntryAttHidden,0);
   869 	r=TheFs.SetAtt(_L("FILEATT.ARC"),KEntryAttReadOnly|KEntryAttHidden,0);
   855 	test(r==KErrNone);
   870 	test_KErrNone(r);
   856 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   871 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   857 	test(r==KErrNone);
   872 	test_KErrNone(r);
   858 	test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive));
   873 	test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive));
   859 
   874 
   860 	r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttHidden);
   875 	r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttHidden);
   861 	test(r==KErrNone);
   876 	test_KErrNone(r);
   862 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   877 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   863 	test(r==KErrNone);
   878 	test_KErrNone(r);
   864 	test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttArchive));
   879 	test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttArchive));
   865 
   880 
   866 	r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttReadOnly);
   881 	r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttReadOnly);
   867 	test(r==KErrNone);
   882 	test_KErrNone(r);
   868 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   883 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   869 	test(r==KErrNone);
   884 	test_KErrNone(r);
   870 	test(fileAtt.iAtt==(KEntryAttArchive));
   885 	test(fileAtt.iAtt==(KEntryAttArchive));
   871 
   886 
   872 	r=TheFs.SetAtt(_L("FILEATT.ARC"),KEntryAttReadOnly|KEntryAttHidden,0);
   887 	r=TheFs.SetAtt(_L("FILEATT.ARC"),KEntryAttReadOnly|KEntryAttHidden,0);
   873 	test(r==KErrNone);
   888 	test_KErrNone(r);
   874 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   889 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   875 	test(r==KErrNone);
   890 	test_KErrNone(r);
   876 	test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive));
   891 	test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive));
   877 
   892 
   878 	r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttReadOnly);
   893 	r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttReadOnly);
   879 	test(r==KErrNone);
   894 	test_KErrNone(r);
   880 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   895 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   881 	test(r==KErrNone);
   896 	test_KErrNone(r);
   882 	test(fileAtt.iAtt==(KEntryAttHidden|KEntryAttArchive));
   897 	test(fileAtt.iAtt==(KEntryAttHidden|KEntryAttArchive));
   883 
   898 
   884 	r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttHidden);
   899 	r=TheFs.SetAtt(_L("FILEATT.ARC"),0,KEntryAttHidden);
   885 	test(r==KErrNone);
   900 	test_KErrNone(r);
   886 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   901 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   887 	test(r==KErrNone);
   902 	test_KErrNone(r);
   888 	test(fileAtt.iAtt==(KEntryAttArchive));
   903 	test(fileAtt.iAtt==(KEntryAttArchive));
   889 
   904 
   890 	TTime time(0);
   905 	TTime time(0);
   891 	r=TheFs.SetEntry(_L("FILEATT.ARC"),time,KEntryAttReadOnly|KEntryAttHidden,0);
   906 	r=TheFs.SetEntry(_L("FILEATT.ARC"),time,KEntryAttReadOnly|KEntryAttHidden,0);
   892 	test(r==KErrNone);
   907 	test_KErrNone(r);
   893 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   908 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   894 	test(r==KErrNone);
   909 	test_KErrNone(r);
   895 	test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive));
   910 	test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive));
   896 
   911 
   897 	r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttHidden);
   912 	r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttHidden);
   898 	test(r==KErrNone);
   913 	test_KErrNone(r);
   899 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   914 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   900 	test(r==KErrNone);
   915 	test_KErrNone(r);
   901 	test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttArchive));
   916 	test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttArchive));
   902 
   917 
   903 	r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttReadOnly);
   918 	r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttReadOnly);
   904 	test(r==KErrNone);
   919 	test_KErrNone(r);
   905 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   920 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   906 	test(r==KErrNone);
   921 	test_KErrNone(r);
   907 	test(fileAtt.iAtt==(KEntryAttArchive));
   922 	test(fileAtt.iAtt==(KEntryAttArchive));
   908 
   923 
   909 	r=TheFs.SetEntry(_L("FILEATT.ARC"),time,KEntryAttReadOnly|KEntryAttHidden,0);
   924 	r=TheFs.SetEntry(_L("FILEATT.ARC"),time,KEntryAttReadOnly|KEntryAttHidden,0);
   910 	test(r==KErrNone);
   925 	test_KErrNone(r);
   911 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   926 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   912 	test(r==KErrNone);
   927 	test_KErrNone(r);
   913 	test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive));
   928 	test(fileAtt.iAtt==(KEntryAttReadOnly|KEntryAttHidden|KEntryAttArchive));
   914 
   929 
   915 	r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttReadOnly);
   930 	r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttReadOnly);
   916 	test(r==KErrNone);
   931 	test_KErrNone(r);
   917 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   932 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   918 	test(r==KErrNone);
   933 	test_KErrNone(r);
   919 	test(fileAtt.iAtt==(KEntryAttHidden|KEntryAttArchive));
   934 	test(fileAtt.iAtt==(KEntryAttHidden|KEntryAttArchive));
   920 
   935 
   921 	r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttHidden);
   936 	r=TheFs.SetEntry(_L("FILEATT.ARC"),time,0,KEntryAttHidden);
   922 	test(r==KErrNone);
   937 	test_KErrNone(r);
   923 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   938 	r=TheFs.Entry(_L("FILEATT.ARC"),fileAtt);
   924 	test(r==KErrNone);
   939 	test_KErrNone(r);
   925 	test(fileAtt.iAtt==(KEntryAttArchive));
   940 	test(fileAtt.iAtt==(KEntryAttArchive));
   926 
   941 
   927 	test.Next(_L("Cashing the 'read-only' attribute"));
   942 	test.Next(_L("Cashing the 'read-only' attribute"));
   928 	const TDesC& fname = _L("TEST.RO");
   943 	const TDesC& fname = _L("TEST.RO");
   929 
   944 
   930 	// Test RO attribute after creating a file
   945 	// Test RO attribute after creating a file
   931 	r=f.Create(TheFs,fname,EFileWrite);
   946 	r=f.Create(TheFs,fname,EFileWrite);
   932 	test(r==KErrNone);
   947 	test_KErrNone(r);
   933 	r=f.SetAtt(KEntryAttReadOnly,0);
   948 	r=f.SetAtt(KEntryAttReadOnly,0);
   934 	test(r==KErrNone);
   949 	test_KErrNone(r);
   935 	r=f.Write(_L8("Hello World"));
   950 	r=f.Write(_L8("Hello World"));
   936 	test(r==KErrNone);					// <-- here!
   951 	test_KErrNone(r);					// <-- here!
   937 	f.Close();
   952 	f.Close();
   938 
   953 
   939 	// Test we can't open for write or delete a RO file
   954 	// Test we can't open for write or delete a RO file
   940 	r=f.Open(TheFs,fname,EFileWrite);
   955 	r=f.Open(TheFs,fname,EFileWrite);
   941 	test(r==KErrAccessDenied);
   956 	test_Value(r, r == KErrAccessDenied);
   942 	r=TheFs.Delete(fname);
   957 	r=TheFs.Delete(fname);
   943 	test(r==KErrAccessDenied);
   958 	test_Value(r, r == KErrAccessDenied);
   944 
   959 
   945 	// Tidy up and re-create test file
   960 	// Tidy up and re-create test file
   946 	r=TheFs.SetAtt(fname,0,KEntryAttReadOnly);
   961 	r=TheFs.SetAtt(fname,0,KEntryAttReadOnly);
   947 	test(r==KErrNone);
   962 	test_KErrNone(r);
   948 	r=TheFs.Delete(fname);
   963 	r=TheFs.Delete(fname);
   949 	test(r==KErrNone);
   964 	test_KErrNone(r);
   950 	r=f.Create(TheFs,fname,EFileWrite);
   965 	r=f.Create(TheFs,fname,EFileWrite);
   951 	test(r==KErrNone);
   966 	test_KErrNone(r);
   952 	f.Close();
   967 	f.Close();
   953 
   968 
   954 	// Test RO attribute after opening a file
   969 	// Test RO attribute after opening a file
   955 	r=f.Open(TheFs,fname,EFileWrite);
   970 	r=f.Open(TheFs,fname,EFileWrite);
   956 	test(r==KErrNone);
   971 	test_KErrNone(r);
   957 	r=f.SetAtt(KEntryAttReadOnly,0);
   972 	r=f.SetAtt(KEntryAttReadOnly,0);
   958 	test(r==KErrNone);
   973 	test_KErrNone(r);
   959 	r=f.Write(_L8("Hello World"));
   974 	r=f.Write(_L8("Hello World"));
   960 	test(r==KErrNone);
   975 	test_KErrNone(r);
   961 	f.Close();
   976 	f.Close();
   962 
   977 
   963 
   978 
   964 	test.Next(_L("Internal attribute can't be read"));
   979 	test.Next(_L("Internal attribute can't be read"));
   965 
   980 
   998 	f.Close();
  1013 	f.Close();
   999 
  1014 
  1000 
  1015 
  1001 	// Tidy up
  1016 	// Tidy up
  1002 	r=TheFs.SetAtt(fname,0,KEntryAttReadOnly);
  1017 	r=TheFs.SetAtt(fname,0,KEntryAttReadOnly);
  1003 	test(r==KErrNone);
  1018 	test_KErrNone(r);
  1004 	r=TheFs.Delete(fname);
  1019 	r=TheFs.Delete(fname);
  1005 	test(r==KErrNone);
  1020 	test_KErrNone(r);
  1006 	}
  1021 	}
  1007 
  1022 
  1008 static void testShortNameAccessorFunctions()
  1023 static void testShortNameAccessorFunctions()
  1009 //
  1024 //
  1010 // Test RFs::GetShortName(...)
  1025 // Test RFs::GetShortName(...)
  1019         }
  1034         }
  1020 
  1035 
  1021 
  1036 
  1022 	TBuf<64> sessionPath;
  1037 	TBuf<64> sessionPath;
  1023 	TInt r=TheFs.SessionPath(sessionPath);
  1038 	TInt r=TheFs.SessionPath(sessionPath);
  1024 	test(r==KErrNone);
  1039 	test_KErrNone(r);
  1025 	RFile f;
  1040 	RFile f;
  1026 	r=TheFs.MkDirAll(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\RANDOM.ENDBIT"));
  1041 	r=TheFs.MkDirAll(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\RANDOM.ENDBIT"));
  1027 	test(r==KErrNone || r==KErrAlreadyExists);
  1042 	test_Value(r, r == KErrNone || r==KErrAlreadyExists);
  1028 	r=f.Replace(TheFs,_L("LONGFILENAME.LONGEXT"),EFileWrite);
  1043 	r=f.Replace(TheFs,_L("LONGFILENAME.LONGEXT"),EFileWrite);
  1029 	test(r==KErrNone);
  1044 	test_KErrNone(r);
  1030 	f.Close();
  1045 	f.Close();
  1031 	r=f.Replace(TheFs,_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\LONGFILENAME.LONGEXT"),EFileWrite);
  1046 	r=f.Replace(TheFs,_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\LONGFILENAME.LONGEXT"),EFileWrite);
  1032 	test(r==KErrNone);
  1047 	test_KErrNone(r);
  1033 	f.Close();
  1048 	f.Close();
  1034 	r=f.Replace(TheFs,_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\BAD CHAR"),EFileWrite);
  1049 	r=f.Replace(TheFs,_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\BAD CHAR"),EFileWrite);
  1035 	test(r==KErrNone);
  1050 	test_KErrNone(r);
  1036 	f.Close();
  1051 	f.Close();
  1037 	r=f.Replace(TheFs,_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\GoodCHAR.TXT"),EFileWrite);
  1052 	r=f.Replace(TheFs,_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\GoodCHAR.TXT"),EFileWrite);
  1038 	test(r==KErrNone);
  1053 	test_KErrNone(r);
  1039 	f.Close();
  1054 	f.Close();
  1040 	TBuf<12> shortName1;
  1055 	TBuf<12> shortName1;
  1041 	TBuf<12> shortName2;
  1056 	TBuf<12> shortName2;
  1042 	TBuf<12> shortName3;
  1057 	TBuf<12> shortName3;
  1043 	TBuf<12> shortName4;
  1058 	TBuf<12> shortName4;
  1044 	TBuf<12> shortName5;
  1059 	TBuf<12> shortName5;
  1045 	r=TheFs.GetShortName(_L("LONGFILENAME.LONGEXT"),shortName1);
  1060 	r=TheFs.GetShortName(_L("LONGFILENAME.LONGEXT"),shortName1);
  1046 	test(r==KErrNone);
  1061 	test_KErrNone(r);
  1047 	r=TheFs.GetShortName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\LONGFILENAME.LONGEXT"),shortName2);
  1062 	r=TheFs.GetShortName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\LONGFILENAME.LONGEXT"),shortName2);
  1048 	test(r==KErrNone);
  1063 	test_KErrNone(r);
  1049 	r=TheFs.GetShortName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\BAD CHAR"),shortName3);
  1064 	r=TheFs.GetShortName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\BAD CHAR"),shortName3);
  1050 	test(r==KErrNone);
  1065 	test_KErrNone(r);
  1051 	r=TheFs.GetShortName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\GOODCHAR.TXT"),shortName4);
  1066 	r=TheFs.GetShortName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\GOODCHAR.TXT"),shortName4);
  1052 	test(r==KErrNone);
  1067 	test_KErrNone(r);
  1053 	r=TheFs.GetShortName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY"),shortName5);
  1068 	r=TheFs.GetShortName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY"),shortName5);
  1054 	test(r==KErrNone);
  1069 	test_KErrNone(r);
  1055 
  1070 
  1056 	if(Is_Win32(TheFs, gDriveNum))
  1071 	if(Is_Win32(TheFs, gDriveNum))
  1057 		{
  1072 		{
  1058 		test(shortName1==_L("LONGFI~1.LON"));
  1073 		test(shortName1==_L("LONGFI~1.LON"));
  1059 		test(shortName2==_L("LONGFI~1.LON"));
  1074 		test(shortName2==_L("LONGFI~1.LON"));
  1078 	TFileName longName5;
  1093 	TFileName longName5;
  1079 
  1094 
  1080 	if (Is_Win32(TheFs, gDriveNum))
  1095 	if (Is_Win32(TheFs, gDriveNum))
  1081 		{
  1096 		{
  1082 		r=TheFs.GetLongName(_L("LONGFI~1.LON"),longName1);
  1097 		r=TheFs.GetLongName(_L("LONGFI~1.LON"),longName1);
  1083 		test(r==KErrNone);
  1098 		test_KErrNone(r);
  1084 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\LONGFI~1.LON"),longName2);
  1099 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\LONGFI~1.LON"),longName2);
  1085 		test(r==KErrNone);
  1100 		test_KErrNone(r);
  1086 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\BADCHA~1"),longName3);
  1101 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\BADCHA~1"),longName3);
  1087 		test(r==KErrNone);
  1102 		test_KErrNone(r);
  1088 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\GOODCHAR.TXT"),longName4);
  1103 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\GOODCHAR.TXT"),longName4);
  1089 		test(r==KErrNone);
  1104 		test_KErrNone(r);
  1090 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE~1"),longName5);
  1105 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE~1"),longName5);
  1091 		test(r==KErrNone);
  1106 		test_KErrNone(r);
  1092 		}
  1107 		}
  1093 	else if (!IsTestingLFFS())
  1108 	else if (!IsTestingLFFS())
  1094 		{
  1109 		{
  1095 		r=TheFs.GetLongName(_L("LONGFI~1.LON"),longName1);
  1110 		r=TheFs.GetLongName(_L("LONGFI~1.LON"),longName1);
  1096 		test(r==KErrNone);
  1111 		test_KErrNone(r);
  1097 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\LONGFI~1.LON"),longName2);
  1112 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\LONGFI~1.LON"),longName2);
  1098 		test(r==KErrNone);
  1113 		test_KErrNone(r);
  1099 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\BAD_CHAR"),longName3);
  1114 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\BAD_CHAR"),longName3);
  1100 		test(r==KErrNone);
  1115 		test_KErrNone(r);
  1101 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\GOODCHAR.TXT"),longName4);
  1116 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\GOODCHAR.TXT"),longName4);
  1102 		test(r==KErrNone);
  1117 		test_KErrNone(r);
  1103 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE~1"),longName5);
  1118 		r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE~1"),longName5);
  1104 		test(r==KErrNone);
  1119 		test_KErrNone(r);
  1105 		}
  1120 		}
  1106     else
  1121     else
  1107     	{
  1122     	{
  1108 		// LFFS longname tests
  1123 		// LFFS longname tests
  1109         r=TheFs.GetLongName(shortName1,longName1);
  1124         r=TheFs.GetLongName(shortName1,longName1);
  1110         test(r==KErrNone);
  1125         test_KErrNone(r);
  1111         r=TheFs.SetSessionPath(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\"));
  1126         r=TheFs.SetSessionPath(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-DIRECTORY\\LASTDIR\\"));
  1112         test(r==KErrNone);
  1127         test_KErrNone(r);
  1113         r=TheFs.GetLongName(shortName2,longName2);
  1128         r=TheFs.GetLongName(shortName2,longName2);
  1114         test(r==KErrNone);
  1129         test_KErrNone(r);
  1115         r=TheFs.GetLongName(shortName3,longName3);
  1130         r=TheFs.GetLongName(shortName3,longName3);
  1116         test(r==KErrNone);
  1131         test_KErrNone(r);
  1117         r=TheFs.GetLongName(shortName4,longName4);
  1132         r=TheFs.GetLongName(shortName4,longName4);
  1118         test(r==KErrNone);
  1133         test_KErrNone(r);
  1119         r=TheFs.SetSessionPath(_L("\\F32-TST\\TFILE\\TOPLEVEL\\"));
  1134         r=TheFs.SetSessionPath(_L("\\F32-TST\\TFILE\\TOPLEVEL\\"));
  1120         test(r==KErrNone);
  1135         test_KErrNone(r);
  1121         r=TheFs.GetLongName(shortName5,longName5);
  1136         r=TheFs.GetLongName(shortName5,longName5);
  1122         test(r==KErrNone);
  1137         test_KErrNone(r);
  1123         r=TheFs.SetSessionPath(sessionPath);
  1138         r=TheFs.SetSessionPath(sessionPath);
  1124         test(r==KErrNone);
  1139         test_KErrNone(r);
  1125     	}
  1140     	}
  1126 
  1141 
  1127 	test(longName1==_L("LONGFILENAME.LONGEXT"));
  1142 	test(longName1==_L("LONGFILENAME.LONGEXT"));
  1128 	test(longName2==_L("LONGFILENAME.LONGEXT"));
  1143 	test(longName2==_L("LONGFILENAME.LONGEXT"));
  1129 	test(longName3==_L("BAD CHAR"));
  1144 	test(longName3==_L("BAD CHAR"));
  1130 	test(longName4.FindF(_L("GOODCHAR.TXT"))>=0);
  1145 	test(longName4.FindF(_L("GOODCHAR.TXT"))>=0);
  1131 	test(longName5==_L("MIDDLE-DIRECTORY"));
  1146 	test(longName5==_L("MIDDLE-DIRECTORY"));
  1132 
  1147 
  1133 	r=TheFs.GetShortName(_L("XXX.YYY"),shortName1);
  1148 	r=TheFs.GetShortName(_L("XXX.YYY"),shortName1);
  1134 	test(r==KErrNotFound);
  1149 	test_Value(r, r == KErrNotFound);
  1135 	r=TheFs.GetShortName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-YROTCERID\\LASTDIR\\BAD-CHAR"),shortName1);
  1150 	r=TheFs.GetShortName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-YROTCERID\\LASTDIR\\BAD-CHAR"),shortName1);
  1136 	test(r==KErrPathNotFound);
  1151 	test_Value(r, r == KErrPathNotFound);
  1137 	r=TheFs.GetLongName(_L("XXX.YYY"),longName1);
  1152 	r=TheFs.GetLongName(_L("XXX.YYY"),longName1);
  1138 	test(r==KErrNotFound);
  1153 	test_Value(r, r == KErrNotFound);
  1139 	r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-YROTCERID\\LASTDIR\\BAD-CHAR"),longName1);
  1154 	r=TheFs.GetLongName(_L("\\F32-TST\\TFILE\\TOPLEVEL\\MIDDLE-YROTCERID\\LASTDIR\\BAD-CHAR"),longName1);
  1140 	test(r==KErrPathNotFound);
  1155 	test_Value(r, r == KErrPathNotFound);
  1141 
  1156 
  1142 	r=TheFs.Delete(_L("LONGFILENAME.LONGEXT"));
  1157 	r=TheFs.Delete(_L("LONGFILENAME.LONGEXT"));
  1143 	test(r==KErrNone);
  1158 	test_KErrNone(r);
  1144 
  1159 
  1145 	TEntry romEntry;
  1160 	TEntry romEntry;
  1146 	r=TheFs.Entry(_L("Z:\\System"),romEntry);
  1161 	r=TheFs.Entry(_L("Z:\\System"),romEntry);
  1147 	if (r==KErrNotReady)
  1162 	if (r==KErrNotReady)
  1148 		{
  1163 		{
  1149 		test.Printf(_L("ERROR: No rom filesystem present"));
  1164 		test.Printf(_L("ERROR: No rom filesystem present"));
  1150 		//test.Getch();
  1165 		//test.Getch();
  1151 		//return;
  1166 		//return;
  1152 		}
  1167 		}
  1153 	test(r==KErrNone);
  1168 	test_KErrNone(r);
  1154 	TBuf<64> romFileName=_L("Z:\\");
  1169 	TBuf<64> romFileName=_L("Z:\\");
  1155 	romFileName.Append(romEntry.iName);
  1170 	romFileName.Append(romEntry.iName);
  1156 	r=TheFs.GetShortName(romFileName,shortName1);
  1171 	r=TheFs.GetShortName(romFileName,shortName1);
  1157 	test(r==KErrNotSupported);
  1172 	test_Value(r, r == KErrNotSupported);
  1158 	r=TheFs.GetLongName(_L("Z:\\system"),longName1);
  1173 	r=TheFs.GetLongName(_L("Z:\\system"),longName1);
  1159 	test(r==KErrNotSupported);
  1174 	test_Value(r, r == KErrNotSupported);
  1160 	}
  1175 	}
  1161 
  1176 
  1162 static void RmDir(const TDesC& aDirName)
  1177 static void RmDir(const TDesC& aDirName)
  1163 //
  1178 //
  1164 // Remove a directory
  1179 // Remove a directory
  1165 //
  1180 //
  1166 	{
  1181 	{
  1167 	CFileMan* fMan=CFileMan::NewL(TheFs);
  1182 	CFileMan* fMan=CFileMan::NewL(TheFs);
  1168 	test(fMan!=NULL);
  1183 	test(fMan!=NULL);
  1169 	TInt r=TheFs.SessionPath(gSessionPath);
  1184 	TInt r=TheFs.SessionPath(gSessionPath);
  1170 	test(r==KErrNone);
  1185 	test_KErrNone(r);
  1171 	r=TheFs.CheckDisk(gSessionPath);
  1186 	r=TheFs.CheckDisk(gSessionPath);
  1172 	if (r!=KErrNone && r!=KErrNotSupported)
  1187 	if (r!=KErrNone && r!=KErrNotSupported)
  1173 		ReportCheckDiskFailure(r);
  1188 		ReportCheckDiskFailure(r);
  1174 
  1189 
  1175 	TFileName removeDirName = gSessionPath;
  1190 	TFileName removeDirName = gSessionPath;
  1176 	removeDirName.Append(aDirName);
  1191 	removeDirName.Append(aDirName);
  1177 
  1192 
  1178 	fMan->Attribs(removeDirName, 0, KEntryAttReadOnly, 0, CFileMan::ERecurse);
  1193 	fMan->Attribs(removeDirName, 0, KEntryAttReadOnly, 0, CFileMan::ERecurse);
  1179 	r=fMan->RmDir(removeDirName);
  1194 	r=fMan->RmDir(removeDirName);
  1180 	test(r==KErrNone || r==KErrNotFound || r==KErrPathNotFound);
  1195 	test_Value(r, r == KErrNone || r==KErrNotFound || r==KErrPathNotFound);
  1181 
  1196 
  1182 	delete fMan;
  1197 	delete fMan;
  1183 	}
  1198 	}
  1184 //---------------------------------------------
  1199 //---------------------------------------------
  1185 //! @SYMTestCaseID			PBASE-T_TFILE-0659
  1200 //! @SYMTestCaseID			PBASE-T_TFILE-0659
  1216 	MakeFile(KOrigFileName,_L8("FILE PATH : \\F32-TST\\TFILE\\INC112803\\Private2\\101f875a\\"));
  1231 	MakeFile(KOrigFileName,_L8("FILE PATH : \\F32-TST\\TFILE\\INC112803\\Private2\\101f875a\\"));
  1217 
  1232 
  1218 	// Check the generated shortname of the original file
  1233 	// Check the generated shortname of the original file
  1219 	TBuf<12> shortName;
  1234 	TBuf<12> shortName;
  1220 	err = TheFs.GetShortName(KOrigFileName, shortName);
  1235 	err = TheFs.GetShortName(KOrigFileName, shortName);
  1221 	test(err==KErrNone);
  1236 	test_KErrNone(err);
  1222 
  1237 
  1223 	// Validate the generated shorname against the original filename.
  1238 	// Validate the generated shortname against the original filename.
  1224 	if (Is_Win32(TheFs, gDriveNum))
  1239 	if(!IsTestingLFFS())
  1225 		{
       
  1226 		test(shortName==_L("2222~1.JAR"));
       
  1227 		}
       
  1228 	else if(!IsTestingLFFS())
       
  1229 		{
  1240 		{
  1230 		// LFFS short names not the same as VFAT ones
  1241 		// LFFS short names not the same as VFAT ones
  1231 		test(shortName==_L("2222~1.JAR"));
  1242 		test(shortName==_L("2222~1.JAR"));
  1232 		}
  1243 		}
  1233 
  1244 
  1234 	// Validate that the file "2222~1.JAR" can not be created as this is the shortname for "2222.JARX".
  1245 	// Validate that the file "2222~1.JAR" can not be created as this is the shortname for "2222.JARX".
  1235 	MakeFile(KOrigFileShortName,_L8("FILE PATH : \\F32-TST\\TFILE\\INC112803\\Private2\\101f875a\\"));
  1246 	MakeFile(KOrigFileShortName,_L8("FILE PATH : \\F32-TST\\TFILE\\INC112803\\Private2\\101f875a\\"));
  1236 	CheckFileExists(KOrigFileShortName, KErrNone, EFalse);
  1247 	CheckFileExists(KOrigFileShortName, KErrNone, EFalse);
  1237 
  1248 
  1238 	err = TheFs.Rename(KOrigFileName,KDestinationFileName);
  1249 	err = TheFs.Rename(KOrigFileName,KDestinationFileName);
  1239 	test(err==KErrNone);
  1250 	test_KErrNone(err);
  1240 
  1251 
  1241 	// Clean up before leaving
  1252 	// Clean up before leaving
  1242 	RmDir(_L("INC112803\\"));
  1253 	RmDir(_L("INC112803\\"));
  1243 	}
  1254 	}
  1244 
  1255 
  1249 	{
  1260 	{
  1250 
  1261 
  1251 	test.Next(_L("Test IsFileOpen"));
  1262 	test.Next(_L("Test IsFileOpen"));
  1252 	TBool answer;
  1263 	TBool answer;
  1253 	TInt r=TheFs.IsFileOpen(_L("OPEN.FILE"),answer);
  1264 	TInt r=TheFs.IsFileOpen(_L("OPEN.FILE"),answer);
  1254 	test(r==KErrNotFound || (r==KErrNone && answer==EFalse));
  1265 	test_Value(r, r == KErrNotFound || (r==KErrNone && answer==EFalse));
  1255 	RFile f;
  1266 	RFile f;
  1256 	r=f.Replace(TheFs,_L("OPEN.FILE"),EFileWrite);
  1267 	r=f.Replace(TheFs,_L("OPEN.FILE"),EFileWrite);
  1257 	test(r==KErrNone);
  1268 	test_KErrNone(r);
  1258 	r=TheFs.IsFileOpen(_L("OPEN.FILE"),answer);
  1269 	r=TheFs.IsFileOpen(_L("OPEN.FILE"),answer);
  1259 	test(r==KErrNone);
  1270 	test_KErrNone(r);
  1260 	test(answer!=EFalse);
  1271 	test(answer!=EFalse);
  1261 	f.Close();
  1272 	f.Close();
  1262 	r=TheFs.IsFileOpen(_L("OPEN.FILE"),answer);
  1273 	r=TheFs.IsFileOpen(_L("OPEN.FILE"),answer);
  1263 	test(r==KErrNone);
  1274 	test_KErrNone(r);
  1264 	test(answer==EFalse);
  1275 	test(answer==EFalse);
  1265 	r=TheFs.Delete(_L("OPEN.FILE"));
  1276 	r=TheFs.Delete(_L("OPEN.FILE"));
  1266 	test(r==KErrNone);
  1277 	test_KErrNone(r);
  1267 
  1278 
  1268 	RFile f2;
  1279 	RFile f2;
  1269 	r=f2.Replace(TheFs,_L("AnotherOpen.File"),EFileWrite);
  1280 	r=f2.Replace(TheFs,_L("AnotherOpen.File"),EFileWrite);
  1270 	test(r==KErrNone);
  1281 	test_KErrNone(r);
  1271 	r=TheFs.IsFileOpen(_L("AnotherOpen.File"),answer);
  1282 	r=TheFs.IsFileOpen(_L("AnotherOpen.File"),answer);
  1272 	test(r==KErrNone);
  1283 	test_KErrNone(r);
  1273 	test(answer!=EFalse);
  1284 	test(answer!=EFalse);
  1274 	r=f.Replace(TheFs,_L("OPEN.FILE"),EFileWrite);
  1285 	r=f.Replace(TheFs,_L("OPEN.FILE"),EFileWrite);
  1275 	test(r==KErrNone);
  1286 	test_KErrNone(r);
  1276 	r=TheFs.IsFileOpen(_L("OPEN.FILE"),answer);
  1287 	r=TheFs.IsFileOpen(_L("OPEN.FILE"),answer);
  1277 	test(r==KErrNone);
  1288 	test_KErrNone(r);
  1278 	test(answer!=EFalse);
  1289 	test(answer!=EFalse);
  1279 	f2.Close();
  1290 	f2.Close();
  1280 	r=TheFs.IsFileOpen(_L("OPEN.FILE"),answer);
  1291 	r=TheFs.IsFileOpen(_L("OPEN.FILE"),answer);
  1281 	test(r==KErrNone);
  1292 	test_KErrNone(r);
  1282 	test(answer!=EFalse);
  1293 	test(answer!=EFalse);
  1283 	f.Close();
  1294 	f.Close();
  1284 	r=TheFs.IsFileOpen(_L("OPEN.FILE"),answer);
  1295 	r=TheFs.IsFileOpen(_L("OPEN.FILE"),answer);
  1285 	test(r==KErrNone);
  1296 	test_KErrNone(r);
  1286 	test(answer==EFalse);
  1297 	test(answer==EFalse);
  1287 	r=TheFs.Delete(_L("AnotherOpen.File"));
  1298 	r=TheFs.Delete(_L("AnotherOpen.File"));
  1288 	test(r==KErrNone);
  1299 	test_KErrNone(r);
  1289 	r=TheFs.Delete(_L("OPEN.FILE"));
  1300 	r=TheFs.Delete(_L("OPEN.FILE"));
  1290 	test(r==KErrNone);
  1301 	test_KErrNone(r);
  1291 	}
  1302 	}
  1292 
  1303 
  1293 static void testDeleteOpenFiles()
  1304 static void testDeleteOpenFiles()
  1294 //
  1305 //
  1295 // Test opened files cannot be deleted
  1306 // Test opened files cannot be deleted
  1298 
  1309 
  1299 	test.Next(_L("Test opened files cannot be deleted"));
  1310 	test.Next(_L("Test opened files cannot be deleted"));
  1300 	RFile f;
  1311 	RFile f;
  1301 	f.Close();
  1312 	f.Close();
  1302 	TInt r=f.Replace(TheFs,_L("Open.File"),EFileWrite);
  1313 	TInt r=f.Replace(TheFs,_L("Open.File"),EFileWrite);
  1303 	test(r==KErrNone);
  1314 	test_KErrNone(r);
  1304 	r=TheFs.Delete(_L("OPEN.FILE"));
  1315 	r=TheFs.Delete(_L("OPEN.FILE"));
  1305 	test(r==KErrInUse);
  1316 	test_Value(r, r == KErrInUse);
  1306 	f.Close();
  1317 	f.Close();
  1307 	f.Close();
  1318 	f.Close();
  1308 	f.Close();
  1319 	f.Close();
  1309 	r=TheFs.Delete(_L("Open.FILe"));
  1320 	r=TheFs.Delete(_L("Open.FILe"));
  1310 	test(r==KErrNone);
  1321 	test_KErrNone(r);
  1311 
  1322 
  1312 	TFileName fileName;
  1323 	TFileName fileName;
  1313 	r=f.Temp(TheFs,_L(""),fileName,EFileWrite);
  1324 	r=f.Temp(TheFs,_L(""),fileName,EFileWrite);
  1314 	test(r==KErrNone);
  1325 	test_KErrNone(r);
  1315 	r=TheFs.Delete(fileName);
  1326 	r=TheFs.Delete(fileName);
  1316 	test(r==KErrInUse);
  1327 	test_Value(r, r == KErrInUse);
  1317 	f.Close();
  1328 	f.Close();
  1318 	r=TheFs.Delete(fileName);
  1329 	r=TheFs.Delete(fileName);
  1319 	test(r==KErrNone);
  1330 	test_KErrNone(r);
  1320 
  1331 
  1321 	MakeFile(_L("\\Documents\\TEstfile.txt"));
  1332 	MakeFile(_L("\\Documents\\TEstfile.txt"));
  1322 	r=f.Open(TheFs,_L("\\Documents\\TEstfile.txt"),EFileWrite);
  1333 	r=f.Open(TheFs,_L("\\Documents\\TEstfile.txt"),EFileWrite);
  1323 	test(r==KErrNone);
  1334 	test_KErrNone(r);
  1324 	r=TheFs.Delete(_L("\\Documents\\TEstfile.txt"));
  1335 	r=TheFs.Delete(_L("\\Documents\\TEstfile.txt"));
  1325 	test(r==KErrInUse);
  1336 	test_Value(r, r == KErrInUse);
  1326 	r=TheFs.Delete(_L("\\documents\\TEstfile.txt"));
  1337 	r=TheFs.Delete(_L("\\documents\\TEstfile.txt"));
  1327 	test(r==KErrInUse);
  1338 	test_Value(r, r == KErrInUse);
  1328 	r=TheFs.Delete(_L("\\Documents.\\TEstfile.txt"));
  1339 	r=TheFs.Delete(_L("\\Documents.\\TEstfile.txt"));
  1329 	test(r==KErrBadName);
  1340 	test_Value(r, r == KErrBadName);
  1330 	r=TheFs.Delete(_L("\\documents.\\TEstfile.txt"));
  1341 	r=TheFs.Delete(_L("\\documents.\\TEstfile.txt"));
  1331 	test(r==KErrBadName);
  1342 	test_Value(r, r == KErrBadName);
  1332 	r=TheFs.Delete(_L("\\Documents\\Testfile.txt"));
  1343 	r=TheFs.Delete(_L("\\Documents\\Testfile.txt"));
  1333 	test(r==KErrInUse);
  1344 	test_Value(r, r == KErrInUse);
  1334 	r=TheFs.Delete(_L("\\documents\\testfile.txt"));
  1345 	r=TheFs.Delete(_L("\\documents\\testfile.txt"));
  1335 	test(r==KErrInUse);
  1346 	test_Value(r, r == KErrInUse);
  1336 	r=TheFs.Delete(_L("\\Documents.\\TEstfile.TXT"));
  1347 	r=TheFs.Delete(_L("\\Documents.\\TEstfile.TXT"));
  1337 	test(r==KErrBadName);
  1348 	test_Value(r, r == KErrBadName);
  1338 	r=TheFs.Delete(_L("\\docUMENTS.\\TESTFILE.TXT"));
  1349 	r=TheFs.Delete(_L("\\docUMENTS.\\TESTFILE.TXT"));
  1339 	test(r==KErrBadName);
  1350 	test_Value(r, r == KErrBadName);
  1340 	f.Close();
  1351 	f.Close();
  1341 	r=TheFs.Delete(_L("\\Documents\\TEstfile.TXT"));
  1352 	r=TheFs.Delete(_L("\\Documents\\TEstfile.TXT"));
  1342 	test(r==KErrNone);
  1353 	test_KErrNone(r);
  1343 
  1354 
  1344 	MakeFile(_L("\\Documents\\Documents\\TEstfile.txt"));
  1355 	MakeFile(_L("\\Documents\\Documents\\TEstfile.txt"));
  1345 	r=f.Open(TheFs,_L("\\Documents\\Documents\\TEstfile.txt"),EFileWrite);
  1356 	r=f.Open(TheFs,_L("\\Documents\\Documents\\TEstfile.txt"),EFileWrite);
  1346 	test(r==KErrNone);
  1357 	test_KErrNone(r);
  1347 	r=TheFs.Delete(_L("\\Documents\\documents.\\TEstfile.txt"));
  1358 	r=TheFs.Delete(_L("\\Documents\\documents.\\TEstfile.txt"));
  1348 	test(r==KErrBadName);
  1359 	test_Value(r, r == KErrBadName);
  1349 	r=TheFs.Delete(_L("\\documents\\Documents.\\TEstfile.txt"));
  1360 	r=TheFs.Delete(_L("\\documents\\Documents.\\TEstfile.txt"));
  1350 	test(r==KErrBadName);
  1361 	test_Value(r, r == KErrBadName);
  1351 	r=TheFs.Delete(_L("\\Documents.\\documents\\TEstfile.txt"));
  1362 	r=TheFs.Delete(_L("\\Documents.\\documents\\TEstfile.txt"));
  1352 	test(r==KErrBadName);
  1363 	test_Value(r, r == KErrBadName);
  1353 	r=TheFs.Delete(_L("\\documents.\\Documents\\TEstfile.txt"));
  1364 	r=TheFs.Delete(_L("\\documents.\\Documents\\TEstfile.txt"));
  1354 	test(r==KErrBadName);
  1365 	test_Value(r, r == KErrBadName);
  1355 	r=TheFs.Delete(_L("\\Documents\\Documents\\Testfile.txt"));
  1366 	r=TheFs.Delete(_L("\\Documents\\Documents\\Testfile.txt"));
  1356 	test(r==KErrInUse);
  1367 	test_Value(r, r == KErrInUse);
  1357 	r=TheFs.Delete(_L("\\documents\\documents\\testfile.txt"));
  1368 	r=TheFs.Delete(_L("\\documents\\documents\\testfile.txt"));
  1358 	test(r==KErrInUse);
  1369 	test_Value(r, r == KErrInUse);
  1359 	r=TheFs.Delete(_L("\\Documents.\\Documents.\\TEstfile.TXT"));
  1370 	r=TheFs.Delete(_L("\\Documents.\\Documents.\\TEstfile.TXT"));
  1360 	test(r==KErrBadName);
  1371 	test_Value(r, r == KErrBadName);
  1361 	r=TheFs.Delete(_L("\\docUMENTS.\\docUMENTS.\\TESTFILE.TXT"));
  1372 	r=TheFs.Delete(_L("\\docUMENTS.\\docUMENTS.\\TESTFILE.TXT"));
  1362 	test(r==KErrBadName);
  1373 	test_Value(r, r == KErrBadName);
  1363 
  1374 
  1364 
  1375 
  1365 	r=TheFs.RmDir(_L("\\Documents\\"));
  1376 	r=TheFs.RmDir(_L("\\Documents\\"));
  1366 	test(r==KErrInUse);
  1377 	test_Value(r, r == KErrInUse);
  1367 	r=TheFs.RmDir(_L("\\documents\\"));
  1378 	r=TheFs.RmDir(_L("\\documents\\"));
  1368 	test(r==KErrInUse);
  1379 	test_Value(r, r == KErrInUse);
  1369 	r=TheFs.RmDir(_L("\\Documents.\\"));
  1380 	r=TheFs.RmDir(_L("\\Documents.\\"));
  1370 	test(r==KErrBadName);
  1381 	test_Value(r, r == KErrBadName);
  1371 	r=TheFs.RmDir(_L("\\documents.\\"));
  1382 	r=TheFs.RmDir(_L("\\documents.\\"));
  1372 	test(r==KErrBadName);
  1383 	test_Value(r, r == KErrBadName);
  1373 	r=TheFs.RmDir(_L("\\Documents\\documents\\"));
  1384 	r=TheFs.RmDir(_L("\\Documents\\documents\\"));
  1374 	test(r==KErrInUse);
  1385 	test_Value(r, r == KErrInUse);
  1375 	r=TheFs.RmDir(_L("\\documents\\documents.\\"));
  1386 	r=TheFs.RmDir(_L("\\documents\\documents.\\"));
  1376 	test(r==KErrBadName);
  1387 	test_Value(r, r == KErrBadName);
  1377 	r=TheFs.RmDir(_L("\\Documents.\\Documents\\"));
  1388 	r=TheFs.RmDir(_L("\\Documents.\\Documents\\"));
  1378 	test(r==KErrBadName);
  1389 	test_Value(r, r == KErrBadName);
  1379 	r=TheFs.RmDir(_L("\\documents.\\Documents.\\"));
  1390 	r=TheFs.RmDir(_L("\\documents.\\Documents.\\"));
  1380 	test(r==KErrBadName);
  1391 	test_Value(r, r == KErrBadName);
  1381 	r=TheFs.RmDir(_L("\\Documents\\TestFile.TXT"));
  1392 	r=TheFs.RmDir(_L("\\Documents\\TestFile.TXT"));
  1382 	test(r==KErrInUse);
  1393 	test_Value(r, r == KErrInUse);
  1383 	r=TheFs.RmDir(_L("\\documents\\TestFile"));
  1394 	r=TheFs.RmDir(_L("\\documents\\TestFile"));
  1384 	test(r==KErrInUse);
  1395 	test_Value(r, r == KErrInUse);
  1385 	r=TheFs.RmDir(_L("\\Documents.\\Testfile."));
  1396 	r=TheFs.RmDir(_L("\\Documents.\\Testfile."));
  1386 	test(r==KErrBadName);
  1397 	test_Value(r, r == KErrBadName);
  1387 	r=TheFs.RmDir(_L("\\documents.\\t"));
  1398 	r=TheFs.RmDir(_L("\\documents.\\t"));
  1388 	test(r==KErrBadName);
  1399 	test_Value(r, r == KErrBadName);
  1389 	f.Close();
  1400 	f.Close();
  1390 	r=TheFs.Delete(_L("\\Documents\\documents\\TEstfile.TXT"));
  1401 	r=TheFs.Delete(_L("\\Documents\\documents\\TEstfile.TXT"));
  1391 	test(r==KErrNone);
  1402 	test_KErrNone(r);
  1392 	r=TheFs.RmDir(_L("\\Documents\\documents.\\"));
  1403 	r=TheFs.RmDir(_L("\\Documents\\documents.\\"));
  1393 	test(r==KErrBadName);
  1404 	test_Value(r, r == KErrBadName);
  1394 	r=TheFs.RmDir(_L("\\Documents.\\"));
  1405 	r=TheFs.RmDir(_L("\\Documents.\\"));
  1395 	test(r==KErrBadName);
  1406 	test_Value(r, r == KErrBadName);
  1396 	}
  1407 	}
  1397 
  1408 
  1398 static void testFileSeek()
  1409 static void testFileSeek()
  1399 //
  1410 //
  1400 // Test seeking
  1411 // Test seeking
  1401 //
  1412 //
  1402 	{
  1413 	{
  1403 	test.Next(_L("Test file seek"));
  1414 	test.Next(_L("Test file seek"));
  1404 	RFile f;
  1415 	RFile f;
  1405 	TInt r=f.Open(TheFs,_L("T_File.cpp"),EFileWrite);
  1416 	TInt r=f.Open(TheFs,_L("T_File.cpp"),EFileWrite);
  1406 	test(r==KErrNone);
  1417 	test_KErrNone(r);
  1407 
  1418 
  1408 	TBuf8<20> text1;TInt pos1=0;
  1419 	TBuf8<20> text1;TInt pos1=0;
  1409 	TBuf8<20> text2;TInt pos2=510;
  1420 	TBuf8<20> text2;TInt pos2=510;
  1410 	TBuf8<20> text3;TInt pos3=900;
  1421 	TBuf8<20> text3;TInt pos3=900;
  1411 	TBuf8<20> text4;TInt pos4=2010;
  1422 	TBuf8<20> text4;TInt pos4=2010;
  1412 	TBuf8<20> text5;TInt pos5=4999;
  1423 	TBuf8<20> text5;TInt pos5=4999;
  1413 
  1424 
  1414 	r=f.Read(pos1,text1);
  1425 	r=f.Read(pos1,text1);
  1415 	test(r==KErrNone);
  1426 	test_KErrNone(r);
  1416 	r=f.Read(pos2,text2);
  1427 	r=f.Read(pos2,text2);
  1417 	test(r==KErrNone);
  1428 	test_KErrNone(r);
  1418 	r=f.Read(pos3,text3);
  1429 	r=f.Read(pos3,text3);
  1419 	test(r==KErrNone);
  1430 	test_KErrNone(r);
  1420 	r=f.Read(pos4,text4);
  1431 	r=f.Read(pos4,text4);
  1421 	test(r==KErrNone);
  1432 	test_KErrNone(r);
  1422 	r=f.Read(pos5,text5);
  1433 	r=f.Read(pos5,text5);
  1423 	test(r==KErrNone);
  1434 	test_KErrNone(r);
  1424 
  1435 
  1425 	TBuf8<20> testBuf;
  1436 	TBuf8<20> testBuf;
  1426 
  1437 
  1427 	r=f.Read(pos3,testBuf);
  1438 	r=f.Read(pos3,testBuf);
  1428 	test(r==KErrNone);
  1439 	test_KErrNone(r);
  1429 	test(testBuf==text3);
  1440 	test(testBuf==text3);
  1430 
  1441 
  1431 	r=f.Read(pos1,testBuf);
  1442 	r=f.Read(pos1,testBuf);
  1432 	test(r==KErrNone);
  1443 	test_KErrNone(r);
  1433 	test(testBuf==text1);
  1444 	test(testBuf==text1);
  1434 
  1445 
  1435 	r=f.Read(pos4,testBuf);
  1446 	r=f.Read(pos4,testBuf);
  1436 	test(r==KErrNone);
  1447 	test_KErrNone(r);
  1437 	test(testBuf==text4);
  1448 	test(testBuf==text4);
  1438 
  1449 
  1439 	r=f.Read(pos2,testBuf);
  1450 	r=f.Read(pos2,testBuf);
  1440 	test(r==KErrNone);
  1451 	test_KErrNone(r);
  1441 	test(testBuf==text2);
  1452 	test(testBuf==text2);
  1442 
  1453 
  1443 	r=f.Read(pos5,testBuf);
  1454 	r=f.Read(pos5,testBuf);
  1444 	test(r==KErrNone);
  1455 	test_KErrNone(r);
  1445 	test(testBuf==text5);
  1456 	test(testBuf==text5);
  1446 
  1457 
  1447 	r=f.Read(pos2,testBuf);
  1458 	r=f.Read(pos2,testBuf);
  1448 	test(r==KErrNone);
  1459 	test_KErrNone(r);
  1449 	test(testBuf==text2);
  1460 	test(testBuf==text2);
  1450 	r=f.SetSize(1023);
  1461 	r=f.SetSize(1023);
  1451 	test(r==KErrNone);
  1462 	test_KErrNone(r);
  1452 	r=f.Read(pos2,testBuf);
  1463 	r=f.Read(pos2,testBuf);
  1453 	test(r==KErrNone);
  1464 	test_KErrNone(r);
  1454 	test(testBuf==text2);
  1465 	test(testBuf==text2);
  1455 	r=f.SetSize(1024);
  1466 	r=f.SetSize(1024);
  1456 	test(r==KErrNone);
  1467 	test_KErrNone(r);
  1457 	r=f.Read(pos1,testBuf);
  1468 	r=f.Read(pos1,testBuf);
  1458 	test(r==KErrNone);
  1469 	test_KErrNone(r);
  1459 	test(testBuf==text1);
  1470 	test(testBuf==text1);
  1460 	r=f.Read(pos2,testBuf);
  1471 	r=f.Read(pos2,testBuf);
  1461 	test(r==KErrNone);
  1472 	test_KErrNone(r);
  1462 	test(testBuf==text2);
  1473 	test(testBuf==text2);
  1463 
  1474 
  1464 	r=f.Read(pos1,testBuf);
  1475 	r=f.Read(pos1,testBuf);
  1465 	test(r==KErrNone);
  1476 	test_KErrNone(r);
  1466 	test(testBuf==text1);
  1477 	test(testBuf==text1);
  1467 	r=f.SetSize(511);
  1478 	r=f.SetSize(511);
  1468 	test(r==KErrNone);
  1479 	test_KErrNone(r);
  1469 	r=f.Read(pos1,testBuf);
  1480 	r=f.Read(pos1,testBuf);
  1470 	test(r==KErrNone);
  1481 	test_KErrNone(r);
  1471 	test(testBuf==text1);
  1482 	test(testBuf==text1);
  1472 	r=f.SetSize(512);
  1483 	r=f.SetSize(512);
  1473 	test(r==KErrNone);
  1484 	test_KErrNone(r);
  1474 	r=f.Read(pos1,testBuf);
  1485 	r=f.Read(pos1,testBuf);
  1475 	test(r==KErrNone);
  1486 	test_KErrNone(r);
  1476 	test(testBuf==text1);
  1487 	test(testBuf==text1);
  1477 	f.Close();
  1488 	f.Close();
  1478 	}
  1489 	}
  1479 
  1490 
  1480 static void testMoreFileSeek()
  1491 static void testMoreFileSeek()
  1483 //
  1494 //
  1484 	{
  1495 	{
  1485 //	Create a zero length file
  1496 //	Create a zero length file
  1486 	RFile file;
  1497 	RFile file;
  1487 	TInt r=file.Replace(TheFs,_L("\\F32-TST\\TFILE\\seektest"),EFileRead|EFileWrite);
  1498 	TInt r=file.Replace(TheFs,_L("\\F32-TST\\TFILE\\seektest"),EFileRead|EFileWrite);
  1488 	test(r==KErrNone);
  1499 	test_KErrNone(r);
  1489 	r=file.SetSize(20);
  1500 	r=file.SetSize(20);
  1490 	test(r==KErrNone);
  1501 	test_KErrNone(r);
  1491 //	Seek beyond the length of the file
  1502 //	Seek beyond the length of the file
  1492 	TInt seekPos;
  1503 	TInt seekPos;
  1493 	seekPos = 80;								//	Pick a likely offset
  1504 	seekPos = 80;								//	Pick a likely offset
  1494     TInt err = file.Seek(ESeekEnd, seekPos);	//	and go there
  1505     TInt err = file.Seek(ESeekEnd, seekPos);	//	and go there
  1495     test(err==KErrNone);
  1506     test_KErrNone(err);
  1496 	test(seekPos==20);							//	Somewhat non-intuitive?
  1507 	test(seekPos==20);							//	Somewhat non-intuitive?
  1497 
  1508 
  1498 	r=file.Write(_L8("A Devil's Haircut"));
  1509 	r=file.Write(_L8("A Devil's Haircut"));
  1499 	test(r==KErrNone);
  1510 	test_KErrNone(r);
  1500 	TInt newFileSize;
  1511 	TInt newFileSize;
  1501 	r=file.Size(newFileSize);
  1512 	r=file.Size(newFileSize);
  1502 	test(r==KErrNone);
  1513 	test_KErrNone(r);
  1503 
  1514 
  1504 	seekPos = 0;
  1515 	seekPos = 0;
  1505     err = file.Seek(ESeekCurrent, seekPos);		//	Find out where we ended up?
  1516     err = file.Seek(ESeekCurrent, seekPos);		//	Find out where we ended up?
  1506 	test(err==KErrNone);
  1517 	test_KErrNone(err);
  1507 	test(seekPos==37);
  1518 	test(seekPos==37);
  1508 
  1519 
  1509 	file.SetSize(512);
  1520 	file.SetSize(512);
  1510 	seekPos=513;
  1521 	seekPos=513;
  1511 	err=file.Seek(ESeekStart, seekPos);
  1522 	err=file.Seek(ESeekStart, seekPos);
  1512 	test(err==KErrNone);
  1523 	test_KErrNone(err);
  1513 	test(seekPos==513);
  1524 	test(seekPos==513);
  1514 
  1525 
  1515 	err=file.Seek(ESeekEnd, seekPos);
  1526 	err=file.Seek(ESeekEnd, seekPos);
  1516 	test(err==KErrNone);
  1527 	test_KErrNone(err);
  1517 	test(seekPos==512);
  1528 	test(seekPos==512);
  1518 
  1529 
  1519 	seekPos=-530;
  1530 	seekPos=-530;
  1520 	err=file.Seek(ESeekEnd, seekPos);
  1531 	err=file.Seek(ESeekEnd, seekPos);
  1521 	test(err==KErrNone);
  1532 	test_KErrNone(err);
  1522 	test(seekPos==0);
  1533 	test(seekPos==0);
  1523 
  1534 
  1524 	seekPos=-10;
  1535 	seekPos=-10;
  1525 	err=file.Seek(ESeekEnd, seekPos);
  1536 	err=file.Seek(ESeekEnd, seekPos);
  1526 	test(err==KErrNone);
  1537 	test_KErrNone(err);
  1527 	test(seekPos==502);
  1538 	test(seekPos==502);
  1528 
  1539 
  1529 	seekPos=-10;
  1540 	seekPos=-10;
  1530 	err=file.Seek(ESeekStart,seekPos);
  1541 	err=file.Seek(ESeekStart,seekPos);
  1531 	test(err==KErrArgument);
  1542 	test_Value(err, err == KErrArgument);
  1532 	test(seekPos==-10);
  1543 	test(seekPos==-10);
  1533 
  1544 
  1534 	seekPos=0;
  1545 	seekPos=0;
  1535 	err=file.Seek(ESeekEnd,seekPos);
  1546 	err=file.Seek(ESeekEnd,seekPos);
  1536 	test(err==KErrNone);
  1547 	test_KErrNone(err);
  1537 	test(seekPos==512);
  1548 	test(seekPos==512);
  1538 
  1549 
  1539 	file.Close();
  1550 	file.Close();
  1540 	r=TheFs.Delete(_L("\\F32-TST\\TFILE\\seektest"));
  1551 	r=TheFs.Delete(_L("\\F32-TST\\TFILE\\seektest"));
  1541 	test(r==KErrNone);
  1552 	test_KErrNone(r);
  1542 	}
  1553 	}
  1543 
  1554 
  1544 static void testSetSize()
  1555 static void testSetSize()
  1545 //
  1556 //
  1546 // Test setsize
  1557 // Test setsize
  1549 
  1560 
  1550 	test.Next(_L("Test SetSize"));
  1561 	test.Next(_L("Test SetSize"));
  1551 	RFile f1;
  1562 	RFile f1;
  1552 	TInt i=0;
  1563 	TInt i=0;
  1553 	TInt r=f1.Replace(TheFs,_L("File.File"),EFileWrite);
  1564 	TInt r=f1.Replace(TheFs,_L("File.File"),EFileWrite);
  1554 	test(r==KErrNone);
  1565 	test_KErrNone(r);
  1555 	gBuf.SetLength(32);
  1566 	gBuf.SetLength(32);
  1556 	for(i=0;i<32;i++)
  1567 	for(i=0;i<32;i++)
  1557 		gBuf[i]=(TUint8)i;
  1568 		gBuf[i]=(TUint8)i;
  1558 	r=f1.Write(gBuf);
  1569 	r=f1.Write(gBuf);
  1559 	test(r==KErrNone);
  1570 	test_KErrNone(r);
  1560 	gBuf.SetLength(1334);
  1571 	gBuf.SetLength(1334);
  1561 	for(i=64;i<1334+64;i++)
  1572 	for(i=64;i<1334+64;i++)
  1562 		gBuf[i-64]=(TUint8)i;
  1573 		gBuf[i-64]=(TUint8)i;
  1563 	r=f1.Write(30,gBuf);
  1574 	r=f1.Write(30,gBuf);
  1564 	r=f1.Read(30,gBuf,1000);
  1575 	r=f1.Read(30,gBuf,1000);
  1565 	test(r==KErrNone);
  1576 	test_KErrNone(r);
  1566 	test(gBuf[0]==64);
  1577 	test(gBuf[0]==64);
  1567 	test(gBuf[1]==65);
  1578 	test(gBuf[1]==65);
  1568 	test(gBuf[2]==66);
  1579 	test(gBuf[2]==66);
  1569 	f1.Close();
  1580 	f1.Close();
  1570 
  1581 
  1571 	test.Next(_L("Open a large file"));
  1582 	test.Next(_L("Open a large file"));
  1572 	r=f1.Replace(TheFs,_L("File.File"),EFileWrite);
  1583 	r=f1.Replace(TheFs,_L("File.File"),EFileWrite);
  1573 	test(r==KErrNone);
  1584 	test_KErrNone(r);
  1574 	CheckDisk();
  1585 	CheckDisk();
  1575 	r=f1.SetSize(131072); // 128K
  1586 	r=f1.SetSize(131072); // 128K
  1576 	test(r==KErrNone);
  1587 	test_KErrNone(r);
  1577 	TBuf8<16> testData=_L8("testData");
  1588 	TBuf8<16> testData=_L8("testData");
  1578 	r=f1.Write(131060,testData);
  1589 	r=f1.Write(131060,testData);
  1579 	test(r==KErrNone);
  1590 	test_KErrNone(r);
  1580 	f1.Close();
  1591 	f1.Close();
  1581 	r=f1.Open(TheFs,_L("File.File"),EFileRead);
  1592 	r=f1.Open(TheFs,_L("File.File"),EFileRead);
  1582 	test(r==KErrNone);
  1593 	test_KErrNone(r);
  1583 	TInt size;
  1594 	TInt size;
  1584 	r=f1.Size(size);
  1595 	r=f1.Size(size);
  1585 	test(r==KErrNone);
  1596 	test_KErrNone(r);
  1586 	test(size==131072);
  1597 	test(size==131072);
  1587 	TBuf8<16> testData2;
  1598 	TBuf8<16> testData2;
  1588 	r=f1.Read(131060,testData2,8);
  1599 	r=f1.Read(131060,testData2,8);
  1589 	test(r==KErrNone);
  1600 	test_KErrNone(r);
  1590 	test(testData==testData2);
  1601 	test(testData==testData2);
  1591 	f1.Close();
  1602 	f1.Close();
  1592 	TheFs.Delete(_L("File.file"));
  1603 	TheFs.Delete(_L("File.file"));
  1593 	CheckDisk();
  1604 	CheckDisk();
  1594 	}
  1605 	}
  1595 
  1606 
  1596 static void testIsRomAddress()
  1607 static void testIsRomAddress()
  1597 	{
  1608 	{
  1598 	RFile f;
  1609 	RFile f;
  1599 	TInt r=f.Open(TheFs, PlatSec::ConfigSetting(PlatSec::EPlatSecEnforceSysBin)?_L("Z:\\Sys\\Bin\\eshell.exe"):_L("Z:\\System\\Bin\\eshell.exe"), EFileRead);
  1610 	TInt r=f.Open(TheFs, PlatSec::ConfigSetting(PlatSec::EPlatSecEnforceSysBin)?_L("Z:\\Sys\\Bin\\eshell.exe"):_L("Z:\\System\\Bin\\eshell.exe"), EFileRead);
  1600 	test(r==KErrNone);
  1611 	test_KErrNone(r);
  1601 	TInt anAddress=0;
  1612 	TInt anAddress=0;
  1602 	r=f.Seek(ESeekAddress, anAddress);
  1613 	r=f.Seek(ESeekAddress, anAddress);
  1603 	test(r==KErrNone);
  1614 	test_KErrNone(r);
  1604 #if !defined(__WINS__)
  1615 #if !defined(__WINS__)
  1605 	test(RFs::IsRomAddress((TAny *)anAddress)); // Always returns EFalse if WINS
  1616 	test(RFs::IsRomAddress((TAny *)anAddress)); // Always returns EFalse if WINS
  1606 #endif
  1617 #endif
  1607 	test(RFs::IsRomAddress(NULL)==FALSE);
  1618 	test(RFs::IsRomAddress(NULL)==FALSE);
  1608 	f.Close();
  1619 	f.Close();
  1619 
  1630 
  1620 	test.Next(_L("Miscellaneous tests"));
  1631 	test.Next(_L("Miscellaneous tests"));
  1621 	RFile f1;
  1632 	RFile f1;
  1622 	TInt temp;
  1633 	TInt temp;
  1623 	TInt r=f1.Replace(TheFs,_L("File.File"),EFileWrite);
  1634 	TInt r=f1.Replace(TheFs,_L("File.File"),EFileWrite);
  1624 	test(r==KErrNone);
  1635 	test_KErrNone(r);
  1625 	r=f1.Size(temp);
  1636 	r=f1.Size(temp);
  1626 	test(r==KErrNone);
  1637 	test_KErrNone(r);
  1627 	test(temp==0);
  1638 	test(temp==0);
  1628 	TUint data=0;
  1639 	TUint data=0;
  1629 	TPtrC8 buf((TText8*)&data,1);
  1640 	TPtrC8 buf((TText8*)&data,1);
  1630 	r=f1.Write(buf);
  1641 	r=f1.Write(buf);
  1631 //	r=f1.Write(_L("\0"));
  1642 //	r=f1.Write(_L("\0"));
  1632 	test(r==KErrNone);
  1643 	test_KErrNone(r);
  1633 	r=f1.Size(temp);
  1644 	r=f1.Size(temp);
  1634 	test(r==KErrNone);
  1645 	test_KErrNone(r);
  1635 	test(temp==1);
  1646 	test(temp==1);
  1636 	temp=0;
  1647 	temp=0;
  1637 	r=f1.Seek(ESeekStart,temp);
  1648 	r=f1.Seek(ESeekStart,temp);
  1638 	test(r==KErrNone);
  1649 	test_KErrNone(r);
  1639 	test(temp==0);
  1650 	test(temp==0);
  1640 	TBuf8<32> testBuf;
  1651 	TBuf8<32> testBuf;
  1641 	r=f1.Read(testBuf);
  1652 	r=f1.Read(testBuf);
  1642 	test(r==KErrNone);
  1653 	test_KErrNone(r);
  1643 	test(testBuf==buf);
  1654 	test(testBuf==buf);
  1644 	f1.Close();
  1655 	f1.Close();
  1645 
  1656 
  1646 	class RHackFile : public RFile
  1657 	class RHackFile : public RFile
  1647 	{
  1658 	{
  1650 			{ return RSubSessionBase::SendReceive(aFunction, aArgs); }
  1661 			{ return RSubSessionBase::SendReceive(aFunction, aArgs); }
  1651 	};
  1662 	};
  1652 
  1663 
  1653 	RHackFile f2;
  1664 	RHackFile f2;
  1654 	f2.Open(TheFs, _L("File.File"), EFileRead);
  1665 	f2.Open(TheFs, _L("File.File"), EFileRead);
  1655 	test(r == KErrNone);
  1666 	test_KErrNone(r);
  1656 	r = f2.SendReceive(/*47*/ EFsFileChangeMode, TIpcArgs(EFileRead | EFileWrite));	// <- must fail!
  1667 	r = f2.SendReceive(/*47*/ EFsFileChangeMode, TIpcArgs(EFileRead | EFileWrite));	// <- must fail!
  1657 	test(r == KErrArgument);
  1668 	test_Value(r, r == KErrArgument);
  1658 	r = f2.Write(_L8("Hacked!"));	// <- must fail!
  1669 	r = f2.Write(_L8("Hacked!"));	// <- must fail!
  1659 	test(r == KErrAccessDenied);
  1670 	test_Value(r, r == KErrAccessDenied);
  1660 	f2.Close();
  1671 	f2.Close();
  1661 
  1672 
  1662 	r=TheFs.Delete(_L("File.FIle"));
  1673 	r=TheFs.Delete(_L("File.FIle"));
  1663 	test(r==KErrNone);
  1674 	test_KErrNone(r);
  1664 	}
  1675 	}
  1665 
  1676 
  1666 static void testFileRename()
  1677 static void testFileRename()
  1667 //
  1678 //
  1668 // Test rename
  1679 // Test rename
  1678     TInt r;
  1689     TInt r;
  1679     RFile f1;
  1690     RFile f1;
  1680 
  1691 
  1681     //-- test renaming a file to a non-existing directory
  1692     //-- test renaming a file to a non-existing directory
  1682     r = TheFs.MkDir(_L("\\temp\\"));
  1693     r = TheFs.MkDir(_L("\\temp\\"));
  1683     test(r==KErrNone || r==KErrAlreadyExists);
  1694     test_Value(r, r == KErrNone || r==KErrAlreadyExists);
  1684 
  1695 
  1685     r = f1.Replace(TheFs, _L("\\temp\\file1"), 0);
  1696     r = f1.Replace(TheFs, _L("\\temp\\file1"), 0);
  1686     test(r==KErrNone);
  1697     test_KErrNone(r);
  1687 
  1698 
  1688     r = f1.Rename(_L("\\temp\\temp\\file1"));
  1699     r = f1.Rename(_L("\\temp\\temp\\file1"));
  1689     test(r == KErrPathNotFound);
  1700     test_Value(r, r == KErrPathNotFound);
  1690 
  1701 
  1691     f1.Close();
  1702     f1.Close();
  1692 
  1703 
  1693 
  1704 
  1694 	r=f1.Replace(TheFs,name2,EFileWrite);
  1705 	r=f1.Replace(TheFs,name2,EFileWrite);
  1695 	test(r==KErrNone);
  1706 	test_KErrNone(r);
  1696 	r=f1.Write(_L8("1234"));
  1707 	r=f1.Write(_L8("1234"));
  1697 	test(r==KErrNone);
  1708 	test_KErrNone(r);
  1698 	TInt len=CheckFileExists(name2,KErrNone);
  1709 	TInt len=CheckFileExists(name2,KErrNone);
  1699 	test(len==4);
  1710 	test(len==4);
  1700 	r=f1.Rename(name1);
  1711 	r=f1.Rename(name1);
  1701 	test(r==KErrNone);
  1712 	test_KErrNone(r);
  1702 
  1713 
  1703 	r=f1.Read(0,contents);
  1714 	r=f1.Read(0,contents);
  1704 	test(r==KErrNone);
  1715 	test_KErrNone(r);
  1705 	test(contents==_L8("1234"));
  1716 	test(contents==_L8("1234"));
  1706 	r=f1.Write(4,_L8("5678"));
  1717 	r=f1.Write(4,_L8("5678"));
  1707 	test(r==KErrNone);
  1718 	test_KErrNone(r);
  1708 
  1719 
  1709 	len=CheckFileExists(name1,KErrNone);
  1720 	len=CheckFileExists(name1,KErrNone);
  1710 	test(len==8);
  1721 	test(len==8);
  1711 	CheckFileExists(name2,KErrNotFound);
  1722 	CheckFileExists(name2,KErrNotFound);
  1712 	r=f1.Write(8,_L8("90"));
  1723 	r=f1.Write(8,_L8("90"));
  1713 	test(r==KErrNone);
  1724 	test_KErrNone(r);
  1714 	f1.Close();
  1725 	f1.Close();
  1715 	len=CheckFileExists(name1,KErrNone);
  1726 	len=CheckFileExists(name1,KErrNone);
  1716 	test(len==10);
  1727 	test(len==10);
  1717 
  1728 
  1718 	test.Next(_L("Test can change case using rename"));
  1729 	test.Next(_L("Test can change case using rename"));
  1719 	r=f1.Open(TheFs,name1,EFileRead|EFileWrite);
  1730 	r=f1.Open(TheFs,name1,EFileRead|EFileWrite);
  1720 	test(r==KErrNone);
  1731 	test_KErrNone(r);
  1721 	r=f1.Rename(name3);
  1732 	r=f1.Rename(name3);
  1722 	test(r==KErrNone);
  1733 	test_KErrNone(r);
  1723 	CheckFileExists(name1,KErrNone,EFalse);
  1734 	CheckFileExists(name1,KErrNone,EFalse);
  1724 	len=CheckFileExists(name3,KErrNone);
  1735 	len=CheckFileExists(name3,KErrNone);
  1725 	test(len==10);
  1736 	test(len==10);
  1726 	f1.Close();
  1737 	f1.Close();
  1727 	CheckFileExists(name1,KErrNone,EFalse);
  1738 	CheckFileExists(name1,KErrNone,EFalse);
  1728 	len=CheckFileExists(name3,KErrNone);
  1739 	len=CheckFileExists(name3,KErrNone);
  1729 	test(len==10);
  1740 	test(len==10);
  1730 
  1741 
  1731 	test.Next(_L("Test can rename to an identical filename"));
  1742 	test.Next(_L("Test can rename to an identical filename"));
  1732 	r=f1.Open(TheFs,name3,EFileRead|EFileWrite);
  1743 	r=f1.Open(TheFs,name3,EFileRead|EFileWrite);
  1733 	test(r==KErrNone);
  1744 	test_KErrNone(r);
  1734 	r=f1.Rename(name3);
  1745 	r=f1.Rename(name3);
  1735 	test(r==KErrNone);
  1746 	test_KErrNone(r);
  1736 	len=CheckFileExists(name3,KErrNone);
  1747 	len=CheckFileExists(name3,KErrNone);
  1737 	test(len==10);
  1748 	test(len==10);
  1738 	f1.Close();
  1749 	f1.Close();
  1739 	len=CheckFileExists(name3,KErrNone);
  1750 	len=CheckFileExists(name3,KErrNone);
  1740 	test(len==10);
  1751 	test(len==10);
  1741 
  1752 
  1742 	test.Next(_L("Test rename to a name containing a wildcard is rejected"));
  1753 	test.Next(_L("Test rename to a name containing a wildcard is rejected"));
  1743 	r=f1.Open(TheFs,name3,EFileRead|EFileWrite);
  1754 	r=f1.Open(TheFs,name3,EFileRead|EFileWrite);
  1744 	test(r==KErrNone);
  1755 	test_KErrNone(r);
  1745 	r=f1.Rename(_L("asdf*ASDF"));
  1756 	r=f1.Rename(_L("asdf*ASDF"));
  1746 	test(r==KErrBadName);
  1757 	test_Value(r, r == KErrBadName);
  1747 	r=f1.Rename(_L("asdf?AF"));
  1758 	r=f1.Rename(_L("asdf?AF"));
  1748 	test(r==KErrBadName);
  1759 	test_Value(r, r == KErrBadName);
  1749 	f1.Close();
  1760 	f1.Close();
  1750 
  1761 
  1751 	r=f1.Open(TheFs,name3,EFileRead);
  1762 	r=f1.Open(TheFs,name3,EFileRead);
  1752 	test(r==KErrNone);
  1763 	test_KErrNone(r);
  1753 	r=f1.Read(contents);
  1764 	r=f1.Read(contents);
  1754 	test(r==KErrNone);
  1765 	test_KErrNone(r);
  1755 	test(contents==_L8("1234567890"));
  1766 	test(contents==_L8("1234567890"));
  1756 	r=f1.Read(contents);
  1767 	r=f1.Read(contents);
  1757 	test(r==KErrNone);
  1768 	test_KErrNone(r);
  1758 	test(contents.Length()==0);
  1769 	test(contents.Length()==0);
  1759 	f1.Close();
  1770 	f1.Close();
  1760 
  1771 
  1761 	test.Next(_L("Check file date is retained"));
  1772 	test.Next(_L("Check file date is retained"));
  1762 	TDateTime dateTime(1995,(TMonth)10,19,23,0,0,0);
  1773 	TDateTime dateTime(1995,(TMonth)10,19,23,0,0,0);
  1763 	TTime oldTime(dateTime);
  1774 	TTime oldTime(dateTime);
  1764 	r=TheFs.SetEntry(name3,oldTime,0,0);
  1775 	r=TheFs.SetEntry(name3,oldTime,0,0);
  1765 	test(r==KErrNone);
  1776 	test_KErrNone(r);
  1766 	r=f1.Open(TheFs,name3,EFileRead|EFileWrite);
  1777 	r=f1.Open(TheFs,name3,EFileRead|EFileWrite);
  1767 	test(r==KErrNone);
  1778 	test_KErrNone(r);
  1768 	TTime check;
  1779 	TTime check;
  1769 	r=f1.Modified(check);
  1780 	r=f1.Modified(check);
  1770 	test(r==KErrNone);
  1781 	test_KErrNone(r);
  1771 	test(check==oldTime);
  1782 	test(check==oldTime);
  1772 
  1783 
  1773 	r=f1.Rename(_L("OldFile.Old"));
  1784 	r=f1.Rename(_L("OldFile.Old"));
  1774 	test(r==KErrNone);
  1785 	test_KErrNone(r);
  1775 
  1786 
  1776 	r=f1.Modified(check);
  1787 	r=f1.Modified(check);
  1777 	test(r==KErrNone);
  1788 	test_KErrNone(r);
  1778 	test(check==oldTime);
  1789 	test(check==oldTime);
  1779 	r=TheFs.Modified(_L("oldfile.old"),check);
  1790 	r=TheFs.Modified(_L("oldfile.old"),check);
  1780 	test(r==KErrNone);
  1791 	test_KErrNone(r);
  1781 	test(check==oldTime);
  1792 	test(check==oldTime);
  1782 	f1.Close();
  1793 	f1.Close();
  1783 	r=TheFs.Modified(_L("oldfile.old"),check);
  1794 	r=TheFs.Modified(_L("oldfile.old"),check);
  1784 	test(r==KErrNone);
  1795 	test_KErrNone(r);
  1785 	test(check==oldTime);
  1796 	test(check==oldTime);
  1786 	}
  1797 	}
  1787 
  1798 
  1788 static void TestFileUids()
  1799 static void TestFileUids()
  1789 //
  1800 //
  1797 	TUidType uidData1(TUid::Uid(2),TUid::Uid(2),TUid::Uid(2));
  1808 	TUidType uidData1(TUid::Uid(2),TUid::Uid(2),TUid::Uid(2));
  1798 	MakeFile(_L("Sketch(01)"),uidData1,_L8("A different sketch"));
  1809 	MakeFile(_L("Sketch(01)"),uidData1,_L8("A different sketch"));
  1799 
  1810 
  1800 	TEntry e;
  1811 	TEntry e;
  1801 	TInt r=TheFs.Entry(_L("Tmp04005.$$$"),e);
  1812 	TInt r=TheFs.Entry(_L("Tmp04005.$$$"),e);
  1802 	test(r==KErrNone);
  1813 	test_KErrNone(r);
  1803 	test(uidData==e.iType);
  1814 	test(uidData==e.iType);
  1804 	r=TheFs.Entry(_L("Sketch(01)"),e);
  1815 	r=TheFs.Entry(_L("Sketch(01)"),e);
  1805 	test(r==KErrNone);
  1816 	test_KErrNone(r);
  1806 	test(uidData1==e.iType);
  1817 	test(uidData1==e.iType);
  1807 
  1818 
  1808 	test.Next(_L("Test replace preserves UIDs"));
  1819 	test.Next(_L("Test replace preserves UIDs"));
  1809 	r=TheFs.Replace(_L("Tmp04005.$$$"),_L("Sketch(01)"));
  1820 	r=TheFs.Replace(_L("Tmp04005.$$$"),_L("Sketch(01)"));
  1810 	test(r==KErrNone);
  1821 	test_KErrNone(r);
  1811 
  1822 
  1812 	r=TheFs.Entry(_L("Tmp04005.$$$"),e);
  1823 	r=TheFs.Entry(_L("Tmp04005.$$$"),e);
  1813 	test(r==KErrNotFound);
  1824 	test_Value(r, r == KErrNotFound);
  1814 	r=TheFs.Entry(_L("Sketch(01)"),e);
  1825 	r=TheFs.Entry(_L("Sketch(01)"),e);
  1815 	test(r==KErrNone);
  1826 	test_KErrNone(r);
  1816 	test(uidData==e.iType);
  1827 	test(uidData==e.iType);
  1817 	}
  1828 	}
  1818 
  1829 
  1819 
  1830 
  1820 static void TestMaxLengthFilenames()
  1831 static void TestMaxLengthFilenames()
  1821 //
  1832 //
  1822 // Test max length filenames can be created/deleted
  1833 // Test max length filenames can be created/deleted
  1823 //
  1834 //
  1824 	{
  1835 	{
  1825 
  1836 	if(Is_SimulatedSystemDrive(TheFs, gDriveNum))
  1826 #if defined(__WINS__)
  1837 		{
  1827 	if (gSessionPath[0]=='C')
  1838 		test.Printf(_L("Skipping TestMaxLengthFilenames() on PlatSim/Emulator drive %C:\n"), gSessionPath[0]);
  1828 		return;
  1839 		return;
  1829 #endif
  1840 		}
  1830 
  1841 
  1831 	test.Next(_L("Test max length filenames"));
  1842 	test.Next(_L("Test max length filenames"));
  1832 	TFileName bigName;
  1843 	TFileName bigName;
  1833 	CreateLongName(bigName,gSeed,255);
  1844 	CreateLongName(bigName,gSeed,255);
  1834 	bigName[0]='\\';
  1845 	bigName[0]='\\';
  1835 	RFile f;
  1846 	RFile f;
  1836 	TInt r=f.Create(TheFs,bigName,EFileRead);
  1847 	TInt r=f.Create(TheFs,bigName,EFileRead);
  1837 	test(r==KErrBadName);
  1848 	test_Value(r, r == KErrBadName);
  1838 	bigName.SetLength(254);
  1849 	bigName.SetLength(254);
  1839 	r=f.Create(TheFs,bigName,EFileRead);
  1850 	r=f.Create(TheFs,bigName,EFileRead);
  1840 	test(r==KErrNone);
  1851 	test_KErrNone(r);
  1841 	f.Close();
  1852 	f.Close();
  1842 
  1853 
  1843 	TInt count;
  1854 	TInt count;
  1844 	TFileName countedBigName=bigName;
  1855 	TFileName countedBigName=bigName;
  1845     // This loop may not reach the '\' character, or we will get a bad path.
  1856     // This loop may not reach the '\' character, or we will get a bad path.
  1848 		countedBigName[2]=(TText)('A'+count);
  1859 		countedBigName[2]=(TText)('A'+count);
  1849 		r=f.Create(TheFs,countedBigName,EFileRead);
  1860 		r=f.Create(TheFs,countedBigName,EFileRead);
  1850 		if (r==KErrDirFull)
  1861 		if (r==KErrDirFull)
  1851 			{
  1862 			{
  1852 			r=TheFs.Delete(countedBigName);
  1863 			r=TheFs.Delete(countedBigName);
  1853 			test(r==KErrNotFound);
  1864 			test_Value(r, r == KErrNotFound);
  1854 			break;
  1865 			break;
  1855 			}
  1866 			}
  1856 		if (r!=KErrNone)
  1867 		if (r!=KErrNone)
  1857 			test.Printf(_L("File create failed:%d"),r);
  1868 			test.Printf(_L("File create failed:%d"),r);
  1858 		test(r==KErrNone);
  1869 		test_KErrNone(r);
  1859 		f.Close();
  1870 		f.Close();
  1860 		}
  1871 		}
  1861 	while(count--)
  1872 	while(count--)
  1862 		{
  1873 		{
  1863 		countedBigName[2]=(TText)('A'+count);
  1874 		countedBigName[2]=(TText)('A'+count);
  1864 		r=TheFs.Delete(countedBigName);
  1875 		r=TheFs.Delete(countedBigName);
  1865 		test(r==KErrNone);
  1876 		test_KErrNone(r);
  1866 		}
  1877 		}
  1867 
  1878 
  1868 	r=TheFs.Delete(bigName);
  1879 	r=TheFs.Delete(bigName);
  1869 	test(r==KErrNone);
  1880 	test_KErrNone(r);
  1870 
  1881 
  1871 	TFileName subDirFileName=_L("\\F32-TST\\TFILE");
  1882 	TFileName subDirFileName=_L("\\F32-TST\\TFILE");
  1872 	bigName.SetLength(241);
  1883 	bigName.SetLength(241);
  1873 	subDirFileName.Append(bigName);
  1884 	subDirFileName.Append(bigName);
  1874 	r=f.Create(TheFs,subDirFileName,EFileRead);
  1885 	r=f.Create(TheFs,subDirFileName,EFileRead);
  1875 	test(r==KErrBadName);
  1886 	test_Value(r, r == KErrBadName);
  1876 	subDirFileName.SetLength(254);
  1887 	subDirFileName.SetLength(254);
  1877 	r=f.Create(TheFs,subDirFileName,EFileRead);
  1888 	r=f.Create(TheFs,subDirFileName,EFileRead);
  1878 	test(r==KErrNone);
  1889 	test_KErrNone(r);
  1879 	f.Close();
  1890 	f.Close();
  1880 	r=TheFs.Delete(subDirFileName);
  1891 	r=TheFs.Delete(subDirFileName);
  1881 	test(r==KErrNone);
  1892 	test_KErrNone(r);
  1882 	}
  1893 	}
  1883 
  1894 
  1884 
  1895 
  1885 
  1896 
  1886 
  1897 
  1894 	MakeFile(_L("TESTER"));
  1905 	MakeFile(_L("TESTER"));
  1895 
  1906 
  1896 	// Open a file in EFileShareReadersOnly mode
  1907 	// Open a file in EFileShareReadersOnly mode
  1897 	RFile f1;
  1908 	RFile f1;
  1898 	TInt r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
  1909 	TInt r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
  1899 	test(r==KErrNone);
  1910 	test_KErrNone(r);
  1900 
  1911 
  1901 	// Opening a share in EFileShareReadersOnly mode should succeed
  1912 	// Opening a share in EFileShareReadersOnly mode should succeed
  1902 	RFile f2;
  1913 	RFile f2;
  1903 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
  1914 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
  1904 	test(r==KErrNone);
  1915 	test_KErrNone(r);
  1905 	f2.Close();
  1916 	f2.Close();
  1906 
  1917 
  1907 	// Opening a share in EFileShareReadersOrWriters mode with EFileRead access should succeed
  1918 	// Opening a share in EFileShareReadersOrWriters mode with EFileRead access should succeed
  1908 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead);
  1919 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead);
  1909 	test(r==KErrNone);
  1920 	test_KErrNone(r);
  1910 	f2.Close();
  1921 	f2.Close();
  1911 
  1922 
  1912 	// Opening a share in EFileShareReadersOrWriters mode with EFileWrite access should succeed
  1923 	// Opening a share in EFileShareReadersOrWriters mode with EFileWrite access should succeed
  1913 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite);
  1924 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite);
  1914 	test(r==KErrInUse);
  1925 	test_Value(r, r == KErrInUse);
  1915 
  1926 
  1916 	// Opening a share in EFileShareReadersOrWriters mode with EFileRead|EFileWrite access should succeed
  1927 	// Opening a share in EFileShareReadersOrWriters mode with EFileRead|EFileWrite access should succeed
  1917 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite);
  1928 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite);
  1918 	test(r==KErrInUse);
  1929 	test_Value(r, r == KErrInUse);
  1919 
  1930 
  1920 	// Opening a share in EShareAny mode should fail
  1931 	// Opening a share in EShareAny mode should fail
  1921 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny);
  1932 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny);
  1922 	test(r==KErrInUse);
  1933 	test_Value(r, r == KErrInUse);
  1923 
  1934 
  1924 	f1.Close();
  1935 	f1.Close();
  1925 
  1936 
  1926 	//////////////////////
  1937 	//////////////////////
  1927 
  1938 
  1928 	// Open a file in EFileShareReadersOrWriters mode for reading
  1939 	// Open a file in EFileShareReadersOrWriters mode for reading
  1929 	r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead);
  1940 	r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead);
  1930 	test(r==KErrNone);
  1941 	test_KErrNone(r);
  1931 
  1942 
  1932 	// Opening a share in EFileShareExclusive mode should fail
  1943 	// Opening a share in EFileShareExclusive mode should fail
  1933 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive);
  1944 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive);
  1934 	test(r==KErrInUse);
  1945 	test_Value(r, r == KErrInUse);
  1935 
  1946 
  1936 	// Opening a share in EFileShareReadersOnly mode should succeed
  1947 	// Opening a share in EFileShareReadersOnly mode should succeed
  1937 	// (the share doesn't care if the file is opened for reading or writing)
  1948 	// (the share doesn't care if the file is opened for reading or writing)
  1938 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
  1949 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
  1939 	test(r==KErrNone);
  1950 	test_KErrNone(r);
  1940 	f2.Close();
  1951 	f2.Close();
  1941 
  1952 
  1942 	// Opening a share in EFileShareReadersOnly mode with EFileRead accesss should succeed
  1953 	// Opening a share in EFileShareReadersOnly mode with EFileRead accesss should succeed
  1943 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead);
  1954 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead);
  1944 	test(r==KErrNone);
  1955 	test_KErrNone(r);
  1945 	f2.Close();
  1956 	f2.Close();
  1946 
  1957 
  1947 	// Opening a share in EFileShareReadersOnly mode with EFileWrite accesss should succeed
  1958 	// Opening a share in EFileShareReadersOnly mode with EFileWrite accesss should succeed
  1948 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite);
  1959 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite);
  1949 	test(r==KErrNone);
  1960 	test_KErrNone(r);
  1950 	f2.Close();
  1961 	f2.Close();
  1951 
  1962 
  1952 	// Opening a share in EFileShareReadersOnly mode with EFileRead|EFileWrite accesss should succeed
  1963 	// Opening a share in EFileShareReadersOnly mode with EFileRead|EFileWrite accesss should succeed
  1953 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite);
  1964 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite);
  1954 	test(r==KErrNone);
  1965 	test_KErrNone(r);
  1955 	f2.Close();
  1966 	f2.Close();
  1956 
  1967 
  1957 	// Opening a share in EFileShareAny mode should succeed
  1968 	// Opening a share in EFileShareAny mode should succeed
  1958 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny);
  1969 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny);
  1959 	test(r==KErrNone);
  1970 	test_KErrNone(r);
  1960 	f2.Close();
  1971 	f2.Close();
  1961 
  1972 
  1962 	f1.Close();
  1973 	f1.Close();
  1963 
  1974 
  1964 	//////////////////////
  1975 	//////////////////////
  1965 
  1976 
  1966 	// Open a file in EFileShareReadersOrWriters mode for writing
  1977 	// Open a file in EFileShareReadersOrWriters mode for writing
  1967 	r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite);
  1978 	r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite);
  1968 	test(r==KErrNone);
  1979 	test_KErrNone(r);
  1969 
  1980 
  1970 	// Opening a share in EFileShareExclusive mode should fail
  1981 	// Opening a share in EFileShareExclusive mode should fail
  1971 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive);
  1982 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive);
  1972 	test(r==KErrInUse);
  1983 	test_Value(r, r == KErrInUse);
  1973 
  1984 
  1974 	// Opening a share in EFileShareReadersOnly mode should fail
  1985 	// Opening a share in EFileShareReadersOnly mode should fail
  1975 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
  1986 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
  1976 	test(r==KErrInUse);
  1987 	test_Value(r, r == KErrInUse);
  1977 
  1988 
  1978 	// Opening a share in EFileShareReadersOrWriters mode with EFileRead access should succeed
  1989 	// Opening a share in EFileShareReadersOrWriters mode with EFileRead access should succeed
  1979 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead);
  1990 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead);
  1980 	test(r==KErrNone);
  1991 	test_KErrNone(r);
  1981 	f2.Close();
  1992 	f2.Close();
  1982 
  1993 
  1983 	// Opening a share in EFileShareReadersOrWriters mode with EFileWrite access should succeed
  1994 	// Opening a share in EFileShareReadersOrWriters mode with EFileWrite access should succeed
  1984 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite);
  1995 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite);
  1985 	test(r==KErrNone);
  1996 	test_KErrNone(r);
  1986 	f2.Close();
  1997 	f2.Close();
  1987 
  1998 
  1988 	// Opening a share in EFileShareReadersOrWriters mode with EFileRead|EFileWrite access should succeed
  1999 	// Opening a share in EFileShareReadersOrWriters mode with EFileRead|EFileWrite access should succeed
  1989 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite);
  2000 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite);
  1990 	test(r==KErrNone);
  2001 	test_KErrNone(r);
  1991 	f2.Close();
  2002 	f2.Close();
  1992 
  2003 
  1993 	// Opening a share in EFileShareAny mode should succeed
  2004 	// Opening a share in EFileShareAny mode should succeed
  1994 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny);
  2005 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny);
  1995 	test(r==KErrNone);
  2006 	test_KErrNone(r);
  1996 	f2.Close();
  2007 	f2.Close();
  1997 
  2008 
  1998 	f1.Close();
  2009 	f1.Close();
  1999 
  2010 
  2000 	//////////////////////////
  2011 	//////////////////////////
  2001 
  2012 
  2002 	// Open a file in EFileShareAny mode
  2013 	// Open a file in EFileShareAny mode
  2003 	r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny);
  2014 	r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny);
  2004 	test(r==KErrNone);
  2015 	test_KErrNone(r);
  2005 
  2016 
  2006 	// Opening a share in EFileShareExclusive mode should fail
  2017 	// Opening a share in EFileShareExclusive mode should fail
  2007 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive);
  2018 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareExclusive);
  2008 	test(r==KErrInUse);
  2019 	test_Value(r, r == KErrInUse);
  2009 
  2020 
  2010 	// Opening a share in EFileShareReadersOnly mode should fail
  2021 	// Opening a share in EFileShareReadersOnly mode should fail
  2011 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
  2022 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
  2012 	test(r==KErrInUse);
  2023 	test_Value(r, r == KErrInUse);
  2013 
  2024 
  2014 	// Opening a share in EFileShareReadersOrWriters mode with EFileRead access should succeed
  2025 	// Opening a share in EFileShareReadersOrWriters mode with EFileRead access should succeed
  2015 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead);
  2026 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead);
  2016 	test(r==KErrNone);
  2027 	test_KErrNone(r);
  2017 	f2.Close();
  2028 	f2.Close();
  2018 
  2029 
  2019 	// Opening a share in EFileShareReadersOrWriters mode with EFileWrite access should succeed
  2030 	// Opening a share in EFileShareReadersOrWriters mode with EFileWrite access should succeed
  2020 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite);
  2031 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite);
  2021 	test(r==KErrNone);
  2032 	test_KErrNone(r);
  2022 	f2.Close();
  2033 	f2.Close();
  2023 
  2034 
  2024 	// Opening a share in EFileShareReadersOrWriters mode with EFileRead|EFileWrite access should succeed
  2035 	// Opening a share in EFileShareReadersOrWriters mode with EFileRead|EFileWrite access should succeed
  2025 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite);
  2036 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite);
  2026 	test(r==KErrNone);
  2037 	test_KErrNone(r);
  2027 	f2.Close();
  2038 	f2.Close();
  2028 
  2039 
  2029 	// Opening a share in EFileShareAny mode with should succeed
  2040 	// Opening a share in EFileShareAny mode with should succeed
  2030 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny);
  2041 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny);
  2031 	test(r==KErrNone);
  2042 	test_KErrNone(r);
  2032 	f2.Close();
  2043 	f2.Close();
  2033 
  2044 
  2034 	f1.Close();
  2045 	f1.Close();
  2035 
  2046 
  2036 	//////////////////////
  2047 	//////////////////////
  2037 
  2048 
  2038 	// Open a file in EFileShareReadersOrWriters mode for reading
  2049 	// Open a file in EFileShareReadersOrWriters mode for reading
  2039 	r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead);
  2050 	r=f1.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead);
  2040 	test(r==KErrNone);
  2051 	test_KErrNone(r);
  2041 
  2052 
  2042 	// Opening a share in EFileShareReadersOnly mode should succeed
  2053 	// Opening a share in EFileShareReadersOnly mode should succeed
  2043 	//  - The share should now be promoted to EFileShareReadersOnly mode
  2054 	//  - The share should now be promoted to EFileShareReadersOnly mode
  2044 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
  2055 	r=f2.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOnly);
  2045 	test(r==KErrNone);
  2056 	test_KErrNone(r);
  2046 
  2057 
  2047 	TInt pass = 2;
  2058 	TInt pass = 2;
  2048 	while(pass--)
  2059 	while(pass--)
  2049 		{
  2060 		{
  2050 		RFile f3;
  2061 		RFile f3;
  2051 		// Opening a share in EFileShareReadersOnly mode with EFileRead accesss should succeed
  2062 		// Opening a share in EFileShareReadersOnly mode with EFileRead accesss should succeed
  2052 		r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead);
  2063 		r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead);
  2053 		test(r==KErrNone);
  2064 		test_KErrNone(r);
  2054 		f3.Close();
  2065 		f3.Close();
  2055 
  2066 
  2056 		// Opening a share in EFileShareReadersOnly mode with EFileWrite accesss should fail
  2067 		// Opening a share in EFileShareReadersOnly mode with EFileWrite accesss should fail
  2057 		r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite);
  2068 		r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileWrite);
  2058 		if(pass == 1)
  2069 		if(pass == 1)
  2059 			{
  2070 			{
  2060 			// The share is promoted - should obey EFileShareReadersOnly rules
  2071 			// The share is promoted - should obey EFileShareReadersOnly rules
  2061 			test(r==KErrInUse);
  2072 			test_Value(r, r == KErrInUse);
  2062 			}
  2073 			}
  2063 		else
  2074 		else
  2064 			{
  2075 			{
  2065 			// The share is demoted - should obey EFileShareReadersOrWriters rules
  2076 			// The share is demoted - should obey EFileShareReadersOrWriters rules
  2066 			test(r==KErrNone);
  2077 			test_KErrNone(r);
  2067 			f3.Close();
  2078 			f3.Close();
  2068 			}
  2079 			}
  2069 
  2080 
  2070 		// Opening a share in EFileShareReadersOnly mode with EFileRead|EFileWrite accesss should fail
  2081 		// Opening a share in EFileShareReadersOnly mode with EFileRead|EFileWrite accesss should fail
  2071 		r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite);
  2082 		r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareReadersOrWriters|EFileRead|EFileWrite);
  2072 		if(pass == 1)
  2083 		if(pass == 1)
  2073 			{
  2084 			{
  2074 			// The share is promoted - should obey EFileShareReadersOnly rules
  2085 			// The share is promoted - should obey EFileShareReadersOnly rules
  2075 			test(r==KErrInUse);
  2086 			test_Value(r, r == KErrInUse);
  2076 			}
  2087 			}
  2077 		else
  2088 		else
  2078 			{
  2089 			{
  2079 			// The share is demoted - should obey EFileShareReadersOrWriters rules
  2090 			// The share is demoted - should obey EFileShareReadersOrWriters rules
  2080 			test(r==KErrNone);
  2091 			test_KErrNone(r);
  2081 			f3.Close();
  2092 			f3.Close();
  2082 			}
  2093 			}
  2083 
  2094 
  2084 		// Opening a share in EFileShareAny mode should fails
  2095 		// Opening a share in EFileShareAny mode should fails
  2085 		r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny);
  2096 		r=f3.Open(TheFs,_L("T_FILE.CPP"),EFileStreamText|EFileShareAny);
  2086 		if(pass == 1)
  2097 		if(pass == 1)
  2087 			{
  2098 			{
  2088 			// The share is promoted - should obey EFileShareReadersOnly rules
  2099 			// The share is promoted - should obey EFileShareReadersOnly rules
  2089 			test(r==KErrInUse);
  2100 			test_Value(r, r == KErrInUse);
  2090 			f2.Close();
  2101 			f2.Close();
  2091 			}
  2102 			}
  2092 		else
  2103 		else
  2093 			{
  2104 			{
  2094 			// The share is demoted - should obey EFileShareReadersOrWriters rules
  2105 			// The share is demoted - should obey EFileShareReadersOrWriters rules
  2095 			test(r==KErrNone);
  2106 			test_KErrNone(r);
  2096 			f3.Close();
  2107 			f3.Close();
  2097 			}
  2108 			}
  2098 		}
  2109 		}
  2099 
  2110 
  2100 	f1.Close();
  2111 	f1.Close();
  2193 
  2204 
  2194 // EXPORT_C TInt RFile::Write(const TDesC8& aDes,TInt aLength)
  2205 // EXPORT_C TInt RFile::Write(const TDesC8& aDes,TInt aLength)
  2195 	createTestFile(TheFile);
  2206 	createTestFile(TheFile);
  2196 
  2207 
  2197 	r=TheFile.Write(gBuf, -1);
  2208 	r=TheFile.Write(gBuf, -1);
  2198 	test(r==KErrArgument);
  2209 	test_Value(r, r == KErrArgument);
  2199 
  2210 
  2200 	removeTestFile(TheFile);
  2211 	removeTestFile(TheFile);
  2201 
  2212 
  2202 // EXPORT_C void RFile::Write(const TDesC8& aDes,TInt aLength, TRequestStatus& aStatus)
  2213 // EXPORT_C void RFile::Write(const TDesC8& aDes,TInt aLength, TRequestStatus& aStatus)
  2203 	createTestFile(TheFile);
  2214 	createTestFile(TheFile);
  2210 
  2221 
  2211 
  2222 
  2212 // EXPORT_C TInt RFile::Write(TInt aPos,const TDesC8& aDes,TInt aLength)
  2223 // EXPORT_C TInt RFile::Write(TInt aPos,const TDesC8& aDes,TInt aLength)
  2213 	createTestFile(TheFile);
  2224 	createTestFile(TheFile);
  2214 	r = TheFile.Write(0,gBuf,-1);
  2225 	r = TheFile.Write(0,gBuf,-1);
  2215 	test(r==KErrArgument);
  2226 	test_Value(r, r == KErrArgument);
  2216 	removeTestFile(TheFile);
  2227 	removeTestFile(TheFile);
  2217 
  2228 
  2218 
  2229 
  2219 // EXPORT_C void RFile::Write(TInt aPos,const TDesC8& aDes, TInt aLength, TRequestStatus& aStatus)
  2230 // EXPORT_C void RFile::Write(TInt aPos,const TDesC8& aDes, TInt aLength, TRequestStatus& aStatus)
  2220 	createTestFile(TheFile);
  2231 	createTestFile(TheFile);
  2328 
  2339 
  2329 	zeroSrcDesc();
  2340 	zeroSrcDesc();
  2330 
  2341 
  2331 	test.Next(_L("Execute sync call RFile::Write(const TDesC8& aDes) with zero length aDes"));
  2342 	test.Next(_L("Execute sync call RFile::Write(const TDesC8& aDes) with zero length aDes"));
  2332 	TInt r=TheFile.Write(gLongBuf);
  2343 	TInt r=TheFile.Write(gLongBuf);
  2333 	test(r==KErrNone);
  2344 	test_KErrNone(r);
  2334 
  2345 
  2335 	test.Printf(_L("Test case passed\n"));
  2346 	test.Printf(_L("Test case passed\n"));
  2336 
  2347 
  2337 	removeTestFile(TheFile);
  2348 	removeTestFile(TheFile);
  2338 
  2349 
  2395 	t.Close();
  2406 	t.Close();
  2396 	User::SetJustInTime(ETrue);
  2407 	User::SetJustInTime(ETrue);
  2397 #else
  2408 #else
  2398 
  2409 
  2399 	r=TheFile.Write(gLongBuf, 0x80000);
  2410 	r=TheFile.Write(gLongBuf, 0x80000);
  2400 	test(r==KErrNone);
  2411 	test_KErrNone(r);
  2401 #endif
  2412 #endif
  2402 
  2413 
  2403 	test.Printf(_L("Test case passed\n"));
  2414 	test.Printf(_L("Test case passed\n"));
  2404 
  2415 
  2405 	removeTestFile(TheFile);
  2416 	removeTestFile(TheFile);
  2447 
  2458 
  2448 	zeroSrcDesc();
  2459 	zeroSrcDesc();
  2449 
  2460 
  2450 	test.Next(_L("Execute sync call RFile::Write(TInt aPos, const TDesC8& aDes) with zero length aDes"));
  2461 	test.Next(_L("Execute sync call RFile::Write(TInt aPos, const TDesC8& aDes) with zero length aDes"));
  2451 	r=TheFile.Write(0, gLongBuf);
  2462 	r=TheFile.Write(0, gLongBuf);
  2452 	test(r==KErrNone);
  2463 	test_KErrNone(r);
  2453 
  2464 
  2454 	test.Printf(_L("Test case passed\n"));
  2465 	test.Printf(_L("Test case passed\n"));
  2455 
  2466 
  2456 	removeTestFile(TheFile);
  2467 	removeTestFile(TheFile);
  2457 
  2468 
  2498 
  2509 
  2499 	zeroSrcDesc();
  2510 	zeroSrcDesc();
  2500 
  2511 
  2501 	test.Next(_L("Execute sync call RFile::Write(TInt aPos, const TDesC8& aDes, TInt aLength) with zero length aDes"));
  2512 	test.Next(_L("Execute sync call RFile::Write(TInt aPos, const TDesC8& aDes, TInt aLength) with zero length aDes"));
  2502 	r=TheFile.Write(0, gLongBuf, 0x80000);
  2513 	r=TheFile.Write(0, gLongBuf, 0x80000);
  2503 	test(r==KErrNone);
  2514 	test_KErrNone(r);
  2504 
  2515 
  2505 	test.Printf(_L("Test case passed\n"));
  2516 	test.Printf(_L("Test case passed\n"));
  2506 
  2517 
  2507 	removeTestFile(TheFile);
  2518 	removeTestFile(TheFile);
  2508 
  2519 
  2562 	TRequestStatus status(KRequestPending);
  2573 	TRequestStatus status(KRequestPending);
  2563 	TBuf8<2> buf8;
  2574 	TBuf8<2> buf8;
  2564 
  2575 
  2565 // EXPORT_C TInt RFile::Read(TDes8& aDes,TInt aLength) const
  2576 // EXPORT_C TInt RFile::Read(TDes8& aDes,TInt aLength) const
  2566 	err = file.Read(buf8,5);
  2577 	err = file.Read(buf8,5);
  2567 	test(err==KErrOverflow);
  2578 	test_Value(err, err == KErrOverflow);
  2568 	err = KErrNone;
  2579 	err = KErrNone;
  2569 
  2580 
  2570 // EXPORT_C void RFile::Read(TDes8& aDes,TInt aLength,TRequestStatus& aStatus) const
  2581 // EXPORT_C void RFile::Read(TDes8& aDes,TInt aLength,TRequestStatus& aStatus) const
  2571 	file.Read(buf8,5,status);
  2582 	file.Read(buf8,5,status);
  2572 	test(status.Int()==KErrOverflow);
  2583 	test(status.Int()==KErrOverflow);
  2573 	status = KRequestPending;
  2584 	status = KRequestPending;
  2574 
  2585 
  2575 // EXPORT_C TInt RFile::Read(TInt aPos,TDes8& aDes,TInt aLength) const
  2586 // EXPORT_C TInt RFile::Read(TInt aPos,TDes8& aDes,TInt aLength) const
  2576 	err = file.Read(0,buf8,5);
  2587 	err = file.Read(0,buf8,5);
  2577 	test(err==KErrOverflow);
  2588 	test_Value(err, err == KErrOverflow);
  2578 
  2589 
  2579 // EXPORT_C void RFile::Read(TInt aPos,TDes8& aDes,TInt aLength,TRequestStatus& aStatus) const
  2590 // EXPORT_C void RFile::Read(TInt aPos,TDes8& aDes,TInt aLength,TRequestStatus& aStatus) const
  2580 	file.Read(0,buf8,5,status);
  2591 	file.Read(0,buf8,5,status);
  2581 	test(status.Int()==KErrOverflow);
  2592 	test(status.Int()==KErrOverflow);
  2582 
  2593 
  2598 	TUint fileMode=EFileRead;
  2609 	TUint fileMode=EFileRead;
  2599 	RFs fs;
  2610 	RFs fs;
  2600 	RFile file;
  2611 	RFile file;
  2601 
  2612 
  2602 	TInt r=fs.Connect();
  2613 	TInt r=fs.Connect();
  2603 	test(r==KErrNone);
  2614 	test_KErrNone(r);
  2604 	r=fs.SetSessionPath(gSessionPath);
  2615 	r=fs.SetSessionPath(gSessionPath);
  2605 	test(r==KErrNone);
  2616 	test_KErrNone(r);
  2606 	if (testMode & EDoCDeleteOnClose)
  2617 	if (testMode & EDoCDeleteOnClose)
  2607 		fileMode|=EDeleteOnClose;
  2618 		fileMode|=EDeleteOnClose;
  2608 	r=file.Temp(fs,_L(""),gLastTempFileName,fileMode);
  2619 	r=file.Temp(fs,_L(""),gLastTempFileName,fileMode);
  2609 	test(r==KErrNone);
  2620 	test_KErrNone(r);
  2610 	// Signal controlling thread and pause for panic where requested
  2621 	// Signal controlling thread and pause for panic where requested
  2611 	// by caller.
  2622 	// by caller.
  2612 	if (testMode & EDoCPanic)
  2623 	if (testMode & EDoCPanic)
  2613 		{
  2624 		{
  2614 		gSleepThread.Signal();
  2625 		gSleepThread.Signal();
  2650 //!
  2661 //!
  2651 //! @SYMTestExpectedResults
  2662 //! @SYMTestExpectedResults
  2652 //! 	1.	The temporary file is successfully created and deleted.
  2663 //! 	1.	The temporary file is successfully created and deleted.
  2653 //---------------------------------------------------------------------------------------------------------------------
  2664 //---------------------------------------------------------------------------------------------------------------------
  2654 	r=clientThread.Create(_L("DeleteOnCloseClientThread 1"),DeleteOnCloseClientThread,KDefaultStackSize,0x2000,0x2000,(TAny*)0);
  2665 	r=clientThread.Create(_L("DeleteOnCloseClientThread 1"),DeleteOnCloseClientThread,KDefaultStackSize,0x2000,0x2000,(TAny*)0);
  2655 	test(r==KErrNone);
  2666 	test_KErrNone(r);
  2656 	clientThread.Resume();
  2667 	clientThread.Resume();
  2657 	gSleepThread.Wait();
  2668 	gSleepThread.Wait();
  2658 	r=TheFs.Delete(gLastTempFileName);
  2669 	r=TheFs.Delete(gLastTempFileName);
  2659 	test(r==KErrNone);
  2670 	test_KErrNone(r);
  2660 	clientThread.Close();
  2671 	clientThread.Close();
  2661 
  2672 
  2662 //
  2673 //
  2663 //---------------------------------------------------------------------------------------------------------------------
  2674 //---------------------------------------------------------------------------------------------------------------------
  2664 //! @SYMTestCaseID	PBASE-t_file-0805
  2675 //! @SYMTestCaseID	PBASE-t_file-0805
  2677 //!		deleted upon close.   The subsequent attempted file deletion
  2688 //!		deleted upon close.   The subsequent attempted file deletion
  2678 //!		by the main test body should fail with KErrNotFound.
  2689 //!		by the main test body should fail with KErrNotFound.
  2679 //---------------------------------------------------------------------------------------------------------------------
  2690 //---------------------------------------------------------------------------------------------------------------------
  2680 	test.Next(_L("RFile::Temp EDeleteOnClose behaviour"));
  2691 	test.Next(_L("RFile::Temp EDeleteOnClose behaviour"));
  2681 	r=clientThread.Create(_L("DeleteOnCloseClientThread 2"),DeleteOnCloseClientThread,KDefaultStackSize,0x2000,0x2000,(TAny*)EDoCDeleteOnClose);
  2692 	r=clientThread.Create(_L("DeleteOnCloseClientThread 2"),DeleteOnCloseClientThread,KDefaultStackSize,0x2000,0x2000,(TAny*)EDoCDeleteOnClose);
  2682 	test(r==KErrNone);
  2693 	test_KErrNone(r);
  2683 	clientThread.Resume();
  2694 	clientThread.Resume();
  2684 	gSleepThread.Wait();
  2695 	gSleepThread.Wait();
  2685 	r=TheFs.Delete(gLastTempFileName);
  2696 	r=TheFs.Delete(gLastTempFileName);
  2686 	test(r==KErrNotFound);
  2697 	test_Value(r, r == KErrNotFound);
  2687 	clientThread.Close();
  2698 	clientThread.Close();
  2688 
  2699 
  2689 //
  2700 //
  2690 //---------------------------------------------------------------------------------------------------------------------
  2701 //---------------------------------------------------------------------------------------------------------------------
  2691 //! @SYMTestCaseID	PBASE-t_file-0806
  2702 //! @SYMTestCaseID	PBASE-t_file-0806
  2702 //! @SYMTestExpectedResults
  2713 //! @SYMTestExpectedResults
  2703 //! 	1.	The temporary file is successfully created and deleted.
  2714 //! 	1.	The temporary file is successfully created and deleted.
  2704 //---------------------------------------------------------------------------------------------------------------------
  2715 //---------------------------------------------------------------------------------------------------------------------
  2705 	test.Next(_L("RFile::Temp default panic behaviour"));
  2716 	test.Next(_L("RFile::Temp default panic behaviour"));
  2706 	r=clientThread.Create(_L("DeleteOnCloseClientThread 3"),DeleteOnCloseClientThread,KDefaultStackSize,0x2000,0x2000,(TAny*)EDoCPanic);
  2717 	r=clientThread.Create(_L("DeleteOnCloseClientThread 3"),DeleteOnCloseClientThread,KDefaultStackSize,0x2000,0x2000,(TAny*)EDoCPanic);
  2707 	test(r==KErrNone);
  2718 	test_KErrNone(r);
  2708 	clientThread.Resume();
  2719 	clientThread.Resume();
  2709 	gSleepThread.Wait();
  2720 	gSleepThread.Wait();
  2710 	User::SetJustInTime(EFalse);
  2721 	User::SetJustInTime(EFalse);
  2711 	clientThread.Panic(_L("Panic temp file thread #3"),KErrGeneral);
  2722 	clientThread.Panic(_L("Panic temp file thread #3"),KErrGeneral);
  2712 	User::SetJustInTime(ETrue);
  2723 	User::SetJustInTime(ETrue);
  2713 	CLOSE_AND_WAIT(clientThread);
  2724 	CLOSE_AND_WAIT(clientThread);
  2714 	FsBarrier();
  2725 	FsBarrier();
  2715 	r=TheFs.Delete(gLastTempFileName);
  2726 	r=TheFs.Delete(gLastTempFileName);
  2716 	test(r==KErrNone);
  2727 	test_KErrNone(r);
  2717 
  2728 
  2718 //
  2729 //
  2719 //---------------------------------------------------------------------------------------------------------------------
  2730 //---------------------------------------------------------------------------------------------------------------------
  2720 //! @SYMTestCaseID	PBASE-t_file-0807
  2731 //! @SYMTestCaseID	PBASE-t_file-0807
  2721 //! @SYMTestType	UT
  2732 //! @SYMTestType	UT
  2733 //!		deleted upon close.   The subsequent attempted file deletion
  2744 //!		deleted upon close.   The subsequent attempted file deletion
  2734 //!		by the main test body should fail with KErrNotFound.
  2745 //!		by the main test body should fail with KErrNotFound.
  2735 //---------------------------------------------------------------------------------------------------------------------
  2746 //---------------------------------------------------------------------------------------------------------------------
  2736 	test.Next(_L("RFile::Temp EDeleteOnClose panic behaviour"));
  2747 	test.Next(_L("RFile::Temp EDeleteOnClose panic behaviour"));
  2737 	r=clientThread.Create(_L("DeleteOnCloseClientThread 4"),DeleteOnCloseClientThread,KDefaultStackSize,0x2000,0x2000,(TAny*)(EDoCPanic|EDoCDeleteOnClose));
  2748 	r=clientThread.Create(_L("DeleteOnCloseClientThread 4"),DeleteOnCloseClientThread,KDefaultStackSize,0x2000,0x2000,(TAny*)(EDoCPanic|EDoCDeleteOnClose));
  2738 	test(r==KErrNone);
  2749 	test_KErrNone(r);
  2739 	clientThread.Resume();
  2750 	clientThread.Resume();
  2740 	gSleepThread.Wait();
  2751 	gSleepThread.Wait();
  2741 	User::SetJustInTime(EFalse);
  2752 	User::SetJustInTime(EFalse);
  2742 	clientThread.Panic(_L("Panic temp file thread #4"),KErrGeneral);
  2753 	clientThread.Panic(_L("Panic temp file thread #4"),KErrGeneral);
  2743 	User::SetJustInTime(ETrue);
  2754 	User::SetJustInTime(ETrue);
  2744 	CLOSE_AND_WAIT(clientThread);
  2755 	CLOSE_AND_WAIT(clientThread);
  2745 	FsBarrier();
  2756 	FsBarrier();
  2746 	r=TheFs.Delete(gLastTempFileName);
  2757 	r=TheFs.Delete(gLastTempFileName);
  2747 	test(r==KErrNotFound);
  2758 	test_Value(r, r == KErrNotFound);
  2748 
  2759 
  2749 //
  2760 //
  2750 //---------------------------------------------------------------------------------------------------------------------
  2761 //---------------------------------------------------------------------------------------------------------------------
  2751 //! @SYMTestCaseID	PBASE-t_file-0808
  2762 //! @SYMTestCaseID	PBASE-t_file-0808
  2752 //! @SYMTestType	UT
  2763 //! @SYMTestType	UT
  2762 //! 	1.	The file creation should succeed.
  2773 //! 	1.	The file creation should succeed.
  2763 //!	2.	The file deletion should fail with KErrNotFound.
  2774 //!	2.	The file deletion should fail with KErrNotFound.
  2764 //---------------------------------------------------------------------------------------------------------------------
  2775 //---------------------------------------------------------------------------------------------------------------------
  2765 	test.Next(_L("RFile::Create EDeleteOnClose behaviour"));
  2776 	test.Next(_L("RFile::Create EDeleteOnClose behaviour"));
  2766  	r=file.Create(TheFs,_L("DoC5"),EFileRead|EFileWrite|EDeleteOnClose);
  2777  	r=file.Create(TheFs,_L("DoC5"),EFileRead|EFileWrite|EDeleteOnClose);
  2767 	test(r==KErrNone);
  2778 	test_KErrNone(r);
  2768 	file.Close();
  2779 	file.Close();
  2769 	r=TheFs.Delete(filename);
  2780 	r=TheFs.Delete(filename);
  2770 	test(r==KErrNotFound);
  2781 	test_Value(r, r == KErrNotFound);
  2771 
  2782 
  2772 //
  2783 //
  2773 //---------------------------------------------------------------------------------------------------------------------
  2784 //---------------------------------------------------------------------------------------------------------------------
  2774 //! @SYMTestCaseID	PBASE-t_file-0809
  2785 //! @SYMTestCaseID	PBASE-t_file-0809
  2775 //! @SYMTestType	UT
  2786 //! @SYMTestType	UT
  2789 //!	2.	The file deletion should fail with KErrInUse.
  2800 //!	2.	The file deletion should fail with KErrInUse.
  2790 //!	3.	The file deletion should fail with KErrNotFound.
  2801 //!	3.	The file deletion should fail with KErrNotFound.
  2791 //---------------------------------------------------------------------------------------------------------------------
  2802 //---------------------------------------------------------------------------------------------------------------------
  2792 	test.Next(_L("DoC 6 - Multiple subsessions"));
  2803 	test.Next(_L("DoC 6 - Multiple subsessions"));
  2793  	r=file.Create(TheFs,filename,EFileShareAny|EFileRead|EFileWrite|EDeleteOnClose);
  2804  	r=file.Create(TheFs,filename,EFileShareAny|EFileRead|EFileWrite|EDeleteOnClose);
  2794 	test(r==KErrNone);
  2805 	test_KErrNone(r);
  2795  	r=file2.Open(TheFs,filename,EFileShareAny|EFileRead|EFileWrite);
  2806  	r=file2.Open(TheFs,filename,EFileShareAny|EFileRead|EFileWrite);
  2796 	test(r==KErrNone);
  2807 	test_KErrNone(r);
  2797 	file.Close();
  2808 	file.Close();
  2798 	test(r==KErrNone);
  2809 	test_KErrNone(r);
  2799 	r=TheFs.Delete(filename);
  2810 	r=TheFs.Delete(filename);
  2800 	test(r==KErrInUse);
  2811 	test_Value(r, r == KErrInUse);
  2801 	file2.Close();
  2812 	file2.Close();
  2802 	r=TheFs.Delete(filename);
  2813 	r=TheFs.Delete(filename);
  2803 	test(r==KErrNotFound);
  2814 	test_Value(r, r == KErrNotFound);
  2804 
  2815 
  2805 //
  2816 //
  2806 //---------------------------------------------------------------------------------------------------------------------
  2817 //---------------------------------------------------------------------------------------------------------------------
  2807 //! @SYMTestCaseID	PBASE-t_file-0810
  2818 //! @SYMTestCaseID	PBASE-t_file-0810
  2808 //! @SYMTestType	UT
  2819 //! @SYMTestType	UT
  2816 //! @SYMTestExpectedResults
  2827 //! @SYMTestExpectedResults
  2817 //!	1.	The second create should fail with KErrAlreadyExists.
  2828 //!	1.	The second create should fail with KErrAlreadyExists.
  2818 //---------------------------------------------------------------------------------------------------------------------
  2829 //---------------------------------------------------------------------------------------------------------------------
  2819 	test.Next(_L("RFile::Create existing file behaviour"));
  2830 	test.Next(_L("RFile::Create existing file behaviour"));
  2820  	r=file.Create(TheFs,filename,EFileRead|EFileWrite);
  2831  	r=file.Create(TheFs,filename,EFileRead|EFileWrite);
  2821 	test(r==KErrNone);
  2832 	test_KErrNone(r);
  2822 	file.Close();
  2833 	file.Close();
  2823  	r=file.Create(TheFs,filename,EFileRead|EFileWrite|EDeleteOnClose);
  2834  	r=file.Create(TheFs,filename,EFileRead|EFileWrite|EDeleteOnClose);
  2824 	test(r==KErrAlreadyExists);
  2835 	test_Value(r, r == KErrAlreadyExists);
  2825 
  2836 
  2826 //
  2837 //
  2827 //---------------------------------------------------------------------------------------------------------------------
  2838 //---------------------------------------------------------------------------------------------------------------------
  2828 //! @SYMTestCaseID	PBASE-t_file-0811
  2839 //! @SYMTestCaseID	PBASE-t_file-0811
  2829 //! @SYMTestType	UT
  2840 //! @SYMTestType	UT
  2836 //! @SYMTestExpectedResults
  2847 //! @SYMTestExpectedResults
  2837 //!	1.	The open should fail with KErrArgument.
  2848 //!	1.	The open should fail with KErrArgument.
  2838 //---------------------------------------------------------------------------------------------------------------------
  2849 //---------------------------------------------------------------------------------------------------------------------
  2839 	test.Next(_L("RFile::Open EDeleteOnClose flag validation"));
  2850 	test.Next(_L("RFile::Open EDeleteOnClose flag validation"));
  2840 	r=file.Open(TheFs,filename,EFileRead|EFileWrite|EDeleteOnClose);
  2851 	r=file.Open(TheFs,filename,EFileRead|EFileWrite|EDeleteOnClose);
  2841 	test(r==KErrArgument);
  2852 	test_Value(r, r == KErrArgument);
  2842 	r=TheFs.Delete(filename);
  2853 	r=TheFs.Delete(filename);
  2843 	test(r==KErrNone);
  2854 	test_KErrNone(r);
  2844 
  2855 
  2845 	gSleepThread.Close();
  2856 	gSleepThread.Close();
  2846 	test.End();
  2857 	test.End();
  2847 	}
  2858 	}
  2848 
  2859 
  2867     TEntry  entry;
  2878     TEntry  entry;
  2868     TheFs.Delete(KFile);
  2879     TheFs.Delete(KFile);
  2869 
  2880 
  2870     //-- 1. create test file
  2881     //-- 1. create test file
  2871     nRes = CreateEmptyFile(TheFs, KFile, 33);
  2882     nRes = CreateEmptyFile(TheFs, KFile, 33);
  2872     test(nRes == KErrNone);
  2883     test_KErrNone(nRes);
  2873 
  2884 
  2874     //-- 2. open it for write
  2885     //-- 2. open it for write
  2875     RFile file;
  2886     RFile file;
  2876     nRes = file.Open(TheFs, KFile, EFileWrite);
  2887     nRes = file.Open(TheFs, KFile, EFileWrite);
  2877     test(nRes == KErrNone);
  2888     test_KErrNone(nRes);
  2878 
  2889 
  2879     //-- 3. write a couple of bytes there. This must cause 'Archive' attribute set
  2890     //-- 3. write a couple of bytes there. This must cause 'Archive' attribute set
  2880     nRes = file.Write(0, _L8("a"));
  2891     nRes = file.Write(0, _L8("a"));
  2881     test(nRes == KErrNone);
  2892     test_KErrNone(nRes);
  2882     nRes = file.Write(10, _L8("b"));
  2893     nRes = file.Write(10, _L8("b"));
  2883     test(nRes == KErrNone);
  2894     test_KErrNone(nRes);
  2884 
  2895 
  2885     nRes = TheFs.Entry(KFile, entry);
  2896     nRes = TheFs.Entry(KFile, entry);
  2886     test(nRes == KErrNone);
  2897     test_KErrNone(nRes);
  2887 
  2898 
  2888     test(entry.IsArchive());  //-- 'A' attribute must be set.
  2899     test(entry.IsArchive());  //-- 'A' attribute must be set.
  2889 
  2900 
  2890     //-- the file cache (if present) is dirty now. Dirty data timer starts to tick.
  2901     //-- the file cache (if present) is dirty now. Dirty data timer starts to tick.
  2891     //-- 4. set new file attributes (w/o 'A') and creation time
  2902     //-- 4. set new file attributes (w/o 'A') and creation time
  2892     const TUint newAtt = KEntryAttSystem ;
  2903     const TUint newAtt = KEntryAttSystem ;
  2893     nRes = file.SetAtt(newAtt, ~newAtt & KEntryAttMaskSupported);
  2904     nRes = file.SetAtt(newAtt, ~newAtt & KEntryAttMaskSupported);
  2894     test(nRes == KErrNone);
  2905     test_KErrNone(nRes);
  2895 
  2906 
  2896     TTime newTime;
  2907     TTime newTime;
  2897     nRes = newTime.Set(_L("19970310:101809.000000"));
  2908     nRes = newTime.Set(_L("19970310:101809.000000"));
  2898     test(nRes == KErrNone);
  2909     test_KErrNone(nRes);
  2899     nRes = file.SetModified(newTime);
  2910     nRes = file.SetModified(newTime);
  2900     test(nRes == KErrNone);
  2911     test_KErrNone(nRes);
  2901 
  2912 
  2902     //-- 5. wait 5 seconds. file server shall flush dirty data during this period.
  2913     //-- 5. wait 5 seconds. file server shall flush dirty data during this period.
  2903     User::After(5*K1Sec);
  2914     User::After(5*K1Sec);
  2904 
  2915 
  2905     //-- 6. check that attributes haven't chanded because of flush
  2916     //-- 6. check that attributes haven't chanded because of flush
  2906     nRes = file.Flush(); //-- this will flush attributes to the media
  2917     nRes = file.Flush(); //-- this will flush attributes to the media
  2907     test(nRes == KErrNone);
  2918     test_KErrNone(nRes);
  2908 
  2919 
  2909     nRes = TheFs.Entry(KFile, entry);
  2920     nRes = TheFs.Entry(KFile, entry);
  2910     test(nRes == KErrNone);
  2921     test_KErrNone(nRes);
  2911 
  2922 
  2912     test(entry.iAtt == newAtt);
  2923     test(entry.iAtt == newAtt);
  2913     test(entry.iModified.DateTime().Year() == 1997);
  2924     test(entry.iModified.DateTime().Year() == 1997);
  2914     test(entry.iModified.DateTime().Month() == 3);
  2925     test(entry.iModified.DateTime().Month() == 3);
  2915     test(entry.iModified.DateTime().Day() == 10);
  2926     test(entry.iModified.DateTime().Day() == 10);
  2916 
  2927 
  2917     //-- 7. write some data and ensure that 'A' attribute is set now and 'modified' time updated
  2928     //-- 7. write some data and ensure that 'A' attribute is set now and 'modified' time updated
  2918     nRes = file.Write(12, _L8("c"));
  2929     nRes = file.Write(12, _L8("c"));
  2919     test(nRes == KErrNone);
  2930     test_KErrNone(nRes);
  2920 
  2931 
  2921     file.Close(); //-- this will flush attributes to the media
  2932     file.Close(); //-- this will flush attributes to the media
  2922 
  2933 
  2923     nRes = TheFs.Entry(KFile, entry);
  2934     nRes = TheFs.Entry(KFile, entry);
  2924     test(nRes == KErrNone);
  2935     test_KErrNone(nRes);
  2925     test(entry.iAtt == (newAtt | KEntryAttArchive));
  2936     test(entry.iAtt == (newAtt | KEntryAttArchive));
  2926     test(entry.iModified.DateTime().Year() != 1997);
  2937     test(entry.iModified.DateTime().Year() != 1997);
  2927 
  2938 
  2928 
  2939 
  2929 
  2940 
  2935 */
  2946 */
  2936 void TestMaxFileSize()
  2947 void TestMaxFileSize()
  2937 {
  2948 {
  2938     test.Next(_L("test maximal file size on FAT32\n"));
  2949     test.Next(_L("test maximal file size on FAT32\n"));
  2939 
  2950 
  2940 #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
       
  2941 
       
  2942     if(!Is_Fat32(TheFs, gDriveNum))
  2951     if(!Is_Fat32(TheFs, gDriveNum))
  2943     {
  2952     {
  2944         test.Printf(_L("This test requires FAT32! skipping.\n"));
  2953         test.Printf(_L("This test requires FAT32! skipping.\n"));
  2945         return;
  2954         return;
  2946     }
  2955     }
  2948     TInt nRes;
  2957     TInt nRes;
  2949 
  2958 
  2950     //-- check disk space, it shall be > 4G
  2959     //-- check disk space, it shall be > 4G
  2951     TVolumeInfo volInfo;
  2960     TVolumeInfo volInfo;
  2952     nRes = TheFs.Volume(volInfo, gDriveNum);
  2961     nRes = TheFs.Volume(volInfo, gDriveNum);
  2953     test(nRes == KErrNone);
  2962     test_KErrNone(nRes);
  2954 
  2963 
  2955     const TUint32 KMaxFAT32FileSize = 0xFFFFFFFF; // 4GB-1
  2964     const TUint32 KMaxFAT32FileSize = 0xFFFFFFFF; // 4GB-1
  2956 
  2965 
  2957     if(volInfo.iFree <= KMaxFAT32FileSize)
  2966     if(volInfo.iFree <= KMaxFAT32FileSize)
  2958     {
  2967     {
  2966 
  2975 
  2967     //-- 1. create 4GB-1 file
  2976     //-- 1. create 4GB-1 file
  2968     //-- this file has enabled write caching by default
  2977     //-- this file has enabled write caching by default
  2969     test.Printf(_L("creating maximal length file, size = 0x%x\n"),KMaxFAT32FileSize);
  2978     test.Printf(_L("creating maximal length file, size = 0x%x\n"),KMaxFAT32FileSize);
  2970     nRes = file64.Replace(TheFs, KFileName, EFileWrite);
  2979     nRes = file64.Replace(TheFs, KFileName, EFileWrite);
  2971     test(nRes == KErrNone);
  2980     test_KErrNone(nRes);
  2972 
  2981 
  2973     const TInt64 fileSize = KMaxFAT32FileSize;
  2982     const TInt64 fileSize = KMaxFAT32FileSize;
  2974 
  2983 
  2975     nRes = file64.SetSize(fileSize);
  2984     nRes = file64.SetSize(fileSize);
  2976     test(nRes == KErrNone);
  2985     test_KErrNone(nRes);
  2977 
  2986 
  2978     test.Printf(_L("seeking to the file end...\n"));
  2987     test.Printf(_L("seeking to the file end...\n"));
  2979     TInt64 filePos = 0;
  2988     TInt64 filePos = 0;
  2980     nRes = file64.Seek(ESeekEnd, filePos);
  2989     nRes = file64.Seek(ESeekEnd, filePos);
  2981     test(nRes == KErrNone);
  2990     test_KErrNone(nRes);
  2982 
  2991 
  2983 
  2992 
  2984     test.Printf(_L("test writing to the last bytes of the file (rel pos addressing) \n"));
  2993     test.Printf(_L("test writing to the last bytes of the file (rel pos addressing) \n"));
  2985 
  2994 
  2986     //-- 1. writing using relative position
  2995     //-- 1. writing using relative position
  2987     filePos = -1;
  2996     filePos = -1;
  2988     nRes = file64.Seek(ESeekEnd, filePos);
  2997     nRes = file64.Seek(ESeekEnd, filePos);
  2989     test(nRes == KErrNone);
  2998     test_KErrNone(nRes);
  2990     test(filePos == fileSize-1);
  2999     test(filePos == fileSize-1);
  2991 
  3000 
  2992     nRes = file64.Write(_L8("z")); //-- write 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file
  3001     nRes = file64.Write(_L8("z")); //-- write 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file
  2993     test(nRes == KErrNone);
  3002     test_KErrNone(nRes);
  2994 
  3003 
  2995     nRes = file64.Write(_L8("x")); //-- write 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size, this shall fail
  3004     nRes = file64.Write(_L8("x")); //-- write 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size, this shall fail
  2996     test(nRes == KErrNotSupported);
  3005     test_Value(nRes, nRes == KErrNotSupported);
  2997 
  3006 
  2998     nRes = file64.Flush();
  3007     nRes = file64.Flush();
  2999     test(nRes == KErrNone);
  3008     test_KErrNone(nRes);
  3000 
  3009 
  3001     //-- 1.1 check the result by reading data using rel. pos
  3010     //-- 1.1 check the result by reading data using rel. pos
  3002     filePos = -1;
  3011     filePos = -1;
  3003     nRes = file64.Seek(ESeekEnd, filePos);
  3012     nRes = file64.Seek(ESeekEnd, filePos);
  3004     test(nRes == KErrNone);
  3013     test_KErrNone(nRes);
  3005     test(filePos == fileSize-1);
  3014     test(filePos == fileSize-1);
  3006 
  3015 
  3007     test.Printf(_L("reading 1 byte at pos: 0x%x\n"), filePos);
  3016     test.Printf(_L("reading 1 byte at pos: 0x%x\n"), filePos);
  3008     nRes = file64.Read(buf, 1); //-- read 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file
  3017     nRes = file64.Read(buf, 1); //-- read 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file
  3009     test(nRes == KErrNone);
  3018     test_KErrNone(nRes);
  3010     test(buf.Length() == 1 && buf[0]=='z');
  3019     test(buf.Length() == 1 && buf[0]=='z');
  3011 
  3020 
  3012     nRes = file64.Read(buf, 1); //-- read 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size, this shall fail
  3021     nRes = file64.Read(buf, 1); //-- read 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size, this shall fail
  3013     test(nRes == KErrNone);
  3022     test_KErrNone(nRes);
  3014     test(buf.Length() == 0);
  3023     test(buf.Length() == 0);
  3015 
  3024 
  3016     file64.Close();
  3025     file64.Close();
  3017 
  3026 
  3018     test.Printf(_L("test writing to the last bytes of the file (absolute pos addressing) \n"));
  3027     test.Printf(_L("test writing to the last bytes of the file (absolute pos addressing) \n"));
  3019     //-- 2. writing using absolute position
  3028     //-- 2. writing using absolute position
  3020     nRes = file64.Open(TheFs, KFileName, EFileWrite);
  3029     nRes = file64.Open(TheFs, KFileName, EFileWrite);
  3021     test(nRes == KErrNone);
  3030     test_KErrNone(nRes);
  3022 
  3031 
  3023     filePos = fileSize-1;
  3032     filePos = fileSize-1;
  3024 
  3033 
  3025     nRes = file64.Write(filePos-2, _L8("0"), 1); //-- write 1 byte a pos 0xFFFFFFFC
  3034     nRes = file64.Write(filePos-2, _L8("0"), 1); //-- write 1 byte a pos 0xFFFFFFFC
  3026     test(nRes == KErrNone);
  3035     test_KErrNone(nRes);
  3027 
  3036 
  3028     nRes = file64.Write(filePos, _L8("a"), 1);   //-- write 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file
  3037     nRes = file64.Write(filePos, _L8("a"), 1);   //-- write 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file
  3029     test(nRes == KErrNone);
  3038     test_KErrNone(nRes);
  3030 
  3039 
  3031     nRes = file64.Write(filePos+1, _L8("b"), 1); //-- write 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size, this shall fail
  3040     nRes = file64.Write(filePos+1, _L8("b"), 1); //-- write 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size, this shall fail
  3032     test(nRes == KErrNotSupported);
  3041     test_Value(nRes, nRes == KErrNotSupported);
  3033 
  3042 
  3034     nRes = file64.Flush();
  3043     nRes = file64.Flush();
  3035     test(nRes == KErrNone);
  3044     test_KErrNone(nRes);
  3036 
  3045 
  3037     //-- 1.1 check the result by reading data absolute rel. position
  3046     //-- 1.1 check the result by reading data absolute rel. position
  3038 
  3047 
  3039     nRes = file64.Read(filePos-2, buf, 1); //-- read 1 byte a pos 0xFFFFFFFD
  3048     nRes = file64.Read(filePos-2, buf, 1); //-- read 1 byte a pos 0xFFFFFFFD
  3040     test(nRes == KErrNone);
  3049     test_KErrNone(nRes);
  3041     test(buf.Length() == 1 && buf[0]=='0');
  3050     test(buf.Length() == 1 && buf[0]=='0');
  3042 
  3051 
  3043     nRes = file64.Read(filePos, buf, 1);   //-- read 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file
  3052     nRes = file64.Read(filePos, buf, 1);   //-- read 1 byte a pos 0xFFFFFFFE, this is the last allowed position of the FAT32 file
  3044     test(nRes == KErrNone);
  3053     test_KErrNone(nRes);
  3045     test(buf.Length() == 1 && buf[0]=='a');
  3054     test(buf.Length() == 1 && buf[0]=='a');
  3046 
  3055 
  3047     nRes = file64.Read(filePos+1, buf, 1);  //-- read 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size
  3056     nRes = file64.Read(filePos+1, buf, 1);  //-- read 1 byte a pos 0xFFFFFFFF, beyond the max. allowed file size
  3048     test(nRes == KErrNone);
  3057     test_KErrNone(nRes);
  3049     test(buf.Length() == 0);
  3058     test(buf.Length() == 0);
  3050 
  3059 
  3051     nRes = file64.Read(filePos+2, buf, 1); //buf.Len must be 0
  3060     nRes = file64.Read(filePos+2, buf, 1); //buf.Len must be 0
  3052     test(nRes == KErrNone);
  3061     test_KErrNone(nRes);
  3053     test(buf.Length() == 0);
  3062     test(buf.Length() == 0);
  3054 
  3063 
  3055     file64.Close();
  3064     file64.Close();
  3056 
  3065 
  3057     test.Printf(_L("deleting the huge file.\n"));
  3066     test.Printf(_L("deleting the huge file.\n"));
  3058     nRes = TheFs.Delete(KFileName);
  3067     nRes = TheFs.Delete(KFileName);
  3059     test(nRes == KErrNone);
  3068     test_KErrNone(nRes);
  3060 
       
  3061 #else
       
  3062 
  3069 
  3063     test.Printf(_L("RFile64 is not supported! Skipping.\n"));
  3070     test.Printf(_L("RFile64 is not supported! Skipping.\n"));
  3064 
  3071 
  3065 #endif //SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
       
  3066 
  3072 
  3067 }
  3073 }
  3068 
  3074 
  3069 
  3075 
  3070 //--------------------------------------------------------------
  3076 //--------------------------------------------------------------
  3074 
  3080 
  3075     //-- set up console output
  3081     //-- set up console output
  3076     F32_Test_Utils::SetConsole(test.Console());
  3082     F32_Test_Utils::SetConsole(test.Console());
  3077 
  3083 
  3078     TInt nRes=TheFs.CharToDrive(gDriveToTest, gDriveNum);
  3084     TInt nRes=TheFs.CharToDrive(gDriveToTest, gDriveNum);
  3079     test(nRes==KErrNone);
  3085     test_KErrNone(nRes);
  3080     
  3086     
  3081     PrintDrvInfo(TheFs, gDriveNum);
  3087     PrintDrvInfo(TheFs, gDriveNum);
  3082 
  3088 
  3083     //-- FAT Supports short file names
  3089     //-- FAT Supports short file names
  3084     if(Is_Fat(TheFs, gDriveNum))
  3090     if(Is_Fat(TheFs, gDriveNum))
  3085         gShortFileNamesSupported = ETrue;
  3091         gShortFileNamesSupported = ETrue;
  3086     
  3092     
  3087     if(Is_Win32(TheFs, gDriveNum)) 
  3093     if(Is_Win32(TheFs, gDriveNum)) 
  3088     {//-- find out if this is NTFS and if it supports short names (this feature can be switched OFF)
  3094     	{//-- find out if this is NTFS and if it supports short names (this feature can be switched OFF)
  3089         
  3095         
  3090         _LIT(KLongFN, "\\this is a long file name");
  3096         _LIT(KLongFN, "\\this is a long file name");
  3091         nRes = CreateEmptyFile(TheFs, KLongFN, 10);   
  3097         nRes = CreateEmptyFile(TheFs, KLongFN, 10);   
  3092         test(nRes==KErrNone);
  3098         test_KErrNone(nRes);
  3093 
  3099 
  3094 	    TBuf<12> shortName;
  3100 	    TBuf<12> shortName;
  3095 	    nRes = TheFs.GetShortName(KLongFN, shortName);
  3101 	    nRes = TheFs.GetShortName(KLongFN, shortName);
  3096 	    gShortFileNamesSupported = (nRes == KErrNone);
  3102 	    gShortFileNamesSupported = (nRes == KErrNone);
  3097         
  3103         
  3098         nRes = TheFs.Delete(KLongFN);
  3104         nRes = TheFs.Delete(KLongFN);
  3099         test(nRes==KErrNone);
  3105         test_KErrNone(nRes);
  3100 
  3106 
  3101         DeleteTestDirectory();
  3107         DeleteTestDirectory();
  3102     }
  3108     	}
  3103     else
  3109     else
  3104     {
  3110     	{
  3105         nRes = FormatDrive(TheFs, gDriveNum, ETrue);
  3111         nRes = FormatDrive(TheFs, gDriveNum, ETrue);
  3106         test(nRes==KErrNone);
  3112         test_KErrNone(nRes);
  3107     }
  3113     	}
  3108 
  3114 
  3109 	CreateTestDirectory(_L("\\F32-TST\\TFILE\\"));
  3115 	CreateTestDirectory(_L("\\F32-TST\\TFILE\\"));
  3110 
  3116 
  3111 	testFileRename();
  3117 	testFileRename();
  3112 	testSetSize();
  3118 	testSetSize();