195 TFileName fn = _L("Z:\\TEST\\T_FILE.CPP"); |
195 TFileName fn = _L("Z:\\TEST\\T_FILE.CPP"); |
196 fn[0] = gExeFileName[0]; |
196 fn[0] = gExeFileName[0]; |
197 r=ZFile.Open(TheFs,fn,EFileStreamText); |
197 r=ZFile.Open(TheFs,fn,EFileStreamText); |
198 test(r==KErrNone); |
198 test(r==KErrNone); |
199 |
199 |
|
200 // check the file on the Z: drive his read-only |
|
201 TEntry fileAtt; |
|
202 r=TheFs.Entry(fn,fileAtt); |
|
203 test_KErrNone(r); |
|
204 test((fileAtt.iAtt & KEntryAttReadOnly) == KEntryAttReadOnly); |
|
205 |
|
206 |
200 test.Next(_L("Read file")); |
207 test.Next(_L("Read file")); |
201 TBuf8<0x100> a,b; |
208 TBuf8<0x100> a,b; |
202 FOREVER |
209 FOREVER |
203 { |
210 { |
204 r=f.Read(b); |
211 r=f.Read(b); |
950 r=f.SetAtt(KEntryAttReadOnly,0); |
957 r=f.SetAtt(KEntryAttReadOnly,0); |
951 test(r==KErrNone); |
958 test(r==KErrNone); |
952 r=f.Write(_L8("Hello World")); |
959 r=f.Write(_L8("Hello World")); |
953 test(r==KErrNone); |
960 test(r==KErrNone); |
954 f.Close(); |
961 f.Close(); |
|
962 |
|
963 |
|
964 test.Next(_L("Internal attribute can't be read")); |
|
965 |
|
966 r=TheFs.SetAtt(fname,0,KEntryAttReadOnly); |
|
967 test_KErrNone(r); |
|
968 |
|
969 r=f.Open(TheFs,fname,EFileWrite); |
|
970 test_KErrNone(r); |
|
971 |
|
972 r=f.SetAtt(KEntryAttReadOnly, 0); // this will set internal attribut KEntryAttModified |
|
973 test_KErrNone(r); |
|
974 |
|
975 // copied \sf\os\kernelhwsrv\userlibandfileserver\fileserver\inc\common.h |
|
976 const TUint KEntryAttModified=0x20000000; |
|
977 |
|
978 TUint att; |
|
979 r = f.Att(att); |
|
980 test_KErrNone(r); |
|
981 test.Printf(_L("att %x"), att); |
|
982 test_Value(att & KEntryAttModified, (att & KEntryAttModified) == 0); |
|
983 |
|
984 r=f.SetAtt(att | KEntryAttModified, 0); |
|
985 test_KErrNone(r); |
|
986 |
|
987 r = f.Att(att); |
|
988 test_KErrNone(r); |
|
989 test.Printf(_L("att %x"), att); |
|
990 test_Value(att & KEntryAttModified, (att & KEntryAttModified) == 0); |
|
991 |
|
992 test.Next(_L("file time is set")); |
|
993 r = f.Modified(time); |
|
994 test(time.Int64() != 0); |
|
995 |
|
996 r = f.Flush(); //-- this will flush attributes to the media |
|
997 test_KErrNone(r); |
|
998 f.Close(); |
|
999 |
955 |
1000 |
956 // Tidy up |
1001 // Tidy up |
957 r=TheFs.SetAtt(fname,0,KEntryAttReadOnly); |
1002 r=TheFs.SetAtt(fname,0,KEntryAttReadOnly); |
958 test(r==KErrNone); |
1003 test(r==KErrNone); |
959 r=TheFs.Delete(fname); |
1004 r=TheFs.Delete(fname); |