basebandabstraction/basebandchanneladaptor/Test/TE_BCA/src/te_xxBcaUnitSteps.h
author hgs
Fri, 14 May 2010 13:52:48 +0100
changeset 38 b6a16c6baaa3
parent 0 3553901f7fa8
child 24 6638e7f4bd8f
permissions -rw-r--r--
201019_06

// Copyright (c) 2005-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:
// Defines the test steps for xxBCA.
// 
//

/**
 @file
 @internalComponent
*/

#ifndef TE_xxBCAUNITSTEPS_H
#define TE_xxBCAUNITSTEPS_H


#include <test/TestExecuteStepBase.h>
#include "BcaTestProxy.h"
#include <c32comm.h>

/** Encapsulates all xxBca tests */
namespace te_xxBcaUnitTests
	{
	/**
	 Base class for all xxBca tests.
	 
	 @internalComponent
	 */
	class CxxBcaTestBase : public CTestStep
		{
	public:
		CxxBcaTestBase();
		~CxxBcaTestBase();
		TVerdict doTestStepPreambleL();
		enum TVerdict doTestStepL();
		
	protected:
		void LoadUutL();
		void LoadPeerL();
		
		void UnloadUut();
		void UnloadPeer();
		
		void CheckBuffersEqualL(const TDesC16& aBuf1,const TDesC16& aBuf2);
		void CheckBuffersEqualL(const TDesC8& aBuf1,const TDesC8& aBuf2);

		void SetProxyIapIdL(MBcaProxy& aProxy, TUint32 aIapId);
		
		
		void TestEnvironmentCleanup();
		void LogAndLeaveIfErrorL(TInt errCode, const TDesC& aMsg);
		
		
		void LoadBcaSettingsFromConfigFileL();
		void LoadBcaIapSettingsFromConfigFileL();
		
		MBcaFactory* NewBcaFactoryL(TDllAutoClose& bcaDll);
		void CreateBcaAndLeaveL(TDllAutoClose& bcaDll);
		
		/**
		Executes the Test Step 
		 
		@return Verdict of the test step: EPass / EFail;
        		EAborted if the test case could not be executed properly;
        		EInconclusive if it could not be determined with certainty that the test case has succeeded.
		@leave if the test fails		 
		*/
		virtual TVerdict RunTestStepL() = 0;

	protected:
		
		
		/** Unit Under Test BCA */
		MBcaProxy* iUut;
		/** UUT C32 port name */
		TPtrC iUutPortName;
		
		/** UUT name for logging */
		TPtrC iUutName;
		/** CommDB IAP ID for this test */
		TUint32 iUutIapId;
		
		/** Peer: used to excersize UUT */
		MBcaProxy* iPeer;
		/** Peer C32 Port name */
		TPtrC iPeerPortName;
		/** Peer name for logging */
		TPtrC iPeerName;
		/** CommDB IAP ID for this test */
		TUint32 iPeerIapId;
		
		
		/** Buffer sizes constants */
		enum TBufferSize
			{
			/* Minimal buffer */
			EBufferSizeSmall = 16
			};
	    
	   
	    
	    /** Buffer to be written only */
	    TBuf8<EBufferSizeSmall> iWriteBuf1;
	    /** Buffer to be read only */
		TBuf8<EBufferSizeSmall> iReadBuf1;
		
		/* Second writing buffer */
		TBuf8<EBufferSizeSmall> iWriteBuf2;
		/** Second reading buffer */
		TBuf8<EBufferSizeSmall> iReadBuf2;
		
	
		}; 


	/** Used to define a literal variable. */
	#define SYMBIAN_TEST_LIT(name) _LIT(K##name, #name)

	/** Define a literal from a classname and can be as the keyword class. */
	#define SYMBIAN_TEST_CLASS(className) SYMBIAN_TEST_LIT(className); class className 

	/** Define a basic declaration for testClass as a subclass of CxxBcaTestBase 
	and define a literal from testClass */
	#define SYMBIAN_xxBCA_TEST_CLASS(testClass) SYMBIAN_TEST_CLASS(testClass) : public CxxBcaTestBase \
				{ \
			public: \
				inline testClass() {SetTestStepName(K##testClass);}; \
				virtual TVerdict RunTestStepL(); \
				}; 
				
				
	/** Test xxBCA in Closed state */
	SYMBIAN_xxBCA_TEST_CLASS(CClosedState1)

	/** Test xxBCA in Shutdown state */
	SYMBIAN_xxBCA_TEST_CLASS(CShutdownState1)
	SYMBIAN_xxBCA_TEST_CLASS(CShutdownState2)

	/** Test xxBCA in Opening state */
	SYMBIAN_xxBCA_TEST_CLASS(COpeningState1)
	SYMBIAN_xxBCA_TEST_CLASS(COpeningState2)
	SYMBIAN_xxBCA_TEST_CLASS(COpeningState3)


	/** Test xxBCA in Open state */
	SYMBIAN_xxBCA_TEST_CLASS(COpenState1)
	SYMBIAN_xxBCA_TEST_CLASS(COpenState2)  
	SYMBIAN_xxBCA_TEST_CLASS(COpenState3)
	SYMBIAN_xxBCA_TEST_CLASS(COpenState4)

	/** Test xxBCA in Reading state */
	SYMBIAN_xxBCA_TEST_CLASS(CReadingState1)
	SYMBIAN_xxBCA_TEST_CLASS(CReadingState2)
	SYMBIAN_xxBCA_TEST_CLASS(CReadingState3)

	/** Test xxBCA in Writing state */
	SYMBIAN_xxBCA_TEST_CLASS(CWritingState1)
	SYMBIAN_xxBCA_TEST_CLASS(CWritingState2)
	SYMBIAN_xxBCA_TEST_CLASS(CWritingState3)

	/** Test xxBCA in ReadingWriting state */
	SYMBIAN_xxBCA_TEST_CLASS(CReadingWritingState1)
	SYMBIAN_xxBCA_TEST_CLASS(CReadingWritingState2)
	SYMBIAN_xxBCA_TEST_CLASS(CReadingWritingState3)
	SYMBIAN_xxBCA_TEST_CLASS(CReadingWritingState4)


	/** Test xxBCA in Controlling state */
	SYMBIAN_xxBCA_TEST_CLASS(CIoctlingState1)
	SYMBIAN_xxBCA_TEST_CLASS(CIoctlingState2)
	
	/** Test xxBCA deletion (release) functinality */
	SYMBIAN_xxBCA_TEST_CLASS(CCleanupBcaRelease)	

	} // namespace te_xxBcaUnitTests
#endif