kerneltest/f32test/server/t_fsy2k.cpp
changeset 109 b3a1d9898418
parent 0 a41df078684a
child 257 3e88ff8f41d5
equal deleted inserted replaced
102:ef2a444a7410 109:b3a1d9898418
    13 // Description:
    13 // Description:
    14 // f32test\server\t_fsy2k.cpp
    14 // f32test\server\t_fsy2k.cpp
    15 // 
    15 // 
    16 //
    16 //
    17 
    17 
       
    18 #define __E32TEST_EXTENSION__
    18 #include <f32file.h>
    19 #include <f32file.h>
    19 #include <e32test.h>
    20 #include <e32test.h>
    20 #include "t_server.h"
    21 #include "t_server.h"
    21 #include <e32hal.h>
    22 #include <e32hal.h>
    22 #include <e32math.h>
    23 #include <e32math.h>
    34 //
    35 //
    35 	{	
    36 	{	
    36 	MakeFile(_L("Y2KTEST.tst"));
    37 	MakeFile(_L("Y2KTEST.tst"));
    37 	
    38 	
    38 	TInt r=TheFs.SetEntry(_L("Y2KTEST.tst"),*aTime,KEntryAttHidden,KEntryAttArchive);
    39 	TInt r=TheFs.SetEntry(_L("Y2KTEST.tst"),*aTime,KEntryAttHidden,KEntryAttArchive);
    39 	test(r==KErrNone);
    40 	test_KErrNone(r);
    40 	
    41 	
    41 	TEntry entry;
    42 	TEntry entry;
    42 	r=TheFs.Entry(_L("Y2KTEST.tst"),entry);
    43 	r=TheFs.Entry(_L("Y2KTEST.tst"),entry);
    43 	test(r==KErrNone);
    44 	test_KErrNone(r);
    44 
    45 
    45 	TDateTime checkDateTime=(entry.iModified).DateTime();
    46 	TDateTime checkDateTime=(entry.iModified).DateTime();
    46 	test(checkDateTime.Year()==aDateTime->Year());
    47 	test(checkDateTime.Year()==aDateTime->Year());
    47 	if (validDate)
    48 	if (validDate)
    48 		{
    49 		{
    57 	
    58 	
    58 	(entry.iModified).FormatL(gDateBuf,_L("%*D%X%N%Y %1 %2 %3"));
    59 	(entry.iModified).FormatL(gDateBuf,_L("%*D%X%N%Y %1 %2 %3"));
    59 	test.Printf(_L("Valid date: %S\n"),&gDateBuf);
    60 	test.Printf(_L("Valid date: %S\n"),&gDateBuf);
    60 		
    61 		
    61 	r=TheFs.Delete(_L("Y2KTEST.tst"));
    62 	r=TheFs.Delete(_L("Y2KTEST.tst"));
    62 	test(r==KErrNone);
    63 	test_KErrNone(r);
    63 
    64 
    64 	MakeDir(_L("\\Y2KTEST\\"));
    65 	MakeDir(_L("\\Y2KTEST\\"));
    65 	r=TheFs.SetEntry(_L("\\Y2KTEST\\"),*aTime,KEntryAttHidden,KEntryAttArchive);
    66 	r=TheFs.SetEntry(_L("\\Y2KTEST\\"),*aTime,KEntryAttHidden,KEntryAttArchive);
    66 	test(r==KErrNone);
    67 	test_KErrNone(r);
    67 
    68 
    68 	r=TheFs.Entry(_L("\\Y2KTEST\\"),entry);
    69 	r=TheFs.Entry(_L("\\Y2KTEST\\"),entry);
    69 	test(r==KErrNone);
    70 	test_KErrNone(r);
    70 	
    71 	
    71 	checkDateTime=(entry.iModified).DateTime();
    72 	checkDateTime=(entry.iModified).DateTime();
    72 	test(checkDateTime.Year()==aDateTime->Year());
    73 	test(checkDateTime.Year()==aDateTime->Year());
    73 	if (validDate)
    74 	if (validDate)
    74 		{
    75 		{
    83 	
    84 	
    84 	(entry.iModified).FormatL(gDateBuf,_L("%*D%X%N%Y %1 %2 %3"));
    85 	(entry.iModified).FormatL(gDateBuf,_L("%*D%X%N%Y %1 %2 %3"));
    85 	test.Printf(_L("Valid date: %S\n"),&gDateBuf);
    86 	test.Printf(_L("Valid date: %S\n"),&gDateBuf);
    86 
    87 
    87 	r=TheFs.RmDir(_L("\\Y2KTEST\\"));
    88 	r=TheFs.RmDir(_L("\\Y2KTEST\\"));
    88 	test(r==KErrNone);
    89 	test_KErrNone(r);
    89 	
    90 	
    90 	}
    91 	}
    91 
    92 
    92 
    93 
    93 static void testRFsSetModified(TDateTime* aDateTime, TTime* aTime, TBool validDate)
    94 static void testRFsSetModified(TDateTime* aDateTime, TTime* aTime, TBool validDate)
    96 //
    97 //
    97 	{
    98 	{
    98 	MakeFile(_L("Y2KTEST.tst"));
    99 	MakeFile(_L("Y2KTEST.tst"));
    99 	
   100 	
   100 	TInt r=TheFs.SetModified(_L("Y2KTEST.tst"),*aTime);
   101 	TInt r=TheFs.SetModified(_L("Y2KTEST.tst"),*aTime);
   101 	test(r==KErrNone);
   102 	test_KErrNone(r);
   102 	
   103 	
   103 	TTime check;
   104 	TTime check;
   104 	r=TheFs.Modified(_L("Y2KTEST.tst"),check);
   105 	r=TheFs.Modified(_L("Y2KTEST.tst"),check);
   105 	test(r==KErrNone);
   106 	test_KErrNone(r);
   106 		
   107 		
   107 	TDateTime checkDateTime=check.DateTime();
   108 	TDateTime checkDateTime=check.DateTime();
   108 	
   109 	
   109 	test(checkDateTime.Year()==aDateTime->Year());
   110 	test(checkDateTime.Year()==aDateTime->Year());
   110 	if (validDate)
   111 	if (validDate)
   121 	
   122 	
   122 	check.FormatL(gDateBuf,_L("%*D%X%N%Y %1 %2 %3"));
   123 	check.FormatL(gDateBuf,_L("%*D%X%N%Y %1 %2 %3"));
   123 	test.Printf(_L("Valid date: %S\n"),&gDateBuf);
   124 	test.Printf(_L("Valid date: %S\n"),&gDateBuf);
   124 		
   125 		
   125 	r=TheFs.Delete(_L("Y2KTEST.tst"));
   126 	r=TheFs.Delete(_L("Y2KTEST.tst"));
   126 	test(r==KErrNone);
   127 	test_KErrNone(r);
   127 
   128 
   128 	MakeDir(_L("\\Y2KTEST\\"));
   129 	MakeDir(_L("\\Y2KTEST\\"));
   129 	r=TheFs.SetModified(_L("\\Y2KTEST\\"),*aTime);
   130 	r=TheFs.SetModified(_L("\\Y2KTEST\\"),*aTime);
   130 	test(r==KErrNone);
   131 	test_KErrNone(r);
   131 
   132 
   132 	r=TheFs.Modified(_L("\\Y2KTEST\\"),check);
   133 	r=TheFs.Modified(_L("\\Y2KTEST\\"),check);
   133 	test(r==KErrNone);
   134 	test_KErrNone(r);
   134 	
   135 	
   135 	checkDateTime=check.DateTime();
   136 	checkDateTime=check.DateTime();
   136 	test(checkDateTime.Year()==aDateTime->Year());
   137 	test(checkDateTime.Year()==aDateTime->Year());
   137 	if (validDate)	
   138 	if (validDate)	
   138 		{
   139 		{
   147 
   148 
   148 	check.FormatL(gDateBuf,_L("%*D%X%N%Y %1 %2 %3"));
   149 	check.FormatL(gDateBuf,_L("%*D%X%N%Y %1 %2 %3"));
   149 	test.Printf(_L("Valid date: %S\n"),&gDateBuf);
   150 	test.Printf(_L("Valid date: %S\n"),&gDateBuf);
   150 
   151 
   151 	r=TheFs.RmDir(_L("\\Y2KTEST\\"));
   152 	r=TheFs.RmDir(_L("\\Y2KTEST\\"));
   152 	test(r==KErrNone);
   153 	test_KErrNone(r);
   153 	}
   154 	}
   154 
   155 
   155 	
   156 	
   156 static void testRFileSet(TDateTime* aDateTime, TTime* aTime, TBool validDate)
   157 static void testRFileSet(TDateTime* aDateTime, TTime* aTime, TBool validDate)
   157 //
   158 //
   158 // Test RFile::Set() and RFile::Modified()
   159 // Test RFile::Set() and RFile::Modified()
   159 //
   160 //
   160 	{
   161 	{
   161 	RFile file;
   162 	RFile file;
   162 	TInt r=file.Replace(TheFs,_L("Y2KTEST.tst"),0);
   163 	TInt r=file.Replace(TheFs,_L("Y2KTEST.tst"),0);
   163 	test(r==KErrNone || r==KErrPathNotFound);	
   164 	test_Value(r, r == KErrNone || r==KErrPathNotFound);	
   164 		
   165 		
   165 	r=file.Set(*aTime,KEntryAttHidden,KEntryAttNormal);
   166 	r=file.Set(*aTime,KEntryAttHidden,KEntryAttNormal);
   166 	test(r==KErrNone);
   167 	test_KErrNone(r);
   167 	file.Close();
   168 	file.Close();
   168 	
   169 	
   169 	TTime check;
   170 	TTime check;
   170 	file.Open(TheFs,_L("Y2KTEST.tst"),EFileWrite);
   171 	file.Open(TheFs,_L("Y2KTEST.tst"),EFileWrite);
   171 	r=file.Modified(check);
   172 	r=file.Modified(check);
   172 	test(r==KErrNone);
   173 	test_KErrNone(r);
   173 	file.Close();
   174 	file.Close();
   174 		
   175 		
   175 	test.Printf(_L("Date set to "));
   176 	test.Printf(_L("Date set to "));
   176 	test.Printf(_L("Day %d "),aDateTime->Day());
   177 	test.Printf(_L("Day %d "),aDateTime->Day());
   177 	test.Printf(_L("Month %d "),aDateTime->Month());
   178 	test.Printf(_L("Month %d "),aDateTime->Month());
   221 // Test RFile::SetModified() and RFile::Modified()
   222 // Test RFile::SetModified() and RFile::Modified()
   222 //
   223 //
   223 	{
   224 	{
   224 	RFile file;
   225 	RFile file;
   225 	TInt r=file.Replace(TheFs,_L("Y2KTEST.tst"),0);
   226 	TInt r=file.Replace(TheFs,_L("Y2KTEST.tst"),0);
   226 	test(r==KErrNone || r==KErrPathNotFound);	
   227 	test_Value(r, r == KErrNone || r==KErrPathNotFound);	
   227 
   228 
   228 	r=file.SetModified(*aTime);
   229 	r=file.SetModified(*aTime);
   229 	test(r==KErrNone);
   230 	test_KErrNone(r);
   230 	file.Close();
   231 	file.Close();
   231 	
   232 	
   232 	TTime check;
   233 	TTime check;
   233 	file.Open(TheFs,_L("Y2KTEST.tst"),EFileWrite);
   234 	file.Open(TheFs,_L("Y2KTEST.tst"),EFileWrite);
   234 	r=file.Modified(check);
   235 	r=file.Modified(check);
   235 	test(r==KErrNone);
   236 	test_KErrNone(r);
   236 	file.Close();
   237 	file.Close();
   237 		
   238 		
   238 	TDateTime checkDateTime=check.DateTime();
   239 	TDateTime checkDateTime=check.DateTime();
   239 	
   240 	
   240 	test(checkDateTime.Year()==aDateTime->Year());
   241 	test(checkDateTime.Year()==aDateTime->Year());
   264 	MakeFile(_L("Y2KTEST.tst"));
   265 	MakeFile(_L("Y2KTEST.tst"));
   265 	
   266 	
   266 	CFileMan* fileMan=CFileMan::NewL(TheFs);
   267 	CFileMan* fileMan=CFileMan::NewL(TheFs);
   267 		
   268 		
   268 	TInt r=fileMan->Attribs(_L("Y2KTEST.tst"),KEntryAttHidden,KEntryAttNormal,*aTime);
   269 	TInt r=fileMan->Attribs(_L("Y2KTEST.tst"),KEntryAttHidden,KEntryAttNormal,*aTime);
   269 	test(r==KErrNone);
   270 	test_KErrNone(r);
   270 		
   271 		
   271 	TEntry entry;
   272 	TEntry entry;
   272 	r=TheFs.Entry(_L("Y2KTEST.tst"),entry);
   273 	r=TheFs.Entry(_L("Y2KTEST.tst"),entry);
   273 	test(r==KErrNone);
   274 	test_KErrNone(r);
   274 	
   275 	
   275 	TTime check=entry.iModified;	
   276 	TTime check=entry.iModified;	
   276 	TDateTime checkDateTime=check.DateTime();
   277 	TDateTime checkDateTime=check.DateTime();
   277 	
   278 	
   278 	test(checkDateTime.Year()==aDateTime->Year());
   279 	test(checkDateTime.Year()==aDateTime->Year());
   290 	
   291 	
   291 	check.FormatL(gDateBuf,_L("%*D%X%N%Y %1 %2 %3"));
   292 	check.FormatL(gDateBuf,_L("%*D%X%N%Y %1 %2 %3"));
   292 	test.Printf(_L("Valid date: %S\n"),&gDateBuf);
   293 	test.Printf(_L("Valid date: %S\n"),&gDateBuf);
   293 
   294 
   294 	r=TheFs.Delete(_L("Y2KTEST.tst"));
   295 	r=TheFs.Delete(_L("Y2KTEST.tst"));
   295 	test(r==KErrNone);
   296 	test_KErrNone(r);
   296 
   297 
   297 	delete fileMan;
   298 	delete fileMan;
   298 	}
   299 	}
   299 
   300 
   300 //	Valid dates to be tested for year 2000 compliance
   301 //	Valid dates to be tested for year 2000 compliance
   491 	tempDateTime=aDateTime;
   492 	tempDateTime=aDateTime;
   492 	tempTime=aTime;
   493 	tempTime=aTime;
   493 	for (i=0;i<KMaxValidDateTimes;i++)
   494 	for (i=0;i<KMaxValidDateTimes;i++)
   494 		{
   495 		{
   495 		TRAPD(error,testCFileManAttribsL(tempDateTime, tempTime, ETrue));
   496 		TRAPD(error,testCFileManAttribsL(tempDateTime, tempTime, ETrue));
   496 		test(error==KErrNone);
   497 		test_KErrNone(error);
   497 		tempDateTime++;
   498 		tempDateTime++;
   498 		tempTime++;
   499 		tempTime++;
   499 		}
   500 		}
   500 	}
   501 	}
   501 
   502 
   564 	tempTime=aTime;
   565 	tempTime=aTime;
   565 	for (i=0;i<KMaxInvalidDateTimes;i++)
   566 	for (i=0;i<KMaxInvalidDateTimes;i++)
   566 		{
   567 		{
   567 		test.Printf(_L("Invalid date: %S\n"),&invalidDates[i]);
   568 		test.Printf(_L("Invalid date: %S\n"),&invalidDates[i]);
   568 		TRAPD(error,testCFileManAttribsL(tempDateTime, tempTime, EFalse));	
   569 		TRAPD(error,testCFileManAttribsL(tempDateTime, tempTime, EFalse));	
   569 		test(error==KErrNone);
   570 		test_KErrNone(error);
   570 		tempDateTime++;
   571 		tempDateTime++;
   571 		tempTime++;
   572 		tempTime++;
   572 		}
   573 		}
   573 	}
   574 	}
   574 
   575 
   588 
   589 
   589 	for (;i<KMaxValidDateTimes;i++)
   590 	for (;i<KMaxValidDateTimes;i++)
   590 		{
   591 		{
   591 	//	Dummy time is used to initialise validDateTime[i] before calling SetX()
   592 	//	Dummy time is used to initialise validDateTime[i] before calling SetX()
   592 		r=validDateTime[i].Set(1998,EJune,23,11,11,11,0);
   593 		r=validDateTime[i].Set(1998,EJune,23,11,11,11,0);
   593 		test(r==KErrNone);
   594 		test_KErrNone(r);
   594 		r=validDateTime[i].SetYear(testYearValid[i]);
   595 		r=validDateTime[i].SetYear(testYearValid[i]);
   595 		test(r==KErrNone);
   596 		test_KErrNone(r);
   596 		r=validDateTime[i].SetMonth(testMonthValid[i]);
   597 		r=validDateTime[i].SetMonth(testMonthValid[i]);
   597 		test(r==KErrNone);
   598 		test_KErrNone(r);
   598 		r=validDateTime[i].SetDay(testDayValid[i]);
   599 		r=validDateTime[i].SetDay(testDayValid[i]);
   599 		test(r==KErrNone);
   600 		test_KErrNone(r);
   600 		validTime[i]=validDateTime[i];
   601 		validTime[i]=validDateTime[i];
   601 		}
   602 		}
   602 
   603 
   603 //	Set up an array of invalid TDateTimes and TTimes to be tested for Y2K compliance
   604 //	Set up an array of invalid TDateTimes and TTimes to be tested for Y2K compliance
   604 
   605 
   608 
   609 
   609 	for (i=0;i<KMaxInvalidDateTimes;i++)
   610 	for (i=0;i<KMaxInvalidDateTimes;i++)
   610 		{
   611 		{
   611 	//	Dummy time is used to initialise validDateTime[i] before calling SetX()
   612 	//	Dummy time is used to initialise validDateTime[i] before calling SetX()
   612 		r=invalidDateTime[i].Set(1998,EJune,22,11,11,11,0);
   613 		r=invalidDateTime[i].Set(1998,EJune,22,11,11,11,0);
   613 		test(r==KErrNone);
   614 		test_KErrNone(r);
   614 		r=invalidDateTime[i].SetYear(testYearInvalid[i]);
   615 		r=invalidDateTime[i].SetYear(testYearInvalid[i]);
   615 		test(r==KErrNone);
   616 		test_KErrNone(r);
   616 		r=invalidDateTime[i].SetMonth(testMonthInvalid[i]);
   617 		r=invalidDateTime[i].SetMonth(testMonthInvalid[i]);
   617 		test(r==KErrNone);
   618 		test_KErrNone(r);
   618 		r=invalidDateTime[i].SetDay(testDayInvalid[i]);
   619 		r=invalidDateTime[i].SetDay(testDayInvalid[i]);
   619 		test(r==KErrGeneral);		//	This will fail because it is an invalid date
   620 		test_Value(r, r == KErrGeneral);		//	This will fail because it is an invalid date
   620 		r=invalidDateTime[i].SetDay(testDayInvalid[i]-1);
   621 		r=invalidDateTime[i].SetDay(testDayInvalid[i]-1);
   621 		test(r==KErrNone);			//	Set it one day less 
   622 		test_KErrNone(r);			//	Set it one day less 
   622 		invalidTime[i]=invalidDateTime[i];
   623 		invalidTime[i]=invalidDateTime[i];
   623 		invalidTime[i]+=extraDay;	//	Add on an extra day.  This should bump the
   624 		invalidTime[i]+=extraDay;	//	Add on an extra day.  This should bump the
   624 		}							//	date onto the next month, NOT set the day
   625 		}							//	date onto the next month, NOT set the day
   625 									//	to the invalid date in invalidDateTime[i]
   626 									//	to the invalid date in invalidDateTime[i]
   626 										
   627 										
   633 // Do testing on aDrive
   634 // Do testing on aDrive
   634 //
   635 //
   635 	{
   636 	{
   636 
   637 
   637 	TInt r=TheFs.MkDirAll(_L("\\F32-TST\\YEAR 2000 TESTS\\"));
   638 	TInt r=TheFs.MkDirAll(_L("\\F32-TST\\YEAR 2000 TESTS\\"));
   638 	test(r==KErrNone || r==KErrAlreadyExists);
   639 	test_Value(r, r == KErrNone || r==KErrAlreadyExists);
   639 	TRAP(r,CallTests());
   640 	TRAP(r,CallTests());
   640 	if (r==KErrNone)
   641 	if (r==KErrNone)
   641 		TheFs.ResourceCountMarkEnd();
   642 		TheFs.ResourceCountMarkEnd();
   642 	else
   643 	else
   643 		{
   644 		{
   644 		test.Printf(_L("Error: Leave %d\n"),r);
   645 		test.Printf(_L("Error: Leave %d\n"),r);
   645 		test(0);
   646 		test(0);
   646 		}
   647 		}
   647 	r=TheFs.RmDir(_L("\\F32-TST\\YEAR 2000 TESTS\\"));
   648 	r=TheFs.RmDir(_L("\\F32-TST\\YEAR 2000 TESTS\\"));
   648 	test(r==KErrNone);
   649 	test_KErrNone(r);
   649 	}
   650 	}