kerneltest/f32test/fsstress/remwins.cpp
changeset 0 a41df078684a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kerneltest/f32test/fsstress/remwins.cpp	Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,167 @@
+// Copyright (c) 1997-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\fsstress\remwins.cpp
+// 
+//
+
+#if defined(_UNICODE)
+#if !defined(UNICODE)
+#define UNICODE
+#endif
+#endif
+
+/*
+#define WIN32_LEAN_AND_MEAN
+#pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
+#include <windows.h>
+#pragma warning( default : 4201 ) // nonstandard extension used : nameless struct/union
+#include <stdlib.h>
+*/
+
+#include <f32file.h>
+#include <f32fsys.h>
+#include <f32ver.h>
+
+#include "t_remfsy.h"
+
+
+/*
+#error Following code assumes %EPOCROOT% == '\\'
+#if (defined(_DEBUG) && defined(_UNICODE))
+GLDEF_D const TFileName ZPath=_L("\\EPOC32\\RELEASE\\WINS\\UDEB\\Z");
+#elif defined(_DEBUG)
+GLDEF_D const TFileName ZPath=_L("\\EPOC32\\RELEASE\\WINS\\DEB\\Z");
+#elif defined(_UNICODE)
+GLDEF_D const TFileName ZPath=_L("\\EPOC32\\RELEASE\\WINS\\UREL\\Z");
+#else
+GLDEF_D const TFileName ZPath=_L("\\EPOC32\\RELEASE\\WINS\\REL\\Z");
+#endif
+*/
+
+
+GLDEF_C TBool GetEnvValue(TInt /*aDrive*/,TDes& /*aDes*/)
+//
+// Return a pointer to the value of the environment variable selected by aDrive
+//
+	{
+	return(ETrue);
+	}
+
+GLDEF_C TBool MapDrive(TDes& aFileName,TInt aDrive)
+//
+// Map aDrive to a path given by environment variables
+//
+	{
+	TFileName aName;
+//	TBuf<16> dumName=_L("Dum.txt");
+//	TText* dumPtr;
+///	GetFullPathName((_STRC)dumName.PtrZ(),aName.MaxLength(),(_STR)aName.Ptr(),(_STR*)&dumPtr);
+	aName.SetLength(aName.MaxLength());
+	aFileName=_L("?:");
+	aFileName[0]=aName[0];
+//
+//	TFileName envValue;
+//	if (GetEnvValue(aDrive,envValue))
+//		{
+//		if (envValue.Length()<=0 || envValue[0]!='\\')
+//			aFileName=envValue;
+//		else
+//			aFileName+=envValue;
+//		return(ETrue);
+//		}
+//
+    //switch (aDrive)
+	//	{
+//	case EDriveC:
+//#error Following code assumes %EPOCROOT% == '\\'
+//		aFileName+=_L("\\EPOC32\\WINS\\C");
+//		return(ETrue);
+//	case EDriveZ:
+//		aFileName+=ZPath;
+//		return(ETrue);
+	//default:
+
+	TChar drive;
+	RFs::DriveToChar(aDrive,drive);
+	aFileName=_L("?:");
+	aFileName[0]=(TUint8)drive;
+//	break;
+//		}
+	
+	return(EFalse);
+	}
+
+GLDEF_C TBool MapDriveInfo(TDriveInfo& anInfo,TInt aDrive)
+//
+// Get Fake drive info.
+//
+	{
+
+	if (aDrive==EDriveZ)
+		{
+		anInfo.iType=EMediaRom;
+		anInfo.iMediaAtt=KMediaAttWriteProtected;
+		return(ETrue);
+		}
+	if (aDrive==EDriveC)
+		{
+		anInfo.iType=EMediaHardDisk;
+		anInfo.iMediaAtt=KMediaAttVariableSize|KMediaAttFormattable;
+		return(ETrue);
+		}
+	TFileName envValue;
+	if (GetEnvValue(aDrive,envValue))
+		{
+		anInfo.iType=EMediaRemote;
+		anInfo.iMediaAtt=0;
+		return(ETrue);		
+		}
+	return(EFalse);
+	}
+
+GLDEF_C TBool MapDriveAttributes(TUint& aDriveAtt,TInt aDrive)
+//
+// Get Fake drive attributes.
+//
+	{
+	if (aDrive==EDriveZ)
+		{
+		aDriveAtt=KDriveAttRom|KDriveAttInternal;
+		return(ETrue);
+		}
+	if (aDrive==EDriveC)
+		{
+		aDriveAtt=KDriveAttRemovable|KDriveAttInternal;
+		return(ETrue);
+		}
+	TFileName envValue;
+	if (GetEnvValue(aDrive,envValue))
+		{
+		aDriveAtt=KDriveAttRemote;
+		return(ETrue);		
+		}
+	return(EFalse);
+	}
+
+
+GLDEF_C void CheckAppendL(TDes& aTarget,const TDesC& aSrc)
+//
+// Leaves KErrBadName if aSrc cannot be appended to aTarget
+//
+	{
+
+	if (aTarget.MaxLength()<=aTarget.Length()+aSrc.Length())
+		User::Leave(KErrBadName);
+	}
+