kerneltest/f32test/fileshare/handshare64bit.cpp
changeset 109 b3a1d9898418
parent 0 a41df078684a
child 257 3e88ff8f41d5
equal deleted inserted replaced
102:ef2a444a7410 109:b3a1d9898418
    16 // RFile64::AdoptFromServer() and RFile64::TransferToServer()
    16 // RFile64::AdoptFromServer() and RFile64::TransferToServer()
    17 // functionality.
    17 // functionality.
    18 // 
    18 // 
    19 //
    19 //
    20 
    20 
    21 
    21 #define __E32TEST_EXTENSION__
    22 #include <e32svr.h>
    22 #include <e32svr.h>
    23 #include <e32test.h>
    23 #include <e32test.h>
    24 #include "handshare64bit.h"
    24 #include "handshare64bit.h"
    25 
    25 
    26 #ifdef __VC32__
    26 #ifdef __VC32__
   160 	// make sure file exists & has valid data in it
   160 	// make sure file exists & has valid data in it
   161 	RFile64 file1;
   161 	RFile64 file1;
   162 	if (r == KErrNone)
   162 	if (r == KErrNone)
   163 	r = file1.Replace(fs,KServerFileName,EFileWrite);
   163 	r = file1.Replace(fs,KServerFileName,EFileWrite);
   164 	r=file1.SetSize(K4GB-1);
   164 	r=file1.SetSize(K4GB-1);
   165 	test(r==KErrNone);
   165 	test_KErrNone(r);
   166 	r = file1.Write(K4GB-10,KTestData4());
   166 	r = file1.Write(K4GB-10,KTestData4());
   167 		
   167 		
   168 	file1.Close();
   168 	file1.Close();
   169 
   169 
   170 
   170 
   176 	
   176 	
   177 	test.Next(_L("RFile::TransferToClient()"));
   177 	test.Next(_L("RFile::TransferToClient()"));
   178 
   178 
   179 	// transfer the file to the client
   179 	// transfer the file to the client
   180 	r = file1.TransferToClient(aMsg, 0);
   180 	r = file1.TransferToClient(aMsg, 0);
   181 	test(r==KErrNone);
   181 	test_KErrNone(r);
   182 
   182 
   183 	// test we can still use the file
   183 	// test we can still use the file
   184 	TInt64 pos = 0;
   184 	TInt64 pos = 0;
   185 	r = file1.Seek(ESeekStart, pos);
   185 	r = file1.Seek(ESeekStart, pos);
   186 	test(r == KErrNone);
   186 	test_KErrNone(r);
   187 	TBuf8<9> rbuf;
   187 	TBuf8<9> rbuf;
   188 	r=file1.Read(K4GB-10,rbuf);
   188 	r=file1.Read(K4GB-10,rbuf);
   189 	test(r == KErrNone);
   189 	test_KErrNone(r);
   190 	r=rbuf.CompareF(KTestData4());
   190 	r=rbuf.CompareF(KTestData4());
   191 	test(r == KErrNone);
   191 	test_KErrNone(r);
   192 
   192 
   193 	file1.Close();
   193 	file1.Close();
   194 	fs.Close();
   194 	fs.Close();
   195 	RDebug::Print(_L("completed"));	
   195 	RDebug::Print(_L("completed"));	
   196 	}
   196 	}
   207 	RFile64 file;
   207 	RFile64 file;
   208 
   208 
   209 	// Message slot 0 is a RFs handle
   209 	// Message slot 0 is a RFs handle
   210 	// Message slot 1 is a RFile Subsession handle (RFile::SubSessionHandle())
   210 	// Message slot 1 is a RFile Subsession handle (RFile::SubSessionHandle())
   211 	TInt r = file.AdoptFromClient(aMsg, 0, 1);
   211 	TInt r = file.AdoptFromClient(aMsg, 0, 1);
   212 	test(r==KErrNone);
   212 	test_KErrNone(r);
   213 
   213 
   214 	TBuf8<9> rbuf;
   214 	TBuf8<9> rbuf;
   215 	r=file.Read(K4GB-10,rbuf);
   215 	r=file.Read(K4GB-10,rbuf);
   216 	test(r==KErrNone);
   216 	test_KErrNone(r);
   217 	r=rbuf.CompareF(KTestData3());
   217 	r=rbuf.CompareF(KTestData3());
   218 	test(r==KErrNone);
   218 	test_KErrNone(r);
   219 	r=file.Write(KTestData1());
   219 	r=file.Write(KTestData1());
   220 	test(r==KErrAccessDenied);
   220 	test_Value(r, r==KErrAccessDenied);
   221 	r=file.ChangeMode(EFileWrite);
   221 	r=file.ChangeMode(EFileWrite);
   222 	test(r==KErrArgument);
   222 	test_Value(r, r==KErrArgument);
   223 	r=file.Rename(_L("\\newname.txt"));
   223 	r=file.Rename(_L("\\newname.txt"));
   224 	test(r==KErrPermissionDenied || r==KErrAccessDenied);
   224 	test_Value(r, r==KErrPermissionDenied || r==KErrAccessDenied);
   225 	file.Close();
   225 	file.Close();
   226 
   226 
   227 	aMsg.Complete(KErrNone);
   227 	aMsg.Complete(KErrNone);
   228 	}
   228 	}
   229 	
   229 	
   235 	{
   235 	{
   236 	test.Next(_L("RFile64::AdoptFromCreator()"));
   236 	test.Next(_L("RFile64::AdoptFromCreator()"));
   237 
   237 
   238 	RFile64 file;
   238 	RFile64 file;
   239 	TInt r = file.AdoptFromCreator(1, 2);
   239 	TInt r = file.AdoptFromCreator(1, 2);
   240 	test(r == KErrNone);
   240 	test_KErrNone(r);
   241 
   241 
   242 	TBuf8<3> rbuf;
   242 	TBuf8<3> rbuf;
   243 	r=file.Read(K4GB-10,rbuf,3);
   243 	r=file.Read(K4GB-10,rbuf,3);
   244 	test(r==KErrNone);
   244 	test_KErrNone(r);
   245 	r=rbuf.CompareF(KTestData2());
   245 	r=rbuf.CompareF(KTestData2());
   246 	test(r==KErrNone);
   246 	test_KErrNone(r);
   247 
   247 
   248 	test.Next(_L("RFile::Rename()"));
   248 	test.Next(_L("RFile::Rename()"));
   249 
   249 
   250 	// define a filename in our private path
   250 	// define a filename in our private path
   251 	RFs fs;
   251 	RFs fs;
   252 	r=fs.Connect();
   252 	r=fs.Connect();
   253 	test(r==KErrNone);
   253 	test_KErrNone(r);
   254 
   254 
   255 	TFileName sessionp;
   255 	TFileName sessionp;
   256 	fs.SessionPath(sessionp);
   256 	fs.SessionPath(sessionp);
   257 	r = fs.MkDirAll(sessionp);
   257 	r = fs.MkDirAll(sessionp);
   258 	test(r==KErrNone || r==KErrAlreadyExists);
   258 	test_Value(r, r==KErrNone || r==KErrAlreadyExists);
   259 
   259 
   260 	r=fs.ShareProtected();
   260 	r=fs.ShareProtected();
   261 	test(r==KErrNone);
   261 	test_KErrNone(r);
   262 
   262 
   263 	r=fs.CreatePrivatePath(gTestDrive);
   263 	r=fs.CreatePrivatePath(gTestDrive);
   264 	test(r==KErrNone);
   264 	test_KErrNone(r);
   265 	r=fs.SetSessionToPrivate(gTestDrive);
   265 	r=fs.SetSessionToPrivate(gTestDrive);
   266 	test(r==KErrNone);
   266 	test_KErrNone(r);
   267 
   267 
   268 	TPath newPath;
   268 	TPath newPath;
   269 	fs.PrivatePath(newPath);
   269 	fs.PrivatePath(newPath);
   270 	TFileName newFileName;
   270 	TFileName newFileName;
   271 	newFileName = newPath;
   271 	newFileName = newPath;
   272 	newFileName.Append(_L("newname.txt"));
   272 	newFileName.Append(_L("newname.txt"));
   273 	
   273 	
   274 	// delete the file before we try to rename anything to it
   274 	// delete the file before we try to rename anything to it
   275 	r = fs.Delete(newFileName);
   275 	r = fs.Delete(newFileName);
   276 	test(r == KErrNone || r == KErrNotFound);
   276 	test_Value(r, r == KErrNone || r == KErrNotFound);
   277 
   277 
   278 	TFileName fileName;
   278 	TFileName fileName;
   279 	r = file.FullName(fileName);
   279 	r = file.FullName(fileName);
   280 	test (r == KErrNone);
   280 	test_KErrNone(r);
   281 	
   281 	
   282 	r=file.Rename(newFileName);
   282 	r=file.Rename(newFileName);
   283 	test(r==KErrNone);
   283 	test_KErrNone(r);
   284 
   284 
   285 	file.Close();
   285 	file.Close();
   286 
   286 
   287 	// Next verify that we can delete the file (which should now 
   287 	// Next verify that we can delete the file (which should now 
   288 	// have been moved to our private directory)
   288 	// have been moved to our private directory)
   289 	test.Next(_L("RFs::Delete()"));
   289 	test.Next(_L("RFs::Delete()"));
   290 	r = fs.Delete(newFileName);
   290 	r = fs.Delete(newFileName);
   291 	test(r == KErrNone);
   291 	test_KErrNone(r);
   292 
   292 
   293 	fs.Close();
   293 	fs.Close();
   294 
   294 
   295 	
   295 	
   296 	aMsg.Complete(KErrNone);
   296 	aMsg.Complete(KErrNone);
   374 
   374 
   375 	CActiveScheduler::Start();
   375 	CActiveScheduler::Start();
   376 
   376 
   377 	RFs cleanupfs;
   377 	RFs cleanupfs;
   378 	TInt r = cleanupfs.Connect();
   378 	TInt r = cleanupfs.Connect();
   379 	test(r==KErrNone);
   379 	test_KErrNone(r);
   380 	r=cleanupfs.SetSessionToPrivate(gTestDrive);
   380 	r=cleanupfs.SetSessionToPrivate(gTestDrive);
   381 	test(r==KErrNone);
   381 	test_KErrNone(r);
   382 	r=cleanupfs.Delete(KSvrFileName);
   382 	r=cleanupfs.Delete(KSvrFileName);
   383 	test(r==KErrNone || r==KErrNotFound);
   383 	test_Value(r, r==KErrNone || r==KErrNotFound);
   384 	cleanupfs.Close();
   384 	cleanupfs.Close();
   385 
   385 
   386 
   386 
   387 	test.End();
   387 	test.End();
   388 
   388 
   391 	delete cleanup;
   391 	delete cleanup;
   392 
   392 
   393 	// Sanity check for open handles and pending requests
   393 	// Sanity check for open handles and pending requests
   394 	TInt end_thc, end_phc;
   394 	TInt end_thc, end_phc;
   395 	RThread().HandleCount(end_phc, end_thc);
   395 	RThread().HandleCount(end_phc, end_thc);
   396 	test(start_thc == end_thc);
   396 	test_Value(start_thc, start_thc == end_thc);
   397 	test(start_phc == end_phc);
   397 	test_Value(start_phc, start_phc == end_phc);
   398 	test(RThread().RequestCount() == 0);
   398 	test_Value(RThread().RequestCount(), RThread().RequestCount() == 0);
   399 	
   399 	
   400 	return 0;
   400 	return 0;
   401 	}
   401 	}