windowing/windowserver/tauto/TBUFFERSECURITY.H
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/tauto/TBUFFERSECURITY.H	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,132 @@
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+// DEF075471 buffer security test
+// 
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+#ifndef __TBUFFERSECURITY_H__
+#define __TBUFFERSECURITY_H__
+
+#include "AUTO.H"
+#include "../tlib/testbase.h"
+#include <w32std.h>
+#include "../SERVER/w32cmd.h"
+
+#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NONNGA
+#include "../nonnga/CLIENT/w32comm.h"
+#endif
+
+#ifdef TEST_GRAPHICS_WSERV_TAUTOSERVER_NGA
+#include "../nga/CLIENT/w32comm.h"
+#endif
+
+#include <e32property.h>
+#include "TGraphicsHarness.h"
+
+//Set this #define to add extra logging to this test case (useful when debugging a test fail)
+//#define _TBUFS_LOGGING
+
+//Set this #define to initiate a long running soak test, this should be done periodically
+//#define _TBUFS_TEST_SOAK_TEST
+
+#ifdef _TBUFS_LOGGING
+#define TBufSStartLogText StartLogText
+#define TBufSLogText LogText
+#define TBufSLogFormat LogFormat
+#else
+#define TBufSStartLogText
+#define TBufSLogText
+#define TBufSLogFormat
+#endif
+
+LOCAL_D const TUint KPanicThreadHeapSize=0x4000;
+
+_LIT(KLitKernExec, "KERN-EXEC");
+_LIT(KTestName, "DEF086238 Buffer Security Test");
+static _LIT_SECURITY_POLICY_PASS(KAllowAllPolicy);
+static _LIT_SECURITY_POLICY_C1(KWriteDeviceDataMgmtPolicy,ECapabilityWriteDeviceData);
+const TInt KTestDataMax = 256;
+const TInt KTestDataMax32 = KTestDataMax/4;
+
+struct TTestThreadData
+	{
+	TInt iOpCode;
+	union
+		{
+		TUint8 iData[KTestDataMax];
+		TUint32 iData32[KTestDataMax32];
+		};
+	TInt iDataLength;
+	};
+
+enum KBufSecTestType
+	{
+	EBufSecUnInitialised,
+	EBufSecRandom,
+	EBufSecZero
+	};
+
+union TTestDataStore
+	{
+	TAny *any;
+	TWsClCmdSetPointerCursorArea* cursorArea;
+	TWsClCmdHeapSetFail *heapSetFail;
+	TXYInputType *xyInputType;
+	};
+
+class CTBufferSecurity : public CTWsGraphicsBase
+	{
+public:
+	CTBufferSecurity(CTestStep* aStep);
+	~CTBufferSecurity();
+	void TestWsBufferL(TInt aOpCode, TUint aDataFill, TBool aEightBit=ETrue);
+	void TestBadStringAnimDllL();
+	void TestBadStringL();
+	void TestBadIpcL();
+	void ConstructL();
+protected:
+//from 	CTGraphicsStep
+	virtual void RunTestCaseL(TInt aCurTestCase);
+private:
+	void TestBufferSecurityL();
+	};
+
+class RTestIpcSession : public RSessionBase
+	{
+public:
+	inline RTestIpcSession() {};
+	TInt Connect();
+	TInt SendBadBuffer();
+private:
+	TInt iWsHandle;
+	};
+
+class CTBufferSecurityStep : public CTGraphicsStep
+	{
+public:
+	CTBufferSecurityStep();
+protected:
+	//from CTGraphicsStep
+	virtual CTGraphicsBase* CreateTestL();
+	};
+
+_LIT(KTBufferSecurityStep,"TBufferSecurity");
+
+#endif