0
+ − 1
// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+ − 2
// All rights reserved.
+ − 3
// This component and the accompanying materials are made available
+ − 4
// under the terms of the License "Eclipse Public License v1.0"
+ − 5
// which accompanies this distribution, and is available
+ − 6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ − 7
//
+ − 8
// Initial Contributors:
+ − 9
// Nokia Corporation - initial contribution.
+ − 10
//
+ − 11
// Contributors:
+ − 12
//
+ − 13
// Description:
+ − 14
//
+ − 15
+ − 16
#include <f32file.h>
+ − 17
#include <e32test.h>
+ − 18
#include "t_server.h"
+ − 19
#include "t_chlffs.h"
+ − 20
+ − 21
GLDEF_D RTest test(_L("T_NMBS"));
+ − 22
+ − 23
LOCAL_C void testMkDirRmDir()
+ − 24
//
+ − 25
// Test the MkDir functions.
+ − 26
//
+ − 27
{
+ − 28
+ − 29
test.Next(_L("Test MkDir"));
+ − 30
+ − 31
TInt r=TheFs.RmDir(_L("\\F32-TST\\TNMBS\\"));
+ − 32
test(r==KErrNone);
+ − 33
r=TheFs.MkDir(_L("\\F32-TST\\TNMBS\\TEST\\"));
+ − 34
test(r==KErrPathNotFound);
+ − 35
r=TheFs.MkDir(_L("\\F32-TST\\TNMBS\\"));
+ − 36
test(r==KErrNone);
+ − 37
r=TheFs.MkDir(_L("\\F32-TST\\TNMBS\\TEST\\"));
+ − 38
test(r==KErrNone);
+ − 39
+ − 40
test.Next(_L("Test RmDir 1.0"));
+ − 41
r=TheFs.RmDir(_L("\\F32-TST\\TNMBS\\TEST\\"));
+ − 42
test(r==KErrNone);
+ − 43
r=TheFs.RmDir(_L("\\F32-TST\\TNMBS\\"));
+ − 44
test(r==KErrNone);
+ − 45
+ − 46
test.Next(_L("Test MkDirAll 1.0"));
+ − 47
r=TheFs.MkDirAll(_L("\\F32-TST\\TNMBS\\TEST\\"));
+ − 48
test(r==KErrNone);
+ − 49
+ − 50
test.Next(_L("Test RmDir 2.0"));
+ − 51
r=TheFs.RmDir(_L("\\F32-TST\\TNMBS\\TEST\\"));
+ − 52
test(r==KErrNone);
+ − 53
r=TheFs.RmDir(_L("\\F32-TST\\TNMBS\\"));
+ − 54
test(r==KErrNone);
+ − 55
+ − 56
test.Next(_L("Test MkDirAll 2.0"));
+ − 57
r=TheFs.MkDirAll(_L("\\F32-TST\\TNMBS\\"));
+ − 58
test(r==KErrNone);
+ − 59
r=TheFs.MkDirAll(_L("\\F32-TST\\TNMBS\\TEST\\"));
+ − 60
test(r==KErrNone);
+ − 61
+ − 62
test.Next(_L("Test RmDir 3.0"));
+ − 63
r=TheFs.RmDir(_L("\\F32-TST\\TNMBS\\TEST\\"));
+ − 64
test(r==KErrNone);
+ − 65
r=TheFs.RmDir(_L("\\F32-TST\\TNMBS\\"));
+ − 66
test(r==KErrNone);
+ − 67
+ − 68
test.Next(_L("Test mkdir and rmdir on root"));
+ − 69
r=TheFs.RmDir(_L("\\File.TXT"));
+ − 70
test(r==KErrInUse);
+ − 71
r=TheFs.MkDir(_L("\\asdf.ere"));
+ − 72
test(r==KErrAlreadyExists);
+ − 73
r=TheFs.MkDirAll(_L("\\asdf.ere"));
+ − 74
test(r==KErrAlreadyExists);
+ − 75
+ − 76
test.Next(_L("Test error code return values"));
+ − 77
r=TheFs.MkDir(_L("\\F32-TST\\\\ABCDEF\\"));
+ − 78
+ − 79
test(r==KErrBadName);
+ − 80
+ − 81
test.Next(_L("Test MkDir with trailing spaces"));
+ − 82
r=TheFs.MkDir(_L("\\F32-TST\\TESTMKDIR \\"));
+ − 83
test(r==KErrNone);
+ − 84
r=TheFs.RmDir(_L("\\F32-TST\\TESTMKDIR\\"));
+ − 85
test(r==KErrNone);
+ − 86
r=TheFs.MkDirAll(_L("\\F32-TST\\TESTMKDIR \\NOTCREATED\\NORTHIS \\"));
+ − 87
test(r==KErrPathNotFound);
+ − 88
r=TheFs.RmDir(_L("\\F32-TST\\TESTMKDIR\\NOTCREATED\\"));
+ − 89
test(r==KErrNotFound);
+ − 90
r=TheFs.RmDir(_L("\\F32-TST\\TESTMKDIR\\"));
+ − 91
test(r==KErrNone);
+ − 92
+ − 93
r=TheFs.MkDirAll(_L("\\F32-TST\\TNMBS\\"));
+ − 94
test(r==KErrNone);
+ − 95
}
+ − 96
+ − 97
LOCAL_C void testRename()
+ − 98
//
+ − 99
// Test the rename function.
+ − 100
//
+ − 101
{
+ − 102
+ − 103
test.Next(_L("Test rename directories"));
+ − 104
TInt r=TheFs.MkDirAll(_L("\\F32-TST\\ABCDEF\\GPQ\\"));
+ − 105
test(r==KErrNone || r==KErrAlreadyExists);
+ − 106
r=TheFs.Rename(_L("\\F32-TST\\ABCDEF\\"),_L("\\F32-TST\\ABCDEF\\LMED"));
+ − 107
test(r==KErrInUse);
+ − 108
r=TheFs.Rename(_L("\\F32-TST\\ABCDEF\\GPQ"),_L("\\F32-TST\\LMED"));
+ − 109
test(r==KErrNone);
+ − 110
r=TheFs.RmDir(_L("\\F32-TST\\LMED\\"));
+ − 111
test(r==KErrNone);
+ − 112
+ − 113
MakeDir(_L("\\F32-TST\\ABC\\"));
+ − 114
MakeFile(_L("\\F32-TST\\ABCDEF\\GPQ\\asdf.txt"));
+ − 115
MakeFile(_L("\\F32-TST\\asdf.txt"));
+ − 116
+ − 117
test.Next(_L("Test rename directory while subfile is open"));
+ − 118
RFile f;
+ − 119
r=f.Open(TheFs,_L("\\F32-TST\\ABCDEF\\GPQ\\asdf.txt"),EFileRead);
+ − 120
test(r==KErrNone);
+ − 121
r=TheFs.Rename(_L("\\F32-TST\\ABCDEF"),_L("\\F32-TST\\xxxyyy"));
+ − 122
test(r==KErrInUse);
+ − 123
r=TheFs.Rename(_L("\\F32-TST\\ABCDEF"),_L("\\F32-TST\\xxxyyy"));
+ − 124
test(r==KErrInUse);
+ − 125
r=TheFs.Rename(_L("\\F32-TST\\ABC"),_L("\\F32-TST\\XXX"));
+ − 126
test(r==KErrNone);
+ − 127
f.Close();
+ − 128
r=TheFs.Rename(_L("\\F32-TST\\ABCDEF"),_L("\\F32-TST\\xxxyyy"));
+ − 129
test(r==KErrNone);
+ − 130
r=TheFs.Rename(_L("\\F32-TST\\XXX"),_L("\\F32-TST\\ABC"));
+ − 131
test(r==KErrNone);
+ − 132
r=TheFs.Rename(_L("\\"),_L("\\BLARG"));
+ − 133
test(r==KErrBadName);
+ − 134
+ − 135
r=f.Open(TheFs,_L("\\F32-TST\\asdf.txt"),EFileRead);
+ − 136
test(r==KErrNone);
+ − 137
r=TheFs.Rename(_L("\\F32-TST\\xxxyyy"),_L("\\F32-TST\\ABCDEF"));
+ − 138
test(r==KErrNone);
+ − 139
r=TheFs.Rename(_L("\\F32-TST\\"),_L("\\ABCDEF"));
+ − 140
test(r==KErrInUse);
+ − 141
f.Close();
+ − 142
+ − 143
r=TheFs.Delete(_L("\\F32-TST\\ABCDEF\\GPQ\\asdf.txt"));
+ − 144
test(r==KErrNone);
+ − 145
r=TheFs.Delete(_L("\\F32-TST\\asdf.txt"));
+ − 146
test(r==KErrNone);
+ − 147
r=TheFs.RmDir(_L("\\F32-TST\\ABCDEF\\GPQ\\"));
+ − 148
test(r==KErrNone);
+ − 149
r=TheFs.RmDir(_L("\\F32-TST\\ABC\\"));
+ − 150
test(r==KErrNone);
+ − 151
+ − 152
r=TheFs.Rename(_L("\\TST-E32\\123456"),_L("\\F32-TST\\ABCDEF"));
+ − 153
test(r==KErrPathNotFound);
+ − 154
r=TheFs.Rename(_L("\\F32-TST\\123456"),_L("\\F32-TST\\ABCDEF"));
+ − 155
test(r==KErrNotFound);
+ − 156
r=TheFs.Rename(_L("\\TST-E32\\123456"),_L("\\F32-TST\\FEDCBA"));
+ − 157
test(r==KErrPathNotFound);
+ − 158
r=TheFs.Rename(_L("\\F32-TST\\FEDCBA"),_L("\\TST-E32\\123456"));
+ − 159
test(r==KErrNotFound);
+ − 160
r=TheFs.Rename(_L("\\F32-TST\\ABCDEF"),_L("\\F32-TST\\123456"));
+ − 161
test(r==KErrNone);
+ − 162
r=TheFs.Rename(_L("\\F32-TST\\123456"),_L("\\F32-TST\\XYZABC"));
+ − 163
test(r==KErrNone);
+ − 164
+ − 165
test.Next(_L("Test rename files"));
+ − 166
r=f.Create(TheFs,_L("\\F32-TST\\XYZABC\\OLDNAME.TXT"),EFileRead|EFileWrite);
+ − 167
test(r==KErrNone);
+ − 168
f.Close();
+ − 169
r=TheFs.Rename(_L("\\F32-TST\\XYZABC\\OLDNAME.TXT"),_L("\\F32-TST\\XYZABC\\NEWNAME.TXT"));
+ − 170
test(r==KErrNone);
+ − 171
r=TheFs.Delete(_L("\\F32-TST\\XYZABC\\NEWNAME.TXT"));
+ − 172
test(r==KErrNone);
+ − 173
+ − 174
test.Next(_L("Test rename checks for duplicate entries"));
+ − 175
r=TheFs.MkDirAll(_L("\\F32-TST\\ABCDEF\\"));
+ − 176
test(r==KErrNone);
+ − 177
r=TheFs.Rename(_L("\\F32-TST\\ABCDEF"),_L("\\F32-TST\\XYZABC"));
+ − 178
test(r==KErrAlreadyExists);
+ − 179
r=f.Create(TheFs,_L("\\F32-TST\\XYZABC\\OLDNAME.TXT"),EFileRead|EFileWrite);
+ − 180
test(r==KErrNone);
+ − 181
f.Close();
+ − 182
r=f.Create(TheFs,_L("\\F32-TST\\XYZABC\\NEWNAME.TXT"),EFileRead|EFileWrite);
+ − 183
test(r==KErrNone);
+ − 184
f.Close();
+ − 185
r=TheFs.Rename(_L("\\F32-TST\\XYZABC\\OLDNAME.TXT"),_L("\\F32-TST\\XYZABC\\NEWNAME.TXT"));
+ − 186
test(r==KErrAlreadyExists);
+ − 187
+ − 188
test.Next(_L("Test rename across directories"));
+ − 189
r=TheFs.Rename(_L("\\F32-TST\\XYZABC\\NEWNAME.TXT"),_L("\\F32-TST\\ABCDEF\\OLDNAME.TXT"));
+ − 190
test(r==KErrNone);
+ − 191
r=TheFs.Rename(_L("\\F32-TST\\XYZABC\\NEWNAME.TXT"),_L("\\F32-TST\\ABCDEF\\OLDNAME.TXT"));
+ − 192
test(r==KErrNotFound);
+ − 193
r=TheFs.Rename(_L("\\F32-TST\\XYZABC\\NEWNAME.TXT"),_L("\\F32-TST\\ABCDEF\\DIFNAME.TXT"));
+ − 194
test(r==KErrNotFound);
+ − 195
r=TheFs.Rename(_L("\\F32-TST\\XYZABC"),_L("\\F32-TST\\ABCDEF\\XYZABC"));
+ − 196
test(r==KErrNone);
+ − 197
r=TheFs.Rename(_L("\\F32-TST\\ABCDEF\\XYZABC\\OLDNAME.TXT"),_L("\\F32-TST\\ABCDEF\\NEWNAME.TXT"));
+ − 198
test(r==KErrNone);
+ − 199
r=TheFs.Rename(_L("\\F32-TST\\ABCDEF\\NewNAME.TXT"),_L("\\F32-TST\\ABCDEF\\XYZABC\\OLDNAME.TXT"));
+ − 200
test(r==KErrNone);
+ − 201
test.Next(_L("Test rename across drive error code"));
+ − 202
r=TheFs.Rename(_L("Z:\\BLEG"),_L("C:\\FRUM"));
+ − 203
test(r==KErrArgument);
+ − 204
test.Next(_L("Test rename to identical names"));
+ − 205
r=TheFs.Rename(_L("\\F32-TST\\ABCDEF\\XYZABC\\OLDNAME.TXT"),_L("\\F32-TST\\ABCDEF\\XYZABC\\OLDNAME.TXT"));
+ − 206
test(r==KErrNone);
+ − 207
CheckFileExists(_L("\\F32-TST\\ABCDEF\\XYZABC\\OLDNAME.TXT"),KErrNone);
+ − 208
r=TheFs.Rename(_L("\\F32-TST\\ABCDEF\\XYZABC\\OLDNAME.TXT"),_L("\\F32-TST\\ABCDEF\\XYZABC\\OLdnAME.TXT"));
+ − 209
test(r==KErrNone);
+ − 210
CheckFileExists(_L("\\F32-TST\\ABCDEF\\XYZABC\\OLDNAME.TXT"),KErrNone,EFalse);
+ − 211
CheckFileExists(_L("\\F32-TST\\ABCDEF\\XYZABC\\OLdnAME.TXT"),KErrNone,ETrue);
+ − 212
+ − 213
r=TheFs.Rename(_L("\\F32-TST\\ABCDEF\\XYZABC\\OLDNAME.TXT"),_L("\\F32-TST\\ABCDEF\\NEWNAME.TXT"));
+ − 214
test(r==KErrNone);
+ − 215
test.Next(_L("Test RmDir"));
+ − 216
r=TheFs.Delete(_L("\\F32-TST\\ABCDEF\\NEWNAME.TXT"));
+ − 217
test(r==KErrNone);
+ − 218
r=TheFs.Delete(_L("\\F32-TST\\ABCDEF\\OLDNAME.TXT"));
+ − 219
test(r==KErrNone);
+ − 220
r=TheFs.RmDir(_L("\\F32-TST\\ABCDEF\\XYZABC\\"));
+ − 221
test(r==KErrNone);
+ − 222
r=TheFs.RmDir(_L("\\F32-TST\\ABCDEF\\"));
+ − 223
test(r==KErrNone);
+ − 224
}
+ − 225
LOCAL_C void TestLongFileName()
+ − 226
{
+ − 227
#ifndef __EPOC32__ //emulator
+ − 228
if (gDriveToTest.GetLowerCase()=='c')
+ − 229
return;//don't perform this test for c: in emulator as emulator uses windows system calls
+ − 230
//windows doesn't create a directory with length more than 244 characters
+ − 231
#endif
+ − 232
+ − 233
test.Next(_L("Test renaming 257 characters directories"));
+ − 234
_LIT(KLongFileName256, "256dir_IncludingBackslash_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
+ − 235
_LIT(KLongFileName257, "257dir_IncludingBackslash_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
+ − 236
TBuf<260> Path;
+ − 237
TBuf<10> baseDir;
+ − 238
+ − 239
baseDir.Format(_L("%c:\\"),(TUint)(gDriveToTest));
+ − 240
Path.Copy(baseDir);
+ − 241
Path.Append(KLongFileName256);
+ − 242
Path.Append(_L("\\"));
+ − 243
+ − 244
TInt result = KErrNone;
+ − 245
//-- 1. create directory in Root which total path length is 256 symbols. result = TheFs.MkDirAll(Path);
+ − 246
result=TheFs.MkDirAll(Path);
+ − 247
test((result==KErrNone)||(result==KErrAlreadyExists));
+ − 248
+ − 249
test.Next(_L("Renaming a 265 char directory to a 257 char directory"));
+ − 250
result=TheFs.SetSessionPath(baseDir);
+ − 251
test(result==KErrNone);
+ − 252
TheFs.SessionPath(baseDir);
+ − 253
test.Printf(_L("Session path was set to: %S"), &baseDir);
+ − 254
+ − 255
//-- 2. try to rename this directory to one with 257 character total path length
+ − 256
test.Printf(_L("Renaming 256-char directory to 257"));
+ − 257
result = KErrNone;
+ − 258
Path.Copy(KLongFileName257);
+ − 259
result = TheFs.Rename(KLongFileName256, Path);
+ − 260
test(result==KErrBadName);
+ − 261
//-- 3. try to rename this directory to one with 258 character total path length
+ − 262
+ − 263
Path.Append(_L("z"));
+ − 264
result = TheFs.Rename(KLongFileName256, Path);
+ − 265
test(result==KErrBadName);
+ − 266
+ − 267
}
+ − 268
LOCAL_C void testRenameCase()
+ − 269
//
+ − 270
// Test renaming "AGENDA" to "agenda"
+ − 271
//
+ − 272
{
+ − 273
+ − 274
test.Next(_L("Test rename case"));
+ − 275
MakeDir(_L("\\F32-TST\\RENAMECASE\\"));
+ − 276
TInt r=TheFs.SetSessionPath(_L("\\F32-TST\\RENAMECASE\\"));
+ − 277
test(r==KErrNone);
+ − 278
+ − 279
MakeFile(_L("file1.txt"));
+ − 280
MakeFile(_L("FILE2.TXT"));
+ − 281
MakeFile(_L("AGENDA"));
+ − 282
MakeFile(_L("agenda.one"));
+ − 283
+ − 284
TEntry entry;
+ − 285
r=TheFs.Rename(_L("FILE1.TXT"),_L("FILE1.TXT"));
+ − 286
test(r==KErrNone);
+ − 287
r=TheFs.Entry(_L("File1.txt"),entry);
+ − 288
test(r==KErrNone);
+ − 289
test(entry.iName==_L("FILE1.TXT"));
+ − 290
+ − 291
r=TheFs.Rename(_L("file2.txt"),_L("file2.txt"));
+ − 292
test(r==KErrNone);
+ − 293
r=TheFs.Entry(_L("File2.txt"),entry);
+ − 294
test(r==KErrNone);
+ − 295
test(entry.iName==_L("file2.txt"));
+ − 296
+ − 297
r=TheFs.Rename(_L("agenda."),_L("agenda.two"));
+ − 298
test(r==KErrNone);
+ − 299
r=TheFs.Entry(_L("Agenda.two"),entry);
+ − 300
test(r==KErrNone);
+ − 301
test(entry.iName==_L("agenda.two"));
+ − 302
+ − 303
r=TheFs.Rename(_L("AGENDA.ONE"),_L("AGENDA.ONE"));
+ − 304
test(r==KErrNone);
+ − 305
r=TheFs.Entry(_L("Agenda.one"),entry);
+ − 306
test(r==KErrNone);
+ − 307
test(entry.iName==_L("AGENDA.ONE"));
+ − 308
+ − 309
r=TheFs.Rename(_L("FILE1.TXT"),_L("file1.txt"));
+ − 310
test(r==KErrNone);
+ − 311
r=TheFs.Entry(_L("File1.txt"),entry);
+ − 312
test(r==KErrNone);
+ − 313
test(entry.iName==_L("file1.txt"));
+ − 314
+ − 315
r=TheFs.Rename(_L("file2.txt"),_L("FILE2.TXT"));
+ − 316
test(r==KErrNone);
+ − 317
r=TheFs.Entry(_L("File2.txt"),entry);
+ − 318
test(r==KErrNone);
+ − 319
test(entry.iName==_L("FILE2.TXT"));
+ − 320
+ − 321
r=TheFs.Rename(_L("agenda.two"),_L("AGENDA"));
+ − 322
test(r==KErrNone);
+ − 323
r=TheFs.Entry(_L("Agenda"),entry);
+ − 324
test(r==KErrNone);
+ − 325
test(entry.iName==_L("AGENDA"));
+ − 326
+ − 327
r=TheFs.Rename(_L("AGENDA.ONE"),_L("agenda.one"));
+ − 328
test(r==KErrNone);
+ − 329
r=TheFs.Entry(_L("Agenda.one"),entry);
+ − 330
test(r==KErrNone);
+ − 331
test(entry.iName==_L("agenda.one"));
+ − 332
+ − 333
r=TheFs.Rename(_L("FILE1.TXT"),_L("FILe1.txt"));
+ − 334
test(r==KErrNone);
+ − 335
r=TheFs.Entry(_L("File1.txt"),entry);
+ − 336
test(r==KErrNone);
+ − 337
test(entry.iName==_L("FILe1.txt"));
+ − 338
+ − 339
r=TheFs.Rename(_L("file2.txt"),_L("FILE3.TXT"));
+ − 340
test(r==KErrNone);
+ − 341
r=TheFs.Entry(_L("File3.txt"),entry);
+ − 342
test(r==KErrNone);
+ − 343
test(entry.iName==_L("FILE3.TXT"));
+ − 344
+ − 345
r=TheFs.Rename(_L("agenda."),_L("AGENDA1"));
+ − 346
test(r==KErrNone);
+ − 347
r=TheFs.Entry(_L("Agenda1"),entry);
+ − 348
test(r==KErrNone);
+ − 349
test(entry.iName==_L("AGENDA1"));
+ − 350
+ − 351
r=TheFs.Rename(_L("AGENDA.ONE"),_L("Agenda.One"));
+ − 352
test(r==KErrNone);
+ − 353
r=TheFs.Entry(_L("Agenda.one"),entry);
+ − 354
test(r==KErrNone);
+ − 355
test(entry.iName==_L("Agenda.One"));
+ − 356
+ − 357
r=TheFs.Delete(_L("file1.txt"));
+ − 358
test(r==KErrNone);
+ − 359
r=TheFs.Delete(_L("file3.txt"));
+ − 360
test(r==KErrNone);
+ − 361
r=TheFs.Delete(_L("Agenda1"));
+ − 362
test(r==KErrNone);
+ − 363
r=TheFs.Delete(_L("AGENDA.ONE"));
+ − 364
test(r==KErrNone);
+ − 365
r=TheFs.RmDir(_L("\\F32-TST\\RENAMECASE\\"));
+ − 366
test(r==KErrNone);
+ − 367
r=TheFs.SetSessionPath(gSessionPath);
+ − 368
test(r==KErrNone);
+ − 369
}
+ − 370
+ − 371
LOCAL_C void testReplace()
+ − 372
//
+ − 373
// Test the replace function
+ − 374
//
+ − 375
{
+ − 376
+ − 377
test.Next(_L("Test Replace"));
+ − 378
TInt r=TheFs.MkDirAll(_L("\\F32-TST\\ABCDEF\\"));
+ − 379
test(r==KErrNone);
+ − 380
r=TheFs.Replace(_L("\\TST-E32\\123456"),_L("\\F32-TST\\ABCDEF"));
+ − 381
test(r==KErrAccessDenied); // Do not replace directories
+ − 382
r=TheFs.Replace(_L("\\F32-TST\\123456"),_L("\\F32-TST\\ABCDEF"));
+ − 383
test(r==KErrAccessDenied);
+ − 384
r=TheFs.Replace(_L("\\TST-E32\\123456"),_L("\\F32-TST\\FEDCBA"));
+ − 385
test(r==KErrPathNotFound);
+ − 386
r=TheFs.Replace(_L("\\F32-TST\\ABCDEF"),_L("\\F32-TST\\123456"));
+ − 387
test(r==KErrAccessDenied);
+ − 388
+ − 389
test.Next(_L("Replace a file with itself (8.3 filename)"));
+ − 390
MakeFile(_L("\\F32-TST\\ABCDEF\\TEST1.SPR"));
+ − 391
r=TheFs.Replace(_L("\\F32-TST\\ABCDEF\\TEST1.SPR"),_L("\\F32-TST\\ABCDEF\\TEST1.SPR"));
+ − 392
test(r==KErrNone);
+ − 393
CheckFileExists(_L("\\F32-TST\\ABCDEF\\TEST1.SPR"),KErrNone);
+ − 394
r=TheFs.Replace(_L("\\F32-TST\\ABCDEF\\TEST1.SPR"),_L("\\F32-TST\\ABCDEF\\test1.spr"));
+ − 395
test(r==KErrNone);
+ − 396
CheckFileExists(_L("\\F32-TST\\ABCDEF\\TEST1.SPR"),KErrNone,ETrue); // Replace does not rename existing file
+ − 397
CheckFileExists(_L("\\F32-TST\\ABCDEF\\test1.spr"),KErrNone,EFalse);
+ − 398
+ − 399
test.Next(_L("Replace a file with itself (vfat filename)"));
+ − 400
MakeFile(_L("\\F32-TST\\ABCDEF\\TEST_SHEET(01).SPR"));
+ − 401
r=TheFs.Replace(_L("\\F32-TST\\ABCDEF\\TEST_SHEET(01).SPR"),_L("\\F32-TST\\ABCDEF\\TEST_SHEET(01).SPR"));
+ − 402
test(r==KErrNone);
+ − 403
CheckFileExists(_L("\\F32-TST\\ABCDEF\\TEST_SHEET(01).SPR"),KErrNone);
+ − 404
r=TheFs.Replace(_L("\\F32-TST\\ABCDEF\\TEST_SHEET(01).SPR"),_L("\\F32-TST\\ABCDEF\\test_sheet(01).spr"));
+ − 405
test(r==KErrNone);
+ − 406
CheckFileExists(_L("\\F32-TST\\ABCDEF\\TEST_SHEET(01).SPR"),KErrNone,ETrue); // Replace does not rename existing file
+ − 407
CheckFileExists(_L("\\F32-TST\\ABCDEF\\test_sheet(01).spr"),KErrNone,EFalse);
+ − 408
+ − 409
test.Next(_L("Replace preserves file contents (8.3 filename)"));
+ − 410
MakeFile(_L("\\F32-TST\\ABCDEF\\SHEET1.SPR"),_L8("Original Data"));
+ − 411
MakeFile(_L("\\F32-TST\\ABCDEF\\TEMP0001.SPR"),_L8("NewData"));
+ − 412
r=TheFs.Replace(_L("\\F32-TST\\ABCDEF\\TEMP0001.SPR"),_L("\\F32-TST\\ABCDEF\\SHEET1.SPR"));
+ − 413
test(r==KErrNone);
+ − 414
CheckFileContents(_L("\\F32-TST\\ABCDEF\\SHEET1.SPR"),_L8("NewData"));
+ − 415
CheckFileExists(_L("\\F32-TST\\ABCDEF\\TEMP0001.SPR"),KErrNotFound);
+ − 416
+ − 417
r=TheFs.Rename(_L("\\F32-TST\\ABCDEF\\SHEET1.SPR"),_L("\\F32-TST\\ABCDEF\\TEMP0001.SPR"));
+ − 418
test(r==KErrNone);
+ − 419
r=TheFs.Replace(_L("\\F32-TST\\ABCDEF\\TEMP0001.SPR"),_L("\\F32-TST\\ABCDEF\\SHEET1.SPR"));
+ − 420
test(r==KErrNone);
+ − 421
CheckFileContents(_L("\\F32-TST\\ABCDEF\\SHEET1.SPR"),_L8("NewData"));
+ − 422
CheckFileExists(_L("\\F32-TST\\ABCDEF\\TEMP0001.SPR"),KErrNotFound);
+ − 423
+ − 424
test.Next(_L("Replace preserves file contents (vfat fileName)"));
+ − 425
MakeFile(_L("\\F32-TST\\ABCDEF\\SHEET_TEST1.SPR"),_L8("Original Data"));
+ − 426
MakeFile(_L("\\F32-TST\\ABCDEF\\NEW_TEMP0001.SPR"),_L8("NewData"));
+ − 427
r=TheFs.Replace(_L("\\F32-TST\\ABCDEF\\NEW_TEMP0001.SPR"),_L("\\F32-TST\\ABCDEF\\SHEET_TEST1.SPR"));
+ − 428
test(r==KErrNone);
+ − 429
CheckFileContents(_L("\\F32-TST\\ABCDEF\\SHEET_TEST1.SPR"),_L8("NewData"));
+ − 430
CheckFileExists(_L("\\F32-TST\\ABCDEF\\NEW_TEMP0001.SPR"),KErrNotFound);
+ − 431
+ − 432
r=TheFs.Rename(_L("\\F32-TST\\ABCDEF\\SHEET_TEST1.SPR"),_L("\\F32-TST\\ABCDEF\\NEW_TEMP0001.SPR"));
+ − 433
test(r==KErrNone);
+ − 434
r=TheFs.Replace(_L("\\F32-TST\\ABCDEF\\NEW_TEMP0001.SPR"),_L("\\F32-TST\\ABCDEF\\SHEET_TEST1.SPR"));
+ − 435
test(r==KErrNone);
+ − 436
CheckFileContents(_L("\\F32-TST\\ABCDEF\\SHEET_TEST1.SPR"),_L8("NewData"));
+ − 437
CheckFileExists(_L("\\F32-TST\\ABCDEF\\NEW_TEMP0001.SPR"),KErrNotFound);
+ − 438
+ − 439
r=TheFs.RmDir(_L("\\F32-TST\\ABCDEF\\"));
+ − 440
test(r==KErrInUse);
+ − 441
r=TheFs.RmDir(_L("\\F32-TST\\ABCDEF\\SHEET1.SPR\\"));
+ − 442
test(r==KErrPathNotFound);
+ − 443
r=TheFs.Delete(_L("\\F32-TST\\ABCDEF\\SHEET1.SPR"));
+ − 444
test(r==KErrNone);
+ − 445
r=TheFs.Delete(_L("\\F32-TST\\ABCDEF\\SHEET_TEST1.SPR"));
+ − 446
test(r==KErrNone);
+ − 447
r=TheFs.Delete(_L("\\F32-TST\\ABCDEF\\TEST1.SPR"));
+ − 448
test(r==KErrNone);
+ − 449
r=TheFs.Delete(_L("\\F32-TST\\ABCDEF\\TEST_SHEET(01).SPR"));
+ − 450
test(r==KErrNone);
+ − 451
r=TheFs.RmDir(_L("\\F32-TST\\ABCDEF\\"));
+ − 452
test(r==KErrNone);
+ − 453
+ − 454
test.Next(_L("Check file date is retained"));
+ − 455
MakeFile(_L("OldFile.Old"));
+ − 456
MakeFile(_L("NewFile.new"));
+ − 457
+ − 458
TDateTime newDate(1998,(TMonth)2,3,11,12,0,0);
+ − 459
TTime newTime(newDate);
+ − 460
+ − 461
r=TheFs.SetEntry(_L("NewFile.new"),newTime,0,0);
+ − 462
test(r==KErrNone);
+ − 463
+ − 464
TEntry entry;
+ − 465
r=TheFs.Entry(_L("NewFile.new"),entry);
+ − 466
test(r==KErrNone);
+ − 467
+ − 468
TTime checkReturnedTime=entry.iModified;
+ − 469
TDateTime dateTime=checkReturnedTime.DateTime();
+ − 470
+ − 471
test(entry.iModified==newTime);
+ − 472
+ − 473
TDateTime oldDate(1996,(TMonth)2,3,23,0,0,0);
+ − 474
TTime oldTime(oldDate);
+ − 475
r=TheFs.SetEntry(_L("OldFile.old"),oldTime,0,0);
+ − 476
test(r==KErrNone);
+ − 477
+ − 478
TheFs.Replace(_L("NewFile.new"),_L("OldFile.old"));
+ − 479
test(r==KErrNone);
+ − 480
TTime check;
+ − 481
r=TheFs.Modified(_L("OldFile.old"),check);
+ − 482
test(r==KErrNone);
+ − 483
TDateTime checkDateTime=check.DateTime();
+ − 484
+ − 485
test(checkDateTime.Year()==dateTime.Year());
+ − 486
test(checkDateTime.Month()==dateTime.Month());
+ − 487
test(checkDateTime.Day()==dateTime.Day());
+ − 488
test(checkDateTime.Hour()==dateTime.Hour());
+ − 489
test(checkDateTime.Minute()==dateTime.Minute());
+ − 490
test(checkDateTime.Second()==dateTime.Second());
+ − 491
+ − 492
test.Next(_L("Replace 'Agenda' with 'Agenda.'"));
+ − 493
MakeFile(_L("Agenda"));
+ − 494
r=TheFs.Replace(_L("Agenda"),_L("Agenda."));
+ − 495
test(r==KErrNone);
+ − 496
CheckFileExists(_L("Agenda"),KErrNone,ETrue);
+ − 497
CheckFileExists(_L("Agenda."),KErrNone,ETrue);
+ − 498
CheckFileExists(_L("AGENDA"),KErrNone,EFalse);
+ − 499
CheckFileExists(_L("AGENDA."),KErrNone,EFalse);
+ − 500
+ − 501
r=TheFs.Replace(_L("Agenda"),_L("Agenda."));
+ − 502
test(r==KErrNone);
+ − 503
CheckFileExists(_L("Agenda"),KErrNone,ETrue);
+ − 504
CheckFileExists(_L("Agenda."),KErrNone,ETrue);
+ − 505
CheckFileExists(_L("AGENDA"),KErrNone,EFalse);
+ − 506
CheckFileExists(_L("AGENDA."),KErrNone,EFalse);
+ − 507
+ − 508
r=TheFs.Replace(_L("Agenda."),_L("AGENDA"));
+ − 509
test(r==KErrNone);
+ − 510
CheckFileExists(_L("Agenda"),KErrNone,ETrue); // Replace does not rename existing file
+ − 511
CheckFileExists(_L("Agenda."),KErrNone,ETrue);
+ − 512
CheckFileExists(_L("AGENDA"),KErrNone,EFalse);
+ − 513
CheckFileExists(_L("AGENDA."),KErrNone,EFalse);
+ − 514
+ − 515
r=TheFs.Replace(_L("AGENDA."),_L("AGENDA.")); // Unchanged, ie still 'Agenda'
+ − 516
test(r==KErrNone);
+ − 517
CheckFileExists(_L("Agenda"),KErrNone,ETrue);
+ − 518
CheckFileExists(_L("Agenda."),KErrNone,ETrue);
+ − 519
CheckFileExists(_L("AGENDA"),KErrNone,EFalse);
+ − 520
CheckFileExists(_L("AGENDA."),KErrNone,EFalse);
+ − 521
}
+ − 522
+ − 523
LOCAL_C void testEntry()
+ − 524
//
+ − 525
// Test RFs::Entry(..) function
+ − 526
//
+ − 527
{
+ − 528
+ − 529
test.Next(_L("Get directory entry"));
+ − 530
TEntry entry;
+ − 531
TInt r=TheFs.Entry(_L("\\BLEERRG\\"),entry);
+ − 532
test(r==KErrNotFound); // BLEERRG does not exist
+ − 533
r=TheFs.Entry(_L("\\F32-TST"),entry);
+ − 534
test(r==KErrNone);
+ − 535
test(entry.iName==_L("F32-TST")||entry.iName==_L("F32-TST."));
+ − 536
if (IsTestingLFFS())
+ − 537
{
+ − 538
r=TheFs.Rename(_L("\\F32-TST.\\"),_L("\\F32-TST\\"));
+ − 539
test(r==KErrBadName);
+ − 540
r=TheFs.Entry(_L("\\F32-TST"),entry);
+ − 541
test(r==KErrNone);
+ − 542
}
+ − 543
test(entry.iName==_L("F32-TST"));
+ − 544
test(entry.IsDir());
+ − 545
+ − 546
test.Next(_L("Get file entry"));
+ − 547
RFile f;
+ − 548
r=f.Replace(TheFs,_L("ENTRY.TXT"),EFileStream);
+ − 549
test(r==KErrNone);
+ − 550
r=f.Write(_L8("Entry data"));
+ − 551
test(r==KErrNone);
+ − 552
f.Close();
+ − 553
r=TheFs.Entry(_L("\\F32-TST\\TNMBS\\ENTRY.TXT"),entry);
+ − 554
test(r==KErrNone);
+ − 555
test(entry.iName==_L("ENTRY.TXT"));
+ − 556
test(!entry.IsDir());
+ − 557
+ − 558
test.Next(_L("Get the root directory"));
+ − 559
r=TheFs.Entry(_L("\\"),entry);
+ − 560
test(r==KErrBadName);
+ − 561
}
+ − 562
+ − 563
LOCAL_C void testRenameRegression()
+ − 564
//
+ − 565
// Regression tests for rename
+ − 566
//
+ − 567
{
+ − 568
+ − 569
test.Next(_L("More rename tests"));
+ − 570
MakeFile(_L("\\F32-TST\\asdf"));
+ − 571
TInt r=TheFs.Rename(_L("\\F32-TST\\asdf"),_L("*"));
+ − 572
test(r==KErrBadName);
+ − 573
r=TheFs.Rename(_L("\\F32-TST\\"),_L("*"));
+ − 574
test(r==KErrBadName);
+ − 575
r=TheFs.Rename(_L("\\F32-TST\\"),_L("\\F32-TST.\\"));
+ − 576
test(r==KErrBadName);
+ − 577
CheckFileExists(_L("\\F32-TST\\asdf"),KErrNone);
+ − 578
r=TheFs.Rename(_L("\\F32-TST\\asdf"),_L("\\F32-TST\\Asdf."));
+ − 579
test(r==KErrNone);
+ − 580
CheckFileExists(_L("\\F32-TST\\asdf"),KErrNone,EFalse);
+ − 581
CheckFileExists(_L("\\F32-TST\\Asdf"),KErrNone,ETrue);
+ − 582
+ − 583
TBuf<4> shortName;
+ − 584
shortName.SetLength(1);
+ − 585
shortName[0]=0xff;
+ − 586
r=TheFs.Rename(_L("\\F32-TST\\asdf"),shortName);
+ − 587
test(r==KErrNone);
+ − 588
r=TheFs.Delete(_L("\\F32-TST\\Asdf"));
+ − 589
test(r==KErrNotFound);
+ − 590
r=TheFs.Delete(shortName);
+ − 591
test(r==KErrNone);
+ − 592
}
+ − 593
+ − 594
LOCAL_C void testMaxNameLength()
+ − 595
//
+ − 596
// Create files and directories with the maximum name length
+ − 597
//
+ − 598
{
+ − 599
+ − 600
test.Next(_L("Test max name length"));
+ − 601
TBuf<128> longNameBase=_L("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
+ − 602
TFullName longName=_L("\\F32-TST\\MAXNAMELEN\\");
+ − 603
+ − 604
longName.Append(longNameBase);
+ − 605
longName.Append(_L("\\"));
+ − 606
longName.Append(longNameBase);
+ − 607
longName.Append(_L("\\"));
+ − 608
+ − 609
TInt r=TheFs.MkDirAll(longName);
+ − 610
test(r==KErrNone);
+ − 611
+ − 612
TInt i=0;
+ − 613
FOREVER
+ − 614
{
+ − 615
longName.Append(_L("X"));
+ − 616
longName.Append(_L("\\"));
+ − 617
r=TheFs.MkDirAll(longName);
+ − 618
if (r!=KErrNone)
+ − 619
break;
+ − 620
i++;
+ − 621
}
+ − 622
+ − 623
longName.SetLength(longName.Length()-2);
+ − 624
r=TheFs.RmDir(longName);
+ − 625
test(r==KErrNone); // Make room for file
+ − 626
longName.SetLength(longName.Length()-2);
+ − 627
+ − 628
TFullName oldSessionPath;
+ − 629
r=TheFs.SessionPath(oldSessionPath);
+ − 630
test(r==KErrNone);
+ − 631
r=TheFs.SetSessionPath(longName);
+ − 632
test(r==KErrNone);
+ − 633
r=TheFs.SessionPath(longName);
+ − 634
test(r==KErrNone);
+ − 635
+ − 636
test.Printf(_L("MaxPathLength achieved = %d chars\n"),longName.Length());
+ − 637
TBuf<32> fileName=_L("012345678901234567890");
+ − 638
RFile f;
+ − 639
while (fileName.Length())
+ − 640
{
+ − 641
r=f.Replace(TheFs,fileName,EFileWrite);
+ − 642
if (r==KErrNone)
+ − 643
break;
+ − 644
fileName.SetLength(fileName.Length()-1);
+ − 645
}
+ − 646
+ − 647
f.Close();
+ − 648
test.Printf(_L("Added filename %S\n"),&fileName);
+ − 649
r=f.Open(TheFs,fileName,EFileRead);
+ − 650
test(r==KErrNone);
+ − 651
f.Close();
+ − 652
+ − 653
CFileMan* fMan=CFileMan::NewL(TheFs);
+ − 654
r=fMan->RmDir(_L("\\F32-TST\\MAXNAMELEN\\"));
+ − 655
test(r==KErrNone);
+ − 656
delete fMan;
+ − 657
+ − 658
r=f.Open(TheFs,fileName,EFileRead);
+ − 659
test(r==KErrPathNotFound);
+ − 660
r=TheFs.SetSessionPath(oldSessionPath);
+ − 661
test(r==KErrNone);
+ − 662
}
+ − 663
+ − 664
LOCAL_C void testErrorReturnValues()
+ − 665
//
+ − 666
// Test error return values
+ − 667
//
+ − 668
{
+ − 669
+ − 670
TInt r;
+ − 671
test.Next(_L("Create folder with the name of an existing file"));
+ − 672
MakeFile(_L("\\BLUE"));
+ − 673
if (!IsTestingLFFS())
+ − 674
{ //FIXME: Bad error codes from LFFS
+ − 675
r=TheFs.MkDir(_L("\\BLUE\\"));
+ − 676
test(r==KErrAccessDenied);
+ − 677
MakeFile(_L("\\RED\\BLUE"));
+ − 678
r=TheFs.MkDir(_L("\\RED\\BLUE\\"));
+ − 679
test(r==KErrAccessDenied);
+ − 680
r=TheFs.MkDirAll(_L("\\BLUE\\GREEN\\ORANGE\\"));
+ − 681
test(r==KErrAccessDenied);
+ − 682
}
+ − 683
+ − 684
test.Next(_L("Create folder with the name of an existing folder"));
+ − 685
MakeDir(_L("\\VOLVO\\"));
+ − 686
r=TheFs.MkDir(_L("\\VOLVO\\"));
+ − 687
test(r==KErrAlreadyExists);
+ − 688
MakeDir(_L("\\FORD\\VOLKSWAGEN\\"));
+ − 689
r=TheFs.MkDirAll(_L("\\ford\\volkswagen\\"));
+ − 690
test(r==KErrAlreadyExists);
+ − 691
+ − 692
RFile f;
+ − 693
if (!IsTestingLFFS())
+ − 694
{ //FIXME Bad error codes from LFFS
+ − 695
test.Next(_L("Create a file with the name of an existing folder"));
+ − 696
r=f.Create(TheFs,_L("\\VOLVO"),EFileRead|EFileWrite);
+ − 697
test(r==KErrAccessDenied);
+ − 698
r=f.Replace(TheFs,_L("\\VOLVO"),EFileRead|EFileWrite);
+ − 699
test(r==KErrAccessDenied);
+ − 700
r=f.Open(TheFs,_L("\\VOLVO"),EFileRead|EFileWrite);
+ − 701
test(r==KErrAccessDenied);
+ − 702
r=f.Create(TheFs,_L("\\FORD\\VOLKSWAGEN"),EFileRead|EFileWrite);
+ − 703
test(r==KErrAccessDenied);
+ − 704
r=f.Replace(TheFs,_L("\\FORD\\VOLKSWAGEN"),EFileRead|EFileWrite);
+ − 705
test(r==KErrAccessDenied);
+ − 706
r=f.Open(TheFs,_L("\\FORD\\VOLKSWAGEN"),EFileRead|EFileWrite);
+ − 707
test(r==KErrAccessDenied);
+ − 708
}
+ − 709
+ − 710
test.Next(_L("Create a file with the name of an existing file"));
+ − 711
r=f.Create(TheFs,_L("\\BLUE"),EFileRead|EFileWrite);
+ − 712
test(r==KErrAlreadyExists);
+ − 713
}
+ − 714
+ − 715
LOCAL_C void testSetEntry()
+ − 716
//
+ − 717
// Test set entry
+ − 718
//
+ − 719
{
+ − 720
+ − 721
test.Next(_L("Test SetEntry"));
+ − 722
// TDateTime dateTime(1968,ENovember,19,12,59,0,0); Year must be > 1980
+ − 723
TDateTime dateTime(1981,ENovember,19,12,59,0,0);
+ − 724
TTime time(dateTime);
+ − 725
MakeFile(_L("DUMENTRY."));
+ − 726
+ − 727
RFile f;
+ − 728
TInt r=f.Open(TheFs,_L("dumentry"),EFileRead);
+ − 729
test(r==KErrNone);
+ − 730
r=TheFs.SetEntry(_L("dumentry."),time,KEntryAttReadOnly,KEntryAttArchive);
+ − 731
test(r==KErrInUse);
+ − 732
f.Close();
+ − 733
+ − 734
r=TheFs.SetEntry(_L("dumentry."),time,KEntryAttReadOnly,KEntryAttArchive);
+ − 735
test(r==KErrNone);
+ − 736
CheckEntry(_L("DUMEntry"),KEntryAttReadOnly,TTime(dateTime));
+ − 737
r=TheFs.SetEntry(_L("dumentry."),time,0,KEntryAttReadOnly);
+ − 738
test(r==KErrNone);
+ − 739
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 740
r=TheFs.SetEntry(_L("dumentry."),time,KEntryAttDir,0);
+ − 741
test(r==KErrNone);
+ − 742
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 743
r=TheFs.SetEntry(_L("dumentry."),time,KEntryAttVolume,0);
+ − 744
test(r==KErrNone);
+ − 745
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 746
r=TheFs.SetEntry(_L("dumentry."),time,KEntryAttRemote,0);
+ − 747
test(r==KErrNone);
+ − 748
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 749
r=TheFs.SetEntry(_L("dumentry."),time,KEntryAttDir|KEntryAttVolume,0);
+ − 750
test(r==KErrNone);
+ − 751
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 752
r=TheFs.SetEntry(_L("dumentry."),time,KEntryAttDir|KEntryAttRemote,0);
+ − 753
test(r==KErrNone);
+ − 754
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 755
r=TheFs.SetEntry(_L("dumentry."),time,KEntryAttVolume|KEntryAttRemote,0);
+ − 756
test(r==KErrNone);
+ − 757
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 758
r=TheFs.SetEntry(_L("dumentry."),time,KEntryAttDir|KEntryAttVolume|KEntryAttRemote,0);
+ − 759
test(r==KErrNone);
+ − 760
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 761
r=TheFs.SetEntry(_L("dumentry."),time,0,KEntryAttDir);
+ − 762
test(r==KErrNone);
+ − 763
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 764
r=TheFs.SetEntry(_L("dumentry."),time,0,KEntryAttVolume);
+ − 765
test(r==KErrNone);
+ − 766
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 767
r=TheFs.SetEntry(_L("dumentry."),time,0,KEntryAttRemote);
+ − 768
test(r==KErrNone);
+ − 769
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 770
r=TheFs.SetEntry(_L("dumentry."),time,0,KEntryAttDir|KEntryAttVolume);
+ − 771
test(r==KErrNone);
+ − 772
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 773
r=TheFs.SetEntry(_L("dumentry."),time,0,KEntryAttDir|KEntryAttRemote);
+ − 774
test(r==KErrNone);
+ − 775
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 776
r=TheFs.SetEntry(_L("dumentry."),time,0,KEntryAttVolume|KEntryAttRemote);
+ − 777
test(r==KErrNone);
+ − 778
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 779
r=TheFs.SetEntry(_L("dumentry."),time,0,KEntryAttDir|KEntryAttVolume|KEntryAttRemote);
+ − 780
test(r==KErrNone);
+ − 781
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 782
r=TheFs.SetEntry(_L("dumentry."),time,KEntryAttDir,KEntryAttVolume);
+ − 783
test(r==KErrNone);
+ − 784
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 785
r=TheFs.SetEntry(_L("dumentry."),time,KEntryAttDir,KEntryAttRemote);
+ − 786
test(r==KErrNone);
+ − 787
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 788
r=TheFs.SetEntry(_L("dumentry."),time,KEntryAttVolume,KEntryAttDir);
+ − 789
test(r==KErrNone);
+ − 790
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 791
r=TheFs.SetEntry(_L("dumentry."),time,KEntryAttVolume,KEntryAttRemote);
+ − 792
test(r==KErrNone);
+ − 793
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 794
r=TheFs.SetEntry(_L("dumentry."),time,KEntryAttRemote,KEntryAttDir);
+ − 795
test(r==KErrNone);
+ − 796
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 797
r=TheFs.SetEntry(_L("dumentry."),time,KEntryAttRemote,KEntryAttVolume);
+ − 798
test(r==KErrNone);
+ − 799
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 800
+ − 801
r=f.Open(TheFs,_L("dumentry"),EFileWrite);
+ − 802
test(r==KErrNone);
+ − 803
+ − 804
r=f.SetAtt(KEntryAttDir,0);
+ − 805
test(r==KErrNone);
+ − 806
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 807
r=f.SetAtt(KEntryAttVolume,KEntryAttDir);
+ − 808
test(r==KErrNone);
+ − 809
CheckEntry(_L("DUMEntry"),0,TTime(dateTime));
+ − 810
f.Close();
+ − 811
r=TheFs.Delete(_L("dumEntry."));
+ − 812
test(r==KErrNone);
+ − 813
+ − 814
MakeDir(_L("\\DumEntry\\"));
+ − 815
r=TheFs.SetEntry(_L("\\dumentry\\"),time,KEntryAttReadOnly,KEntryAttArchive);
+ − 816
test(r==KErrNone);
+ − 817
CheckEntry(_L("\\DUMEntry"),KEntryAttReadOnly|KEntryAttDir,TTime(dateTime));
+ − 818
r=TheFs.SetEntry(_L("\\dumentry."),time,0,KEntryAttReadOnly);
+ − 819
test(r==KErrNone);
+ − 820
CheckEntry(_L("\\DUMEntry"),KEntryAttDir,TTime(dateTime));
+ − 821
r=TheFs.SetEntry(_L("\\dumentry"),time,KEntryAttDir,0);
+ − 822
test(r==KErrNone);
+ − 823
CheckEntry(_L("\\DUMEntry"),KEntryAttDir,TTime(dateTime));
+ − 824
r=TheFs.SetEntry(_L("\\dumentry"),time,KEntryAttVolume,0);
+ − 825
test(r==KErrNone);
+ − 826
CheckEntry(_L("\\DUMEntry"),KEntryAttDir,TTime(dateTime));
+ − 827
r=TheFs.SetEntry(_L("\\dumentry"),time,KEntryAttVolume|KEntryAttDir,0);
+ − 828
test(r==KErrNone);
+ − 829
CheckEntry(_L("\\DUMEntry"),KEntryAttDir,TTime(dateTime));
+ − 830
r=TheFs.SetEntry(_L("\\dumentry"),time,0,KEntryAttVolume|KEntryAttDir);
+ − 831
test(r==KErrNone);
+ − 832
CheckEntry(_L("\\DUMEntry"),KEntryAttDir,TTime(dateTime));
+ − 833
r=TheFs.SetEntry(_L("\\dumentry"),time,0,KEntryAttVolume);
+ − 834
test(r==KErrNone);
+ − 835
CheckEntry(_L("\\DUMEntry"),KEntryAttDir,TTime(dateTime));
+ − 836
r=TheFs.SetEntry(_L("\\dumentry"),time,0,KEntryAttDir);
+ − 837
test(r==KErrNone);
+ − 838
CheckEntry(_L("\\DUMEntry"),KEntryAttDir,TTime(dateTime));
+ − 839
r=TheFs.SetEntry(_L("\\dumentry"),time,KEntryAttVolume,KEntryAttDir);
+ − 840
test(r==KErrNone);
+ − 841
CheckEntry(_L("\\DUMEntry"),KEntryAttDir,TTime(dateTime));
+ − 842
r=TheFs.SetEntry(_L("\\dumentry"),time,KEntryAttDir,KEntryAttVolume);
+ − 843
test(r==KErrNone);
+ − 844
CheckEntry(_L("\\DUMEntry"),KEntryAttDir,TTime(dateTime));
+ − 845
r=TheFs.RmDir(_L("\\dumEntry\\"));
+ − 846
test(r==KErrNone);
+ − 847
}
+ − 848
+ − 849
+ − 850
LOCAL_C void testSetFileAttributes()
+ − 851
//
+ − 852
// Test RFile::SetAtt() and RFile::Set()
+ − 853
//
+ − 854
{
+ − 855
// First test RFile::SetAtt() function
+ − 856
+ − 857
test.Next(_L("Test RFile::SetAtt()"));
+ − 858
+ − 859
// Create a file "TEMPFILE.TMP" and set attributes to hidden
+ − 860
RFile file;
+ − 861
TInt r=file.Replace(TheFs,_L("TEMPFILE.TMP"),0);
+ − 862
test(r==KErrNone || r==KErrPathNotFound);
+ − 863
r=file.SetAtt(KEntryAttHidden,0);
+ − 864
test(r==KErrNone);
+ − 865
file.Close();
+ − 866
+ − 867
// Check attributes are as set
+ − 868
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 869
TUint atts;
+ − 870
r=file.Att(atts);
+ − 871
test(r==KErrNone);
+ − 872
file.Close();
+ − 873
test(atts&KEntryAttHidden);
+ − 874
+ − 875
// Change attributes from hidden to system
+ − 876
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 877
r=file.SetAtt(KEntryAttSystem,KEntryAttHidden);
+ − 878
test(r==KErrNone);
+ − 879
file.Close();
+ − 880
+ − 881
// Check attributes have been changed
+ − 882
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 883
r=file.Att(atts);
+ − 884
test(r==KErrNone);
+ − 885
file.Close();
+ − 886
test(atts&KEntryAttSystem);
+ − 887
+ − 888
// Change attributes to normal
+ − 889
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 890
r=file.SetAtt(KEntryAttNormal,KEntryAttSystem|KEntryAttArchive);
+ − 891
test(r==KErrNone);
+ − 892
file.Close();
+ − 893
+ − 894
// Check attributes have been changed
+ − 895
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 896
r=file.Att(atts);
+ − 897
test(r==KErrNone);
+ − 898
file.Close();
+ − 899
test(atts==KEntryAttNormal);
+ − 900
+ − 901
// Attempt to change attributes from normal file to directory
+ − 902
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 903
r=file.SetAtt(KEntryAttDir,KEntryAttNormal);
+ − 904
test(r==KErrNone); // Returns KErrNone but DOESN'T change the file to a directory
+ − 905
file.Close();
+ − 906
+ − 907
// Check the file has not been changed to a directory
+ − 908
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 909
r=file.Att(atts);
+ − 910
test(r==KErrNone);
+ − 911
file.Close();
+ − 912
test((TInt)(atts&KEntryAttDir)==KErrNone);
+ − 913
+ − 914
// Change the attributes from normal file to hidden file
+ − 915
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 916
r=file.SetAtt(KEntryAttHidden,KEntryAttNormal);
+ − 917
test(r==KErrNone);
+ − 918
file.Close();
+ − 919
+ − 920
// Check the attributes have been changed
+ − 921
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 922
r=file.Att(atts);
+ − 923
test(r==KErrNone);
+ − 924
file.Close();
+ − 925
test(atts&KEntryAttHidden);
+ − 926
+ − 927
// Try to change the attributes from hidden file to volume
+ − 928
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 929
r=file.SetAtt(KEntryAttVolume,KEntryAttHidden);
+ − 930
test(r==KErrNone); // Returns KErrNone but DOESN'T change the file to a volume
+ − 931
file.Close();
+ − 932
+ − 933
// Check that the hidden file has not been changed to a volume
+ − 934
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 935
r=file.Att(atts);
+ − 936
test(r==KErrNone);
+ − 937
file.Close();
+ − 938
test((TInt)(atts&KEntryAttVolume)==KErrNone);
+ − 939
+ − 940
// Test RFile::Set() function
+ − 941
+ − 942
test.Next(_L("Test RFile::Set()"));
+ − 943
+ − 944
// Check attributes
+ − 945
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 946
r=file.Att(atts);
+ − 947
test(r==KErrNone);
+ − 948
file.Close();
+ − 949
test(atts==KEntryAttNormal);
+ − 950
+ − 951
// Change attributes from hidden to system - and change modification time
+ − 952
TDateTime dateTime(1998,EMay,25,18,23,0,0);
+ − 953
TTime modTime1(dateTime);
+ − 954
TTime retTime;
+ − 955
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 956
r=file.Set(modTime1,KEntryAttSystem,KEntryAttNormal);
+ − 957
test(r==KErrNone);
+ − 958
file.Close();
+ − 959
+ − 960
// Check attributes have been changed
+ − 961
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 962
r=file.Att(atts);
+ − 963
test(r==KErrNone);
+ − 964
r=file.Modified(retTime);
+ − 965
test(r==KErrNone);
+ − 966
file.Close();
+ − 967
test(atts&KEntryAttSystem);
+ − 968
test(retTime==modTime1);
+ − 969
+ − 970
// Change attributes to normal - and change modification time
+ − 971
dateTime.Set(1997,EMay,24,17,25,0,0);
+ − 972
TTime modTime2(dateTime);
+ − 973
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 974
r=file.Set(modTime2,KEntryAttNormal,KEntryAttSystem|KEntryAttArchive);
+ − 975
test(r==KErrNone);
+ − 976
file.Close();
+ − 977
+ − 978
// Check attributes have been changed
+ − 979
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 980
r=file.Att(atts);
+ − 981
test(r==KErrNone);
+ − 982
r=file.Modified(retTime);
+ − 983
test(r==KErrNone);
+ − 984
file.Close();
+ − 985
test(atts==KEntryAttNormal);
+ − 986
test(retTime==modTime2);
+ − 987
+ − 988
// Attempt to change attributes from normal file to directory
+ − 989
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 990
r=file.Set(modTime1,KEntryAttDir,KEntryAttNormal);
+ − 991
test(r==KErrNone); // Returns KErrNone but DOESN'T change the file to a directory
+ − 992
file.Close();
+ − 993
+ − 994
// Check the file has not been changed to a directory
+ − 995
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 996
r=file.Att(atts);
+ − 997
test(r==KErrNone);
+ − 998
r=file.Modified(retTime);
+ − 999
test(r==KErrNone);
+ − 1000
file.Close();
+ − 1001
test((TInt)(atts&KEntryAttDir)==KErrNone);
+ − 1002
test(retTime==modTime1);// Modification time should have been set successfully
+ − 1003
+ − 1004
// Change the attributes from normal file to hidden file - and change modification time
+ − 1005
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 1006
r=file.Set(modTime1,KEntryAttHidden,KEntryAttNormal);
+ − 1007
test(r==KErrNone);
+ − 1008
file.Close();
+ − 1009
+ − 1010
// Check the attributes have been changed
+ − 1011
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 1012
r=file.Att(atts);
+ − 1013
test(r==KErrNone);
+ − 1014
r=file.Modified(retTime);
+ − 1015
file.Close();
+ − 1016
test(atts&KEntryAttHidden);
+ − 1017
test(retTime==modTime1);
+ − 1018
+ − 1019
// Try to change the attributes from hidden file to volume
+ − 1020
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 1021
r=file.Set(modTime2,KEntryAttVolume,KEntryAttHidden);
+ − 1022
test(r==KErrNone); // Returns KErrNone but DOESN'T change the file to a volume
+ − 1023
file.Close();
+ − 1024
+ − 1025
// Check that the hidden file has not been changed to a volume
+ − 1026
file.Open(TheFs,_L("TEMPFILE.TMP"),EFileWrite);
+ − 1027
r=file.Att(atts);
+ − 1028
test(r==KErrNone);
+ − 1029
r=file.Modified(retTime);
+ − 1030
test(r==KErrNone);
+ − 1031
file.Close();
+ − 1032
test((TInt)(atts&KEntryAttVolume)==KErrNone);
+ − 1033
test(retTime==modTime2); // Modification time should have been set successfully
+ − 1034
+ − 1035
r=TheFs.Delete(_L("TEMPFILE.TMP"));
+ − 1036
+ − 1037
}
+ − 1038
+ − 1039
+ − 1040
GLDEF_C void CallTestsL()
+ − 1041
//
+ − 1042
// Do tests relative to session path
+ − 1043
//
+ − 1044
{
+ − 1045
+ − 1046
TurnAllocFailureOff();
+ − 1047
CreateTestDirectory(_L("\\F32-TST\\TNMBS\\"));
+ − 1048
testMkDirRmDir(); // Must come first
+ − 1049
testSetEntry();
+ − 1050
testSetFileAttributes();
+ − 1051
testRename();
+ − 1052
TestLongFileName();
+ − 1053
testRenameRegression();
+ − 1054
testRenameCase();
+ − 1055
testMaxNameLength();
+ − 1056
testEntry();
+ − 1057
testReplace();
+ − 1058
testErrorReturnValues();
+ − 1059
DeleteTestDirectory();
+ − 1060
}
+ − 1061