--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/kerneltest/f32test/cfileman/t_cfileman_aux.h Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,398 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// f32test\cfileman\t_cfileman_aux.h
+//
+//
+
+#ifndef T_CFILEMAN_AUX_H
+#define T_CFILEMAN_AUX_H
+
+#include <f32file.h>
+#include <e32test.h>
+#include <hal.h>
+#include "t_server.h"
+
+void RmDir(const TDesC& aDirName);
+TBool CompareL(const TDesC& aDir1,const TDesC& aDir2);
+void SetupDirectories(TBool aCreateFiles, TFileName* aDestOtherDrive);
+void InitialiseL();
+void Cleanup();
+void CleanupFileHandles();
+
+struct TDirSetupFiles;
+
+void ParsingDirDataBlock(TInt aDataBlock[], RArray<TInt>& aFinalDirDataArray);
+void SetupDir(TDesC& aPath, TDirSetupFiles aDirSetupData);
+void SetupDirFiles(const TDesC& aPath, const TDirSetupFiles& aDirFiles);
+
+void PrintDir(const TDesC& aPath, const TChar& aDrv);
+
+///////////////////////////////////////////////////////////////////////////////
+// Files Setup Pattern Definitions
+///////////////////////////////////////////////////////////////////////////////
+static TPtrC gDirPatterns[] =
+ {
+ _L("FILE1.TXT"), // 0
+ _L("FILE2.TXT"), // 1
+ _L("FILE01.TXT"), // 2
+ _L("FILE02.TXT"), // 3
+ _L("FILE.TXT"), // 4
+ _L("OTHER.TXT"), // 5
+ _L("FILE.DAT"), // 6
+ _L("FILE"), // 7
+
+ _L("DIR1\\"), // 8
+
+ _L("DIR1\\FILE1.TXT"), // 9
+ _L("DIR1\\FILE2.TXT"), // 10
+ _L("DIR1\\FILE01.TXT"), // 11
+ _L("DIR1\\FILE02.TXT"), // 12
+ _L("DIR1\\FILE.TXT"), // 13
+ _L("DIR1\\OTHER.TXT"), // 14
+ _L("DIR1\\FILE.DAT"), // 15
+ _L("DIR1\\FILE"), // 16
+
+ _L("DIR2\\"), // 17
+
+ _L("DIR2\\FILE1.TXT"), // 18
+ _L("DIR2\\FILE2.TXT"), // 19
+ _L("DIR2\\FILE01.TXT"), // 20
+ _L("DIR2\\FILE02.TXT"), // 21
+ _L("DIR2\\FILE.TXT"), // 22
+ _L("DIR2\\OTHER.TXT"), // 23
+ _L("DIR2\\FILE.DAT"), // 24
+ _L("DIR2\\FILE"), // 25
+
+
+ _L("DIR1\\DIR11\\"), // 26
+
+ _L("DIR1\\DIR11\\FILE1.TXT"), // 27
+ _L("DIR1\\DIR11\\FILE2.TXT"), // 28
+ _L("DIR1\\DIR11\\FILE01.TXT"), // 29
+ _L("DIR1\\DIR11\\FILE02.TXT"), // 30
+ _L("DIR1\\DIR11\\FILE.TXT"), // 31
+ _L("DIR1\\DIR11\\OTHER.TXT"), // 32
+ _L("DIR1\\DIR11\\FILE.DAT"), // 33
+ _L("DIR1\\DIR11\\FILE"), // 34
+
+
+ _L("DIR1\\DIR12\\"), // 35
+
+ _L("DIR1\\DIR12\\FILE1.TXT"), // 36
+ _L("DIR1\\DIR12\\FILE2.TXT"), // 37
+ _L("DIR1\\DIR12\\FILE01.TXT"), // 38
+ _L("DIR1\\DIR12\\FILE02.TXT"), // 39
+ _L("DIR1\\DIR12\\FILE.TXT"), // 40
+ _L("DIR1\\DIR12\\OTHER.TXT"), // 41
+ _L("DIR1\\DIR12\\FILE.DAT"), // 42
+ _L("DIR1\\DIR12\\FILE"), // 43
+
+ //Special
+ _L("RENAMED.TXT"), //44
+ _L("RENAMED1.TXT"), //45
+ _L("RENAMED2.TXT"), //46
+ _L("RENAMED01.TXT"), //47
+ _L("RENAMED02.TXT"), //48
+ _L("RENAMED.DAT"), //49
+ _L("RENAMED"), //50
+
+ _L("FILE1.REN"), //51
+ _L("FILE2.REN"), //52
+ _L("FILE01.REN"), //53
+ _L("FILE02.REN"), //54
+ _L("FILE.REN"), //55
+ _L("OTHER.REN"), //56
+ _L("RENAMED.REN"), //57
+ _L("RENAMED1.REN"), //58
+ _L("RENAMED2.REN"), //59
+ _L("RENAMED01.REN"), //60
+ _L("RENAMED02.REN"), //61
+ _L("abcEtxt"), //62
+ _L("DIR1\\RENAMED.TXT"), //63
+ _L("DIR1\\RENAMED1.TXT"), //64
+ _L("DIR1\\RENAMED2.TXT"), //65
+ _L("DIR1\\RENAMED01.TXT"), //66
+ _L("DIR1\\RENAMED02.TXT"), //67
+ _L("DIR1\\DIR11\\RENAMED.TXT"), //68
+ _L("DIR1\\DIR11\\RENAMED1.TXT"), //69
+ _L("DIR1\\DIR11\\RENAMED2.TXT"), //70
+ _L("DIR1\\DIR11\\RENAMED01.TXT"), //71
+ _L("DIR1\\DIR11\\RENAMED02.TXT"), //72
+ _L("DIR1\\DIR12\\RENAMED.TXT"), //73
+ _L("DIR1\\DIR12\\RENAMED1.TXT"), //74
+ _L("DIR1\\DIR12\\RENAMED2.TXT"), //75
+ _L("DIR1\\DIR12\\RENAMED01.TXT"), //76
+ _L("DIR1\\DIR12\\RENAMED02.TXT"), //77
+ _L("DIR2\\RENAMED.TXT"), //78
+ _L("DIR2\\RENAMED1.TXT"), //79
+ _L("DIR2\\RENAMED2.TXT"), //80
+ _L("DIR2\\RENAMED01.TXT"), //81
+ _L("DIR2\\RENAMED02.TXT"), //82
+ _L("DIR1\\FILE1.REN"), //83
+ _L("DIR1\\FILE2.REN"), //84
+ _L("DIR1\\FILE01.REN"), //85
+ _L("DIR1\\FILE02.REN"), //86
+ _L("DIR1\\FILE.REN"), //87
+ _L("DIR1\\OTHER.REN"), //88
+ _L("DIR1\\RENAMED.REN"), //89
+ _L("DIR1\\RENAMED1.REN"), //90
+ _L("DIR1\\RENAMED2.REN"), //91
+ _L("DIR1\\RENAMED01.REN"), //92
+ _L("DIR1\\RENAMED02.REN"), //93
+ _L("DIR1\\DIR11\\FILE1.REN"), //94
+ _L("DIR1\\DIR11\\FILE2.REN"), //95
+ _L("DIR1\\DIR11\\FILE01.REN"), //96
+ _L("DIR1\\DIR11\\FILE02.REN"), //97
+ _L("DIR1\\DIR11\\FILE.REN"), //98
+ _L("DIR1\\DIR11\\OTHER.REN"), //99
+ _L("DIR1\\DIR11\\RENAMED.REN"), //100
+ _L("DIR1\\DIR11\\RENAMED1.REN"), //101
+ _L("DIR1\\DIR11\\RENAMED2.REN"), //102
+ _L("DIR1\\DIR11\\RENAMED01.REN"), //103
+ _L("DIR1\\DIR11\\RENAMED02.REN"), //104
+ _L("DIR1\\DIR12\\FILE1.REN"), //105
+ _L("DIR1\\DIR12\\FILE2.REN"), //106
+ _L("DIR1\\DIR12\\FILE01.REN"), //107
+ _L("DIR1\\DIR12\\FILE02.REN"), //108
+ _L("DIR1\\DIR12\\FILE.REN"), //109
+ _L("DIR1\\DIR12\\OTHER.REN"), //110
+ _L("DIR1\\DIR12\\RENAMED.REN"), //111
+ _L("DIR1\\DIR12\\RENAMED1.REN"), //112
+ _L("DIR1\\DIR12\\RENAMED2.REN"), //113
+ _L("DIR1\\DIR12\\RENAMED01.REN"), //114
+ _L("DIR1\\DIR12\\RENAMED02.REN"), //115
+ _L("DIR2\\FILE1.REN"), //116
+ _L("DIR2\\FILE2.REN"), //117
+ _L("DIR2\\FILE01.REN"), //118
+ _L("DIR2\\FILE02.REN"), //119
+ _L("DIR2\\FILE.REN"), //120
+ _L("DIR2\\OTHER.REN"), //121
+ _L("DIR2\\RENAMED.REN"), //122
+ _L("DIR2\\RENAMED1.REN"), //123
+ _L("DIR2\\RENAMED2.REN"), //124
+ _L("DIR2\\RENAMED01.REN"), //125
+ _L("DIR2\\RENAMED02.REN"), //126
+ _L("DIR1\\RENAMED.DAT"), //127
+ _L("DIR1\\DIR11\\RENAMED.DAT"), //128
+ _L("DIR1\\DIR12\\RENAMED.DAT"), //129
+ _L("DIR2\\RENAMED.DAT"), //130
+
+ };
+
+#define EOB -1 // 'End Of Block' tag
+#define CON (EOB - 1) // 'Continue' tag
+#define LAST 130 // Last item's tag
+//...
+
+// Predefined dir data blocks for testing data setup:
+#define ALL {0,CON,LAST,EOB} // Block includes all items
+
+#define EMPTY {EOB} // Empty block
+
+#define BLOCK01 {0,CON,7,EOB}
+#define BLOCK02 {0,CON,4,EOB}
+#define BLOCK03 {0,CON,5,EOB}
+#define BLOCK04 {0,CON,7,9,CON,16,18,CON,25,27,CON,34,36,CON,43,EOB}// Src\\*
+#define BLOCK05 {0,CON,4,9,CON,13,18,CON,22,27,CON,31,36,CON,40,EOB}// Src\\FILE*.TXT
+#define BLOCK06 {0,1,9,10,18,19,27,28,36,37,EOB}// Src\\FILE?.TXT
+#define BLOCK07 {0,CON,5,9,CON,14,18,CON,23,27,CON,32,36,CON,41,EOB}//Src\\*.TXT
+#define BLOCK08 {4,6,13,15,22,24,31,33,40,42,55,EOB}//Src\\FILE.*
+#define BLOCK09 {8,CON,16,26,CON,43,EOB}
+#define BLOCK10 {26,CON,34,EOB}
+#define BLOCK11 {9,CON,16,26,CON,43,EOB}
+#define BLOCK12 {9,CON,16,EOB}
+#define BLOCK13 {0,CON,3,EOB}
+#define BLOCK14 {0,1,EOB}
+#define BLOCK15 {0,1,8,9,10,17,18,19,26,27,28,35,36,37,EOB}
+#define BLOCK16 {5,8,14,17,23,26,32,35,41,EOB}
+#define BLOCK17 {3,8,12,17,21,26,30,35,39,EOB}
+#define BLOCK18 {8,CON,16,EOB}
+#define BLOCK19 {51,CON,61,EOB}
+#define BLOCK20 {0,CON,5,44,CON,48,EOB}
+#define BLOCK21 {0,CON,25,35,CON,61,EOB}
+#define BLOCK22 {9,CON,63,EOB}
+#define BLOCK23 {63,CON,71}
+#define BLOCK24 {0,CON,7,44,CON,62,EOB}
+#define BLOCK25 {0,CON,7,9,CON,16,18,CON,25,27,CON,34,36,CON,62,EOB}
+#define BLOCK26 {0,CON,5,9,CON,14,18,CON,23,27,CON,32,36,CON,41,44,CON,48,EOB}
+#define BLOCK27 {4,6,13,15,22,24,31,33,40,42,55,EOB}
+#define BLOCK28 {8,CON,43,EOB}
+#define BLOCK29 {0,CON,5,44,CON,48,EOB}
+#define BLOCK30 {44,8,63,17,68,26,73,35,78,EOB}
+#define BLOCK31 {44,CON,48,63,CON,82,EOB}
+#define BLOCK32 {51,CON,61,83,CON,126,EOB}
+#define BLOCK33 {44,49,57,89,100,111,122,127,CON,130,EOB}
+#define BLOCK36 {0,CON,5,9,CON,14,18,CON,23,27,CON,32,36,CON,41,44,CON,48,63,CON,82,EOB}
+#define BLOCK37 {4,6,13,15,22,24,31,33,40,42,55,87,98,109,120,EOB}
+#define BLOCK39 {8,CON,16,26,CON,43,63,CON,77,83,CON,115,127,CON,129,EOB}
+#define BLOCK45 {51,CON,61,83,CON,126,EOB}
+#define BLOCK46 {44,49,57,63,68,73,78,89,100,111,122,127,128,129,130,EOB}
+#define BLOCK47 {44,49,55,57,63,68,73,78,87,89,98,100,109,111,120,122,127,128,129,130,EOB}
+
+#define BLOCK34 {0,CON,5,9,CON,14,18,CON,23,27,CON,32,36,CON,41,44,CON,48,63,CON,82,EOB}
+#define BLOCK35 {4,6,13,15,22,24,31,33,40,42,55,87,98,109,120,EOB}
+#define BLOCK40 {44,49,57,63,68,73,78,89,100,111,122,127,CON,130,EOB}
+#define BLOCK41 {8,CON,16,26,CON,43,63,CON,77,83,CON,115,127,CON,129,EOB}
+#define BLOCK42 {0,CON,7,44,CON,49,51,CON,61,EOB}
+#define BLOCK43 {9,CON,16,26,CON,43,63,CON,77,83,CON,115,127,CON,129,EOB}
+
+///////////////////////////////////////////////////////////////////////////////
+// Data structures for building test case parameters
+///////////////////////////////////////////////////////////////////////////////
+enum TTestingAPI
+ {
+ ECFMDelete,
+ ECFMMove,
+ ECFMRmDir,
+ ECFMCopy,
+ ECFMRename,
+ ECFMCopyHandle,
+ ECFMAttribs,
+ };
+
+struct TDirSetupFiles
+ {
+ TInt iAddingBlock[25];
+ TInt iDeductBlock[25];
+ };
+// Basic Testing Parameters
+struct TTestParamBasic
+ {
+ TUint iTestCaseID;
+ TTestingAPI iAPI;
+ TUint iSwitch;
+ TInt iSyncReturn;
+ TInt iAsyncReturn;
+ TInt iAsyncStatus;
+ };
+
+// Basic Presettings Parameters
+struct TTestParamBasicPrs
+ {
+ TChar* iDrvChar;
+ TText16* iCmdPath;
+ TText16* iPrsPath;
+ TDirSetupFiles iPrsFiles;
+ TText16* iCmpPath;
+ TDirSetupFiles iCmpFiles;
+ };
+
+// Presettings with file open mode
+struct TTestParamPrsFileOpen
+ {
+ TTestParamBasicPrs iBasicPrs;
+ TBool iFileOpen;
+ };
+
+// Presettings with file attribs and modified time
+struct TTestParamPrsAttribsTime
+ {
+ TTestParamBasicPrs iBasicPrs;
+ TUint iAttribsSet;
+ TTime iTime;
+ };
+
+
+///////////////////////////////////////////////////////////
+// Test case data structures
+///////////////////////////////////////////////////////////
+struct TTestCaseUnitaryBasic
+ {
+ TTestParamBasic iBasic;
+ TTestParamBasicPrs iSrcPrsBasic;
+ };
+
+struct TTestCaseBinaryBasic
+ {
+ TTestParamBasic iBasic;
+ TTestParamBasicPrs iSrcPrsBasic;
+ TTestParamBasicPrs iTrgPrsBasic;
+ };
+
+struct TTestCaseUnitaryFileOpen
+ {
+ TTestParamBasic iBasic;
+ TTestParamPrsFileOpen iSrcPrsFO;
+ };
+
+struct TTestCaseBinaryFileOpen
+ {
+ TTestParamBasic iBasic;
+ TTestParamPrsFileOpen iSrcPrsFO;
+ TTestParamPrsFileOpen iTrgPrsFO;
+ };
+
+struct TTestCaseUnitaryAttribTime
+ {
+ TTestParamBasic iBasic;
+ TUint iSetAttribs;
+ TUint iClearAttribs;
+ TTestParamPrsAttribsTime iSrcPrsAT;
+ };
+
+struct TTestCaseBinaryAttribTime
+ {
+ TTestParamBasic iBasic;
+ TTestParamPrsAttribsTime iSrcPrsAT;
+ TTestParamPrsAttribsTime iTrgPrsAT;
+ };
+
+////////////////////////////////////////////////////////////
+// An interface between test framework and test cases
+////////////////////////////////////////////////////////////
+class TTestParamAll
+ {
+public:
+ TUint iTestCaseID;
+ TTestingAPI iAPI;
+ TUint iSwitch;
+ TInt iSyncReturn;
+ TInt iAsyncReturn;
+ TInt iAsyncStatus;
+
+ TUint iSetAttribs;
+ TUint iClearAttribs;
+ TTime iSetModified;
+
+ TChar* iSrcDrvChar;
+ TPtrC iSrcCmdPath;
+
+ TPtrC iSrcPrsPath;
+ TDirSetupFiles iSrcPrsFiles;
+ TUint iSrcPrsAttribs;
+ TTime iSrcPrsTime;
+ TBool iSrcPrsFileOpen;
+
+ TPtrC iSrcCmpPath;
+ TDirSetupFiles iSrcCmpFiles;
+ TUint iSrcCmpAttribs;
+ TTime iSrcCmpTime;
+ TBool iSrcCmpFileOpen;
+
+ TChar* iTrgDrvChar;
+ TPtrC iTrgCmdPath;
+
+ TPtrC iTrgPrsPath;
+ TDirSetupFiles iTrgPrsFiles;
+ TUint iTrgPrsAttribs;
+ TTime iTrgPrsTime;
+ TBool iTrgPrsFileOpen;
+
+ TPtrC iTrgCmpPath;
+ TDirSetupFiles iTrgCmpFiles;
+ TUint iTrgCmpAttribs;
+ TTime iTrgCmpTime;
+ TBool iTrgCmpFileOpen;
+ };
+#endif /*T_CFILEMAN_AUX_H*/