usbmgmt/usbmgrtest/T_usb/src/UsbTest2.cpp
changeset 0 c9bc50fca66e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/T_usb/src/UsbTest2.cpp	Tue Feb 02 02:02:59 2010 +0200
@@ -0,0 +1,353 @@
+/*
+* Copyright (c) 2001-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:
+* This contains Usb Test Section 2
+*
+*/
+
+// EPOC includes
+#include <e32base.h>
+
+// Usb Test system includes
+#include <networking/log.h>
+#include "UsbStep.h"
+#include "UsbSuite.h"
+#include "UsbTest2.h"
+
+_LIT(KSignalSection,        "Signal");
+_LIT(KSignalMark,           "Mark");
+_LIT(KSignalSpace,          "Space");
+_LIT(KSignalCheckValue,     "CheckValue");
+_LIT(KSignalCheckValueMask, "CheckValueMask");
+
+_LIT(KConfigSection,		"Config");
+_LIT(KConfigRate,			"Rate");
+_LIT(KConfigStopBits,		"StopBits");
+_LIT(KConfigDataBits,		"DataBits");
+_LIT(KConfigParity,			"Parity");
+
+_LIT(KWriteSection,			"Write");
+_LIT(KWriteFailureValue,	"FailureValue");
+
+_LIT(KReadSection,			"Read");
+_LIT(KReadFailureValue,		"FailureValue");
+
+_LIT(KPortSection,			"Port");
+_LIT(KPortOpenMode,			"OpenMode");
+_LIT(KPortOpenRole,			"OpenRole");
+_LIT(KPortOpenReturnValue,	"OpenReturnValue");
+
+_LIT(KStateSection,			"State");
+_LIT(KStateTarget,			"Target");
+
+////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////
+// Test 2.1
+CTestSetSignalsToMark::CTestSetSignalsToMark()
+	{
+	// store the name of this test case
+	iTestStepName = _L("SetSignalsToMarkC");
+	}
+
+// Test 2.1 Destructor
+CTestSetSignalsToMark::~CTestSetSignalsToMark()
+	{	
+	}
+
+// Test 2.1 Main Code
+enum TVerdict CTestSetSignalsToMark::doTestStepL()
+	{
+	TUint mask;
+	TESTL(GetIntFromConfig(KSignalSection, KSignalMark, (TInt&) mask));
+	iUsbSuite->iCommPort.SetSignalsToMark(mask);
+	Log(_L("CTestSetSignalsToMark::doTestStepL() - Signal to mark set to 0x%x"), mask);
+	TEST(ETrue);
+	return iTestStepResult;
+	}
+
+////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////
+// Test 2.2
+CTestSetSignalsToSpace::CTestSetSignalsToSpace()
+	{
+	// store the name of this test case
+	iTestStepName = _L("SetSignalsToSpaceC");
+	}
+
+// Test 2.2 Destructor
+CTestSetSignalsToSpace::~CTestSetSignalsToSpace()
+	{	
+	}
+
+// Test 2.2 Main Code
+enum TVerdict CTestSetSignalsToSpace::doTestStepL()
+	{
+	TUint mask;
+	TESTL(GetIntFromConfig(KSignalSection, KSignalSpace, (TInt&) mask));
+	iUsbSuite->iCommPort.SetSignalsToSpace(mask);
+	Log(_L("CTestSetSignalsToSpace::doTestStepL() - Signal to space set to 0x%x"), mask);
+	TEST(ETrue);
+	return iTestStepResult;
+	}
+
+////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////
+// Test 2.3
+CTestCheckSignals::CTestCheckSignals()
+	{
+	// store the name of this test case
+	iTestStepName = _L("CheckSignalsC");
+	}
+
+// Test 2.3 Destructor
+CTestCheckSignals::~CTestCheckSignals()
+	{	
+	}
+
+// Test 2.3 Main Code
+enum TVerdict CTestCheckSignals::doTestStepL()
+	{
+	TUint checkValue;
+	TUint checkValueMask;
+	TUint currentValue;
+
+	TESTL(GetIntFromConfig(KSignalSection, KSignalCheckValue, (TInt&) checkValue));
+
+	if (GetIntFromConfig(KSignalSection, KSignalCheckValueMask, (TInt&) checkValueMask))
+		currentValue = iUsbSuite->iCommPort.Signals(checkValueMask);
+	else
+		currentValue = iUsbSuite->iCommPort.Signals();
+
+	Log(_L("CTestCheckSignals::doTestStepL() - Current signals set to 0x%x with mask 0x%x"), currentValue, checkValueMask);
+	TEST(currentValue == checkValue);
+	return iTestStepResult;
+	}
+
+////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////
+// Test 2.4
+CTestWaitForReadFailure::CTestWaitForReadFailure()
+	{
+	// store the name of this test case
+	iTestStepName = _L("WaitForReadFailureC");
+	}
+
+// Test 2.4 Destructor
+CTestWaitForReadFailure::~CTestWaitForReadFailure()
+	{	
+	}
+
+// Test 2.4 Main Code
+enum TVerdict CTestWaitForReadFailure::doTestStepL()
+	{
+	TInt failureValue;
+
+	TESTL(GetIntFromConfig(KReadSection, KReadFailureValue, failureValue));
+
+	Log(_L("CTestWaitForReadFailure::doTestStepL() - Waiting for read status to be complete with error"));
+	User::WaitForRequest(iUsbSuite->iReadStatus);
+	Log(_L("CTestWaitForReadFailure::doTestStepL() - Read status completed with %d"), iUsbSuite->iReadStatus.Int());
+	TEST(iUsbSuite->iReadStatus.Int() == failureValue);
+
+	return iTestStepResult;
+	}
+
+////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////
+// Test 2.5
+CTestWaitForWriteFailure::CTestWaitForWriteFailure()
+	{
+	// store the name of this test case
+	iTestStepName = _L("WaitForWriteFailureC");
+	}
+
+// Test 2.5 Destructor
+CTestWaitForWriteFailure::~CTestWaitForWriteFailure()
+	{	
+	}
+
+// Test 2.5 Main Code
+enum TVerdict CTestWaitForWriteFailure::doTestStepL()
+	{
+	TInt failureValue;
+
+	TESTL(GetIntFromConfig(KWriteSection, KWriteFailureValue, failureValue));
+
+	Log(_L("CTestWaitForWriteFailure::doTestStepL() - Waiting for write status to be complete with error"));
+	User::WaitForRequest(iUsbSuite->iWriteStatus);
+	Log(_L("CTestWaitForWriteFailure::doTestStepL() - Read status completed with %d"), iUsbSuite->iWriteStatus.Int());
+	TEST(iUsbSuite->iWriteStatus.Int() == failureValue);
+
+	return iTestStepResult;
+	}
+ 
+////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////
+// Test 2.6
+CTestOpenPort::CTestOpenPort()
+	{
+	// store the name of this test case
+	iTestStepName = _L("OpenPortC");
+	}
+
+// Test 2.6 Destructor
+CTestOpenPort::~CTestOpenPort()
+	{	
+	}
+
+// Test 2.6 Main Code
+enum TVerdict CTestOpenPort::doTestStepL()
+	{
+	TCommAccess openMode;
+	TCommRole role;
+	TInt returnValue;
+
+	TESTL(GetIntFromConfig(KPortSection, KPortOpenMode, (TInt&) openMode));
+	TESTL(GetIntFromConfig(KPortSection, KPortOpenRole, (TInt&) role));
+	TESTL(GetIntFromConfig(KPortSection, KPortOpenReturnValue, returnValue));
+
+	OpenCommServerL();
+
+	if (!iUsbSuite->iPortOpen)
+		{
+		Log(_L("CTestOpenPort::doTestStepL() - Attempting to open ACM comm port with mode %d and role %d"), openMode, role);
+		TInt err = iUsbSuite->iCommPort.Open(iUsbSuite->iCommServer, PORT_NAME, openMode, role);
+
+		if (err == KErrNone)
+			{
+			iUsbSuite->iPortOpen = ETrue;
+			Log(_L("CTestOpenPort::doTestStepL() - Opened ACM comm port, mode %d, role %d"), openMode, role);
+			}
+		TESTL(err == returnValue);
+		}
+	else
+		{
+		TEST(ETrue);
+		}
+
+	return iTestStepResult;
+	}
+ 
+////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////
+// Test 2.7
+CTestWaitForConfigChange::CTestWaitForConfigChange()
+	{
+	// store the name of this test case
+	iTestStepName = _L("WaitForConfigChangeC");
+	}
+
+// Test 2.7 Destructor
+CTestWaitForConfigChange::~CTestWaitForConfigChange()
+	{
+	}
+
+// Test 2.7 Main Code
+enum TVerdict CTestWaitForConfigChange::doTestStepL()
+	{
+	TCommConfigV01 config;
+
+	TESTL(GetIntFromConfig(KConfigSection, KConfigRate,     (TInt&) config.iRate));
+	TESTL(GetIntFromConfig(KConfigSection, KConfigStopBits, (TInt&) config.iStopBits));
+	TESTL(GetIntFromConfig(KConfigSection, KConfigDataBits, (TInt&) config.iDataBits));
+	TESTL(GetIntFromConfig(KConfigSection, KConfigParity,   (TInt&) config.iParity));
+
+	Log(_L("CTestWaitForConfigChange::doTestStepL() - Waiting for config change"));
+	User::WaitForRequest(iUsbSuite->iNotifyConfigChangeStatus);
+	Log(_L("CTestWaitForConfigChange::doTestStepL() - Config status completed with %d"), iUsbSuite->iNotifyConfigChangeStatus.Int());
+	TESTL(iUsbSuite->iNotifyConfigChangeStatus.Int() == KErrNone);
+
+	Log(_L("iRate=%d iStopBits=%d iDataBits=%d iParity=%d"), iUsbSuite->iConfig().iRate, iUsbSuite->iConfig().iStopBits, iUsbSuite->iConfig().iDataBits, iUsbSuite->iConfig().iParity);
+
+	TESTL(iUsbSuite->iConfig().iRate     == config.iRate);
+	TESTL(iUsbSuite->iConfig().iStopBits == config.iStopBits);
+	TESTL(iUsbSuite->iConfig().iDataBits == config.iDataBits);
+	TESTL(iUsbSuite->iConfig().iParity   == config.iParity);
+
+	return iTestStepResult;
+	}
+
+////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////
+// Test 2.8
+CTestNotifyStateChange::CTestNotifyStateChange()
+	{
+	// store the name of this test case
+	iTestStepName = _L("NotifyStateChange");
+	}
+
+// Test 2.8 Destructor
+CTestNotifyStateChange::~CTestNotifyStateChange()
+	{	
+	}
+
+// Test 2.8 Main Code
+enum TVerdict CTestNotifyStateChange::doTestStepL()
+	{
+	TESTL(OpenLdd() == KErrNone);
+	iUsbSuite->iLdd.AlternateDeviceStatusNotify(iUsbSuite->iNotifyStateStatus, iUsbSuite->iUsbState);
+	TEST(ETrue);
+	return iTestStepResult;
+	}
+ 
+////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////
+// Test 2.9
+CTestWaitForStateChange::CTestWaitForStateChange()
+	{
+	// store the name of this test case
+	iTestStepName = _L("WaitForStateChangeC");
+	}
+
+// Test 2.9 Destructor
+CTestWaitForStateChange::~CTestWaitForStateChange()
+	{
+	}
+
+// Test 2.9 Main Code
+enum TVerdict CTestWaitForStateChange::doTestStepL()
+	{
+	Log(_L("CTestWaitForConfigChange::doTestStepL() - Waiting for state change..."));
+	User::WaitForRequest(iUsbSuite->iNotifyStateStatus);
+
+	if (iUsbSuite->iNotifyStateStatus.Int() != KErrNone)
+		{
+		Log(_L("CTestWaitForConfigChange::doTestStepL() - Error = %d"), iUsbSuite->iNotifyStateStatus.Int());
+		TESTL(EFalse);
+		return iTestStepResult;
+		}
+
+	TUint targetState;
+
+	TESTL(GetIntFromConfig(KStateSection, KStateTarget, (TInt&) targetState));
+
+	if (!(iUsbSuite->iUsbState & KUsbAlternateSetting))
+		{
+		Log(_L("CTestWaitForStateChange::doTestStepL() - State Changed to %d"), iUsbSuite->iUsbState);
+		TESTL(iUsbSuite->iUsbState == targetState);
+		}
+	else
+		{
+		// Repost notify as state hasn't changed yet
+		Log(_L("CTestWaitForStateChange::doTestStepL() - State hasn't changed, reposting notify"));
+		iUsbSuite->iLdd.AlternateDeviceStatusNotify(iUsbSuite->iNotifyStateStatus, iUsbSuite->iUsbState);
+		doTestStepL();
+		return iTestStepResult;
+		}
+
+	return iTestStepResult;
+	}
+
+
+