--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/kerneltest/f32test/concur/t_cfssoak.h Thu Dec 17 09:24:54 2009 +0200
@@ -0,0 +1,123 @@
+// Copyright (c) 1996-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:
+//
+
+//! @file f32test\concur\t_cfssoak.h
+
+#ifndef __T_CFSSOAK_H__
+#define __T_CFSSOAK_H__
+
+#include <f32file.h>
+#include <e32test.h>
+#include "t_server.h"
+#include "t_tdebug.h"
+
+class TSoakStats
+/// Collect and print statistics.
+ {
+public:
+ TSoakStats() : iTotal(0), iFail(0), iThis(0), iThisF(0) {}
+ static void Print();
+ void Print(const TDesC& aTitle);
+ void Inc();
+ void Fail();
+
+public:
+ TInt iTotal;
+ TInt iFail;
+ TInt iThis;
+ TInt iThisF;
+ };
+
+class TSoakReadOnly
+/// Tests for reading and scanning drives and directories.
+ {
+public:
+ TSoakReadOnly();
+ TSoakReadOnly(TInt aDrive);
+ ~TSoakReadOnly();
+ TInt ReadFile(const TDesC& aName, TInt aSize);
+ TInt ScanDirs(TInt aDrive, TInt aReadInterval);
+ TInt ScanDirFunc(CDirScan* aScanner, TInt aDrive, TInt aReadInterval);
+ TInt ScanDrives(TBool aScanDirs, TInt aReadInterval);
+ void ExcludeDrive(TInt aDrive);
+
+public:
+ TSoakStats iDrives; ///< Statistics of number of drives scanned.
+ TSoakStats iDirs; ///< Statistics of number of directories scanned.
+ TSoakStats iFiles; ///< Statistics of number of files found.
+ TSoakStats iReads; ///< statistics of number of files read.
+
+private:
+ TInt64 iSeed;
+ TInt iDrive;
+ RFs iFs;
+ };
+
+class TSoakFill
+/// Tests filling and cleaning a drive.
+ {
+public:
+ TSoakFill();
+ TInt SetDrive(TInt aDrive);
+ TInt FillDrive();
+ TInt CleanDrive();
+ TInt Fill(TFileName& aName, TInt aNfiles=0);
+
+private:
+ TInt64 iSeed;
+ TInt64 iFree;
+ TInt iDrive;
+ TInt iDrvCh;
+ RFs iFs;
+ TFileName iName;
+ TVolumeInfo iInfo;
+ };
+
+const TInt KSoakNumBuf = 10; ///< Number of buffers to be written.
+const TInt KSoakBufLen = 0x100; ///< Length of each buffer.
+
+class TSoakRemote
+/// Tests on a 'remote' (special delaying) filesystem.
+ {
+public:
+ TSoakRemote(TInt aDrive);
+ void Remount(TBool aSync);
+ TInt TestSession();
+ TInt TestSubSession();
+ TInt TestMount();
+
+private:
+ void Setup();
+
+private:
+ TInt iDrive;
+ TInt iDrvCh;
+ TBool iSync;
+ RFs iFs;
+ RFile iFile;
+ RTimer iTimer;
+ TFileName iName;
+ TBuf8<KSoakBufLen> iBuff[KSoakNumBuf];
+ TRequestStatus iStat[KSoakNumBuf];
+ };
+
+struct TExtension
+ {
+ TFullName iName;
+ TBool iExists;
+ };
+
+
+#endif