--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmhais/dvbhunittest/hai/dvbh/src/dvbhhaitest.cpp Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,2196 @@
+// Copyright (c) 2007-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:
+//
+
+/**
+ @file
+ @internalComponent
+ @prototype
+*/
+
+#include "dvbhhaitest.h"
+#include "dvbhhaitestutil.h"
+#include <mobiletv/hai/dvbh/dvbhtypes.h>
+
+/**
+* RDvbhHaiTest
+* DVB-H HAI Unit Tests on stub implementations
+*/
+
+RDvbhHaiTest* RDvbhHaiTest::NewL(TBool aRequireReceiverInfo, const TDesC& aTestName)
+ {
+ RDvbhHaiTest* self = new (ELeave) RDvbhHaiTest(aRequireReceiverInfo, aTestName);
+ return self;
+ }
+
+RDvbhHaiTest::RDvbhHaiTest(TBool aRequireReceiverInfo, const TDesC& aTestName)
+: RTestStep(), iDvbhTestDriverVersion(1, 2, 3), iDvbhTestTime(TDateTime(2007, EJuly, 30, 16, 35, 22, 18)),
+ iDvbhTestPerformanceData(), iDvbhTestScanConfiguration(), iDvbhTestPlatform(), iDvbhTestHardwareInfo(),
+ iDvbhTestNetwork(), iDvbhTestNetworkTime(), iDvbhTestScanResult(), iRequireReceiverInfo(aRequireReceiverInfo),
+ iRxInfo(NULL), iTestUtils(NULL), iReceiverType(EDvbhReceiverBluetooth)
+ {
+ iTestStepName.Copy(aTestName);
+ SetupParameterData();
+ }
+
+void RDvbhHaiTest::SetupParameterData()
+ {
+ // The members initialised here should be treated as constants
+ // and not changed.
+ iDvbhTestPerformanceData.iFilterCount = 1;
+ iDvbhTestPerformanceData.iMaxFilters = 2;
+ iDvbhTestPerformanceData.iDataCount = 3;
+ iDvbhTestPerformanceData.iWriteCount = 4;
+ iDvbhTestPerformanceData.iWriteCommandCount = 5;
+ iDvbhTestPerformanceData.iReadCount = 6;
+ iDvbhTestPerformanceData.iReadCommandCount = 7;
+
+ iDvbhTestScanConfiguration.iScanStartFrequency = 100;
+ iDvbhTestScanConfiguration.iScanEndFrequency = 200;
+ iDvbhTestScanConfiguration.iSignalBandwidth = 10;
+ iDvbhTestScanConfiguration.iScanOptions = EDvbhScanOptionFullScan;
+
+ iDvbhTestPlatform.iPlatform.iId = KInitialPlatformId;
+ iDvbhTestPlatform.iPlatform.iName = KInitialPlatformName;
+ iDvbhTestPlatform.iEsgRoot = KDvbhTestIpV6Addr;
+
+ iDvbhTestHardwareInfo = KDvbhTestHardwareInfo;
+
+ iDvbhTestNetworkTime.iNetworkTime = iDvbhTestTime;
+ iDvbhTestNetworkTime.iTerminalTimeStamp = KDvbhTestTerminalTimeStamp;
+ iDvbhTestNetworkTime.iPlatformId = KInitialPlatformId;
+ }
+
+void RDvbhHaiTest::InfoPrintf3(const TDesC16& aString, TInt aInt1, TInt aInt2)
+ {
+ INFO_PRINTF3(aString, aInt1, aInt2);
+ }
+
+void RDvbhHaiTest::InfoPrintf4(const TDesC16& aString, TInt aInt1, TInt aInt2, TInt aInt3)
+ {
+ INFO_PRINTF4(aString, aInt1, aInt2, aInt3);
+ }
+
+TVerdict RDvbhHaiTest::DoTestStepPreambleL()
+ {
+ TRAPD(result, iTestUtils = CDvbhTestUtil::NewL(*this));
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d creating CDvbhTestUtil"), result);
+ return EInconclusive;
+ }
+
+ if (iRequireReceiverInfo)
+ {
+ TRAP(result, iRxInfo = CDvbhReceiverInfo::NewL())
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d creating CDvbhReceiverInfo"), result);
+ return EInconclusive;
+ }
+ }
+
+ if (iTestStepName.Compare(_L("MM-TV-DVBH-U-101")) == 0)
+ {
+ result = iTestUtils->DefineAllDvbhProperties();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-103")) == 0)
+ {
+ result = iTestUtils->DefineDvbhStateProperty(EDvbhStateInactive);
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-104")) == 0)
+ {
+ // Receiver state must be EDvbhStateReceiving before we can do this test.
+ result = iTestUtils->DefineDvbhStateProperty(EDvbhStateReceiving);
+ if (result == KErrNone)
+ {
+ result = iTestUtils->DefineDvbhIntegerProperty(EDvbhPropertyKeySignalQuality, KInitialSignalQuality);
+ }
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-105")) == 0)
+ {
+ // Receiver state must be EDvbhStateReady or EDvbhStateReceiving before we can do this test.
+ result = iTestUtils->DefineDvbhStateProperty(EDvbhStateReady);
+ if (result == KErrNone)
+ {
+ TPckg<TDvbhPlatformProperty> initialPlatformPckg(iDvbhTestPlatform);
+ result = iTestUtils->DefineDvbhProperty(EDvbhPropertyKeyPlatform, CDvbhTestUtil::GetType(EDvbhPropertyKeyPlatform), initialPlatformPckg);
+ }
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-106")) == 0)
+ {
+ // Receiver state must be EDvbhStateReady or EDvbhStateReceiving before we can do this test.
+ result = iTestUtils->DefineDvbhStateProperty(EDvbhStateReady);
+ if (result == KErrNone)
+ {
+ TPckg<TDvbhNetworkTime> initialTimePckg(iDvbhTestNetworkTime);
+ result = iTestUtils->DefineDvbhProperty(EDvbhPropertyKeyNetworkTime, CDvbhTestUtil::GetType(EDvbhPropertyKeyNetworkTime), initialTimePckg);
+ }
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-107")) == 0)
+ {
+ // Receiver state must be EDvbhStateReady or EDvbhStateReceiving before we can do this test.
+ result = iTestUtils->DefineDvbhStateProperty(EDvbhStateReady);
+ if (result == KErrNone)
+ {
+ TPckg<TDvbhPerformanceData> initialDataPckg(iDvbhTestPerformanceData);
+ result = iTestUtils->DefineDvbhProperty(EDvbhPropertyKeyPerformanceData, CDvbhTestUtil::GetType(EDvbhPropertyKeyPerformanceData), initialDataPckg);
+ }
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-108")) == 0)
+ {
+ // Receiver state must be EDvbhStateReady or EDvbhStateReceiving before we can do this test.
+ result = iTestUtils->DefineDvbhStateProperty(EDvbhStateReady);
+ if (result == KErrNone)
+ {
+ result = iTestUtils->DefineDvbhIntegerProperty(EDvbhPropertyKeyFrequency, KInitialFrequency);
+ }
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-109")) == 0)
+ {
+ // Receiver state must be EDvbhStateReady or EDvbhStateReceiving before we can do this test.
+ result = iTestUtils->DefineDvbhStateProperty(EDvbhStateReady);
+ if (result == KErrNone)
+ {
+ result = iTestUtils->DefineDvbhIntegerProperty(EDvbhPropertyKeyCellId, KInitialCellId);
+ }
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-110")) == 0)
+ {
+ // Receiver state must be EDvbhStateReady or EDvbhStateReceiving before we can do this test.
+ result = iTestUtils->DefineDvbhStateProperty(EDvbhStateReady);
+ if (result == KErrNone)
+ {
+ result = iTestUtils->DefineDvbhIntegerProperty(EDvbhPropertyKeyNetworkId, KInitialNetworkId);
+ }
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-309")) == 0)
+ {
+ // Receiver state must be EDvbhStateReceiving before we can do this test.
+ result = iTestUtils->DefineDvbhStateProperty(EDvbhStateReceiving);
+ }
+
+ return (result == KErrNone ? EPass : EInconclusive);
+ }
+
+TVerdict RDvbhHaiTest::DoTestStepPostambleL()
+ {
+ delete iRxInfo;
+ iRxInfo = NULL;
+
+ TInt result = KErrNone;
+ if (iTestStepName.Compare(_L("MM-TV-DVBH-U-101")) == 0)
+ {
+ result = iTestUtils->DeleteAllDvbhProperties();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-103")) == 0)
+ {
+ result = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeyState);
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-104")) == 0)
+ {
+ result = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeyState);
+ TInt result2 = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeySignalQuality);
+ result = result2 != KErrNone ? result2 : result;
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-105")) == 0)
+ {
+ result = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeyState);
+ TInt result2 = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeyPlatform);
+ result = result2 != KErrNone ? result2 : result;
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-106")) == 0)
+ {
+ result = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeyState);
+ TInt result2 = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeyNetworkTime);
+ result = result2 != KErrNone ? result2 : result;
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-107")) == 0)
+ {
+ result = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeyState);
+ TInt result2 = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeyPerformanceData);
+ result = result2 != KErrNone ? result2 : result;
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-108")) == 0)
+ {
+ result = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeyState);
+ TInt result2 = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeyFrequency);
+ result = result2 != KErrNone ? result2 : result;
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-109")) == 0)
+ {
+ result = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeyState );
+ TInt result2 = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeyCellId);
+ result = result2 != KErrNone ? result2 : result;
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-110")) == 0)
+ {
+ result = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeyState );
+ TInt result2 = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeyNetworkId);
+ result = result2 != KErrNone ? result2 : result;
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-309")) == 0)
+ {
+ result = iTestUtils->DeleteDvbhProperty(EDvbhPropertyKeyState );
+ }
+
+ delete iTestUtils;
+ iTestUtils = NULL;
+ return (result == KErrNone ? EPass : EInconclusive);
+ }
+
+TVerdict RDvbhHaiTest::DoTestStepL()
+ {
+ if(iTestStepName.Compare(_L("MM-TV-DVBH-U-001")) == 0)
+ {
+ return DoCreateReceiverOnStackTestStep();
+ }
+ else if(iTestStepName.Compare(_L("MM-TV-DVBH-U-002")) == 0)
+ {
+ return DoCreateReceiverOnHeapTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-003")) == 0)
+ {
+ return DoGetDriverVersionBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-004")) == 0)
+ {
+ return DoReceiverOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-005")) == 0)
+ {
+ return DoMultipleReceiverOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-006")) == 0)
+ {
+ return DoGetDriverVersionAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-007")) == 0)
+ {
+ return DoPowerOnAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-008")) == 0)
+ {
+ return DoSetScanConfigurationAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-009")) == 0)
+ {
+ return DoGetScanConfigurationAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-010")) == 0)
+ {
+ return DoGetDvbhVersionAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-011")) == 0)
+ {
+ return DoGetHardwareInfoAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-012")) == 0)
+ {
+ return DoScanAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-013")) == 0)
+ {
+ return DoSetPlatformAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-014")) == 0)
+ {
+ return DoCreateFilterAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-015")) == 0)
+ {
+ return DoCancelFilterAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-016")) == 0)
+ {
+ return DoReceiveIpDataAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-017")) == 0)
+ {
+ return DoUpdateNetworkTimeAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-018")) == 0)
+ {
+ return DoCustomAsyncAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-019")) == 0)
+ {
+ return DoCancelCustomAsyncAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-020")) == 0)
+ {
+ return DoCustomAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-022")) == 0)
+ {
+ return DoPowerOffAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-023")) == 0)
+ {
+ return DoSetDisabledAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-024")) == 0)
+ {
+ return DoCancelScanAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-025")) == 0)
+ {
+ return DoCancelSetPlatformAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-026")) == 0)
+ {
+ return DoCancelReceiveIpDataAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-027")) == 0)
+ {
+ return DoCancelUpdateNetworkTimeAfterOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-101")) == 0)
+ {
+ return DoCreateReceiverInfoTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-102")) == 0)
+ {
+ return DoCreateReceiverInfoTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-103")) == 0)
+ {
+ return DoGetStateTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-104")) == 0)
+ {
+ return DoGetSignalQualityTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-105")) == 0)
+ {
+ return DoGetPlatformTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-106")) == 0)
+ {
+ return DoGetNetworkTimeTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-107")) == 0)
+ {
+ return DoGetPerformanceDataTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-108")) == 0)
+ {
+ return DoGetFrequencyTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-109")) == 0)
+ {
+ return DoGetCellIdTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-110")) == 0)
+ {
+ return DoGetNetworkIdTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-202")) == 0)
+ {
+ return DoPowerOnBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-203")) == 0)
+ {
+ return DoSetScanConfigurationBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-204")) == 0)
+ {
+ return DoGetScanConfigurationBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-205")) == 0)
+ {
+ return DoGetDvbhVersionBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-206")) == 0)
+ {
+ return DoGetHardwareInfoBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-207")) == 0)
+ {
+ return DoScanBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-208")) == 0)
+ {
+ return DoSetPlatformBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-209")) == 0)
+ {
+ return DoCreateFilterBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-210")) == 0)
+ {
+ return DoCancelFilterBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-211")) == 0)
+ {
+ return DoReceiveIpDataBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-212")) == 0)
+ {
+ return DoUpdateNetworkTimeBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-213")) == 0)
+ {
+ return DoCustomAsyncBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-214")) == 0)
+ {
+ return DoCancelCustomAsyncBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-215")) == 0)
+ {
+ return DoCustomBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-216")) == 0)
+ {
+ return DoCloseBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-217")) == 0)
+ {
+ return DoPowerOffBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-218")) == 0)
+ {
+ return DoSetDisabledBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-219")) == 0)
+ {
+ return DoCancelScanBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-220")) == 0)
+ {
+ return DoCancelSetPlatformBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-221")) == 0)
+ {
+ return DoCancelReceiveIpDataBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-222")) == 0)
+ {
+ return DoCancelUpdateNetworkTimeBeforeOpenTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-301")) == 0)
+ {
+ return DoGetStateNoPropertiesTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-302")) == 0)
+ {
+ return DoGetSignalQualityNoPropertiesTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-303")) == 0)
+ {
+ return DoGetPlatformNoPropertiesTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-304")) == 0)
+ {
+ return DoGetNetworkTimeNoPropertiesTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-305")) == 0)
+ {
+ return DoGetPerformanceDataNoPropertiesTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-306")) == 0)
+ {
+ return DoGetFrequencyNoPropertiesTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-307")) == 0)
+ {
+ return DoGetCellIdNoPropertiesTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-308")) == 0)
+ {
+ return DoGetNetworkIdNoPropertiesTestStep();
+ }
+ else if (iTestStepName.Compare(_L("MM-TV-DVBH-U-309")) == 0)
+ {
+ return DoGetTestsNoProperties();
+ }
+
+ return EInconclusive;
+ }
+
+TVerdict RDvbhHaiTest::DoCreateReceiverOnStackTestStep()
+ {
+ __MM_HEAP_MARK;
+ {
+ //Create RDvbhReceiver on stack
+ RDvbhReceiver receiver;
+ }
+ //RDvbhReceiver out-of-scope, verify no heap leaks
+ __MM_HEAP_MARKEND;
+ return EPass;
+ }
+
+TVerdict RDvbhHaiTest::DoCreateReceiverOnHeapTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+
+ RDvbhReceiver* receiver = new RDvbhReceiver;
+ if (receiver == NULL)
+ {
+ verdict = EInconclusive;
+ }
+ else
+ {
+ delete receiver;
+ receiver = NULL;
+ }
+
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+
+TVerdict RDvbhHaiTest::DoGetDriverVersion(RDvbhReceiver& aReceiver)
+ {
+ TVerdict verdict = EPass;
+ TVersion version = iDvbhTestDriverVersion;
+
+ TInt result = aReceiver.GetDriverVersion(version);
+ if (result != KErrNotSupported)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::GetDriverVersion returned %d"), result);
+ verdict = EFail;
+ }
+ else if (!CDvbhTestUtil::CompareVersions(version, iDvbhTestDriverVersion))
+ {
+ INFO_PRINTF1(_L("RDvbhReceiver::GetDriverVersion modified its arguments."));
+ verdict = EFail;
+ }
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoGetDriverVersionBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ verdict = DoGetDriverVersion(receiver);
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+/**
+* @param aMultiples the number of times to call open on a single RDvbhReceiver instance. Must be greater than 0.
+*
+* Creates a RDvbhReceiver instance, calls Open aMultiples of times on it, then Closes it.
+*/
+TVerdict RDvbhHaiTest::DoReceiverOpenAndClose(TUint aMultiples)
+ {
+ TVerdict verdict = EPass;
+ RDvbhReceiver receiver;
+
+ if (aMultiples == 0)
+ {
+ verdict = EInconclusive;
+ }
+ else
+ {
+ for (TUint i=0;i < aMultiples;++i)
+ {
+ TVerdict openVerdict = OpenReceiver(receiver);
+ verdict = (openVerdict == EPass) ? verdict : openVerdict;
+ }
+ }
+ receiver.Close();
+ return verdict;
+ }
+
+/**
+* Helper used to open a receiver before testing other methods.
+* @return EInconclusive if the Open call did not behave as expected so it shouldn't be used to test the Open() method itself.
+*/
+TVerdict RDvbhHaiTest::OpenReceiver(RDvbhReceiver& aReceiver)
+ {
+ TVerdict verdict = EPass;
+ TInt result = aReceiver.Open(iReceiverType);
+ if (result != KErrNotSupported)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::Open returned %d"), result);
+ verdict = EInconclusive;
+ }
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoReceiverOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = DoReceiverOpenAndClose();
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+
+TVerdict RDvbhHaiTest::DoMultipleReceiverOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = DoReceiverOpenAndClose(3);
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoGetDriverVersionAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ verdict = DoGetDriverVersion(receiver);
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+
+TVerdict RDvbhHaiTest::DoPowerOnAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TRequestStatus status;
+ TInt result = receiver.PowerOn(status);
+ if (result != KErrNotSupported)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::PowerOn returned %d"), result);
+ verdict = EFail;
+ }
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoSetScanConfigurationAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TInt result = receiver.SetScanConfiguration(iDvbhTestScanConfiguration);
+ if (result != KErrNotSupported)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::SetScanConfiguration returned %d"), result);
+ verdict = EFail;
+ }
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoGetScanConfigurationAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TDvbhScanConfiguration scanConfig;
+ scanConfig.iScanStartFrequency = iDvbhTestScanConfiguration.iScanStartFrequency;
+ scanConfig.iScanEndFrequency = iDvbhTestScanConfiguration.iScanEndFrequency;
+ scanConfig.iSignalBandwidth = iDvbhTestScanConfiguration.iSignalBandwidth;
+ scanConfig.iScanOptions = iDvbhTestScanConfiguration.iScanOptions;
+
+ TInt result = receiver.GetScanConfiguration(scanConfig);
+ if (result != KErrNotSupported)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::GetScanConfiguration returned %d"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (!CDvbhTestUtil::CompareScanConfigurations(scanConfig, iDvbhTestScanConfiguration))
+ {
+ INFO_PRINTF1(_L("RDvbhReceiver::GetScanConfiguration modified its arguments."));
+ verdict = EFail;
+ }
+ }
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoGetDvbhVersionAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TVersion version = iDvbhTestDriverVersion;
+ TInt result = receiver.GetDvbhVersion(version);
+ if (result != KErrNotSupported)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::GetDvbhVersion returned %d"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (!CDvbhTestUtil::CompareVersions(version, iDvbhTestDriverVersion))
+ {
+ INFO_PRINTF1(_L("RDvbhReceiver::GetDvbhVersion modified its arguments."));
+ verdict = EFail;
+ }
+ }
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoGetHardwareInfoAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TDvbhHardwareInfo info = iDvbhTestHardwareInfo;
+ TInt result = receiver.GetHardwareInfo(info);
+ if (result != KErrNotSupported)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::GetHardwareInfo returned %d"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (info.Compare(iDvbhTestHardwareInfo) != 0) // Compare returns 0 if they are the same
+ {
+ INFO_PRINTF1(_L("RDvbhReceiver::GetHardwareInfo modified its arguments."));
+ verdict = EFail;
+ }
+ }
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoScanAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TRequestStatus status;
+ TInt result = receiver.Scan(*this, status);
+ if (result != KErrNotSupported)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::Scan returned %d"), result);
+ verdict = EFail;
+ }
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoSetPlatformAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TRequestStatus status;
+ TInt result = receiver.SetPlatform(iDvbhTestNetwork, iDvbhTestPlatform.iPlatform, status);
+ if (result != KErrNotSupported)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::SetPlatform returned %d"), result);
+ verdict = EFail;
+ }
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoCreateFilterAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TInt filterId = KDvbhTestFilterId;
+ TRequestStatus status;
+ TInt result = receiver.CreateFilter(KDvbhTestIpV6Addr, filterId, status);
+ if (result != KErrNotSupported)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::CreateFilter returned %d"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (filterId != KDvbhTestFilterId)
+ {
+ INFO_PRINTF1(_L("RDvbhReceiver::CreateFilter modified its arguments."));
+ verdict = EFail;
+ }
+ }
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoCancelFilterAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TInt filterId = KDvbhTestFilterId;
+ TInt result = receiver.CancelFilter(filterId);
+ if (result != KErrNotSupported)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::CancelFilter returned %d"), result);
+ verdict = EFail;
+ }
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoReceiveIpDataAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TInt result = receiver.ReceiveIPData(*this);
+ if (result != KErrNotSupported)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::ReceiveIPData returned %d"), result);
+ verdict = EFail;
+ }
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoUpdateNetworkTimeAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TRequestStatus status;
+ TInt result = receiver.UpdateNetworkTime(status);
+ if (result != KErrNotSupported)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::UpdateNetworkTime returned %d"), result);
+ verdict = EFail;
+ }
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoCustomAsyncAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TBuf8<32> output;
+ output = KDvbhTestCustomCommandOutput;
+ TRequestStatus status;
+ TInt result = receiver.CustomCommand(KDvbhTestCustomCommand, KDvbhTestCustomCommandInput, output, status);
+ if (result != KErrNotSupported)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::CustomCommand returned %d"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (output.Compare(KDvbhTestCustomCommandOutput) != 0) // Compare returns 0 if they are the same
+ {
+ INFO_PRINTF1(_L("RDvbhReceiver::CustomCommand modified its arguments."));
+ verdict = EFail;
+ }
+ }
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoCancelCustomAsyncAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TRequestStatus status;
+ receiver.CancelCustomCommand(status);
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoCustomAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TInt result = receiver.CustomCommand(KDvbhTestCustomCommand, KDvbhTestCustomCommandInput);
+ if (result != KErrNotSupported)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::CustomCommand returned %d"), result);
+ verdict = EFail;
+ }
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoPowerOffAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TRequestStatus status;
+ receiver.PowerOff(status);
+ //User::WaitForRequest(status);
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoSetDisabledAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ TRequestStatus status;
+ receiver.SetDisabled(ETrue, status);
+ //User::WaitForRequest(status);
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoCancelScanAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ receiver.CancelScan();
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoCancelSetPlatformAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ receiver.CancelSetPlatform();
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoCancelReceiveIpDataAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ receiver.CancelReceiveIPData();
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+TVerdict RDvbhHaiTest::DoCancelUpdateNetworkTimeAfterOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ if ((verdict = OpenReceiver(receiver)) == EPass)
+ {
+ receiver.CancelUpdateNetworkTime();
+ receiver.Close();
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//
+//
+// CDvbhReceiverInfo Positive Tests
+//
+//
+
+// 101 & 102
+TVerdict RDvbhHaiTest::DoCreateReceiverInfoTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ delete iRxInfo;
+ iRxInfo = NULL;
+ TRAPD(result, iRxInfo = CDvbhReceiverInfo::NewL())
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d creating CDvbhReceiverInfo"), result);
+ verdict = EFail;
+ }
+ delete iRxInfo;
+ iRxInfo = NULL;
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+// 103
+TVerdict RDvbhHaiTest::DoGetStateTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ //First set the state to a known value (expectedState) so that we know
+ //what we are trying to Get.
+ const TInt expectedState = EDvbhStateInactive;
+ if (iTestUtils->SetStateProperty(expectedState) != KErrNone)
+ {
+ verdict = EInconclusive;
+ }
+ else
+ {
+ TDvbhState state = EDvbhStateNoHardware;
+ TInt result = iRxInfo->GetState(state);
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d getting state"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (state != expectedState)
+ {
+ INFO_PRINTF2(_L("Got unexpected state %d"), state);
+ verdict = EFail;
+ }
+ }
+ }
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+// 104
+TVerdict RDvbhHaiTest::DoGetSignalQualityTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ //First set the signal quality to a known value (expectedQuality) so that we know
+ //what we are trying to Get.
+ const TInt expectedQuality = EDvbhSignalQualityFair;
+ TInt result = iTestUtils->SetIntegerProperty(EDvbhPropertyKeySignalQuality, expectedQuality);
+ if (result != KErrNone)
+ {
+ INFO_PRINTF3(_L("Error %d setting signal quality property to %d"), result, expectedQuality);
+ verdict = EInconclusive;
+ }
+ else
+ {
+ TDvbhSignalQuality quality = EDvbhSignalQualityNoSignal;
+ result = iRxInfo->GetSignalQuality(quality);
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d getting signal quality"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (quality != expectedQuality)
+ {
+ INFO_PRINTF2(_L("Got unexpected quality %d"), quality);
+ verdict = EFail;
+ }
+ }
+ }
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+// 105
+TVerdict RDvbhHaiTest::DoGetPlatformTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ //First set the platform property to a known value (iDvbhTestPlatform) so that we know
+ //what we are trying to Get.
+ TPckg<TDvbhPlatformProperty> platformPckg(iDvbhTestPlatform);
+ TInt result = iTestUtils->SetByteArrayProperty(EDvbhPropertyKeyPlatform, platformPckg);
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d setting platform property."), result);
+ verdict = EInconclusive;
+ }
+ else
+ {
+ TDvbhPlatform platform;
+ TIp6Addr esgRoot;
+ result = iRxInfo->GetPlatform(platform, esgRoot);
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d getting platform."), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (!CDvbhTestUtil::ComparePlatforms(platform, iDvbhTestPlatform.iPlatform))
+ {
+ INFO_PRINTF1(_L("Got unexpected platform."));
+ verdict = EFail;
+ }
+ if (!esgRoot.IsEqual(iDvbhTestPlatform.iEsgRoot))
+ {
+ INFO_PRINTF1(_L("Got unexpected esgRoot."));
+ verdict = EFail;
+ }
+ }
+ }
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//Helper for test 106
+TVerdict RDvbhHaiTest::DoGetNetworkTime(TBool aExpectedValidity)
+ {
+ TVerdict verdict = EPass;
+
+ //Expected result is based on whether or not the platformId in the network time we
+ //set is valid.
+ TInt expectedResult = KErrNone;
+ if (iDvbhTestNetworkTime.iPlatformId == KDvbhInvalidPlatform)
+ {
+ expectedResult = KErrNotReady;
+ }
+
+ //Set the time to a known value (iDvbhTestNetworkTime) so that we know
+ //what we are trying to Get.
+ TPckg<TDvbhNetworkTime> timePckg(iDvbhTestNetworkTime);
+ TInt result = iTestUtils->SetByteArrayProperty(EDvbhPropertyKeyNetworkTime, timePckg);
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d setting network time property."), result);
+ verdict = EInconclusive;
+ }
+ else
+ {
+ TTime initialTime(TInt64(0));
+ TTime time = initialTime;
+ TBool valid = EFalse;
+ result = iRxInfo->GetNetworkTime(time, valid);
+ if (result != expectedResult)
+ {
+ INFO_PRINTF2(_L("Unexptected result %d getting network time."), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (result == KErrNone)
+ {
+ //Check if what we got was as expected
+ if (time != iDvbhTestNetworkTime.iNetworkTime || (valid != aExpectedValidity))
+ {
+ INFO_PRINTF1(_L("Got unexpected network time or validity."));
+ verdict = EFail;
+ }
+ }
+ else
+ {
+ //Check that the arguments weren't updated
+ if (time != initialTime || (valid != EFalse))
+ {
+ INFO_PRINTF1(_L("GetNetworkTime modified its args on failure."));
+ verdict = EFail;
+ }
+ }
+ }
+ }
+ return verdict;
+ }
+
+// 106
+TVerdict RDvbhHaiTest::DoGetNetworkTimeTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+
+ //The 1st two tests are positive tests, so we do not want to get KErrNotReady
+ //so we leave iDvbhTestNetworkTime.iPlatformId != KDvbhInvalidPlatform
+ //(which is how it is set by default).
+
+ //Test one: Set state to Receiving or Ready so that we expect a valid network time
+ TDvbhState state = EDvbhStateReady;
+ TInt result = iTestUtils->SetStateProperty(state);
+ if (result != KErrNone)
+ {
+ verdict = EInconclusive;
+ }
+ else
+ {
+ verdict = DoGetNetworkTime((state == EDvbhStateReady) || (state == EDvbhStateReceiving));
+ }
+
+ if (verdict != EPass)
+ {
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+ //Test two: Set state to something other than Ready or Receiving so we expect
+ //and invalid network time
+ state = EDvbhStateScanning;
+ result = iTestUtils->SetStateProperty(state);
+ if (result != KErrNone)
+ {
+ verdict = EInconclusive;
+ }
+ else
+ {
+ verdict = DoGetNetworkTime((state == EDvbhStateReady) || (state == EDvbhStateReceiving));
+ }
+
+ if (verdict != EPass)
+ {
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+ //Test three: Set iDvbhTestNetworkTime.iPlatformId = KDvbhInvalidPlatform
+ //which indicates the receiver is not ready to give network time, regardless
+ //of the state it is in. Will result in KErrNotReady being returned from
+ //CDvbhReceiverInfo::GetNetworkTime()
+ iDvbhTestNetworkTime.iPlatformId = KDvbhInvalidPlatform;
+ verdict = DoGetNetworkTime((state == EDvbhStateReady) || (state == EDvbhStateReceiving));
+
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+// 107
+TVerdict RDvbhHaiTest::DoGetPerformanceDataTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ //First set the data to a known value (expectedData) so that we know
+ //what we are trying to Get.
+ TPckg<TDvbhPerformanceData> dataPckg(iDvbhTestPerformanceData);
+ TInt result = iTestUtils->SetByteArrayProperty(EDvbhPropertyKeyPerformanceData, dataPckg);
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d setting performance data property."), result);
+ verdict = EInconclusive;
+ }
+ else
+ {
+ TDvbhPerformanceData data; //Is initialised to 0s by constructor.
+ result = iRxInfo->GetPerformanceData(data);
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d getting performance data."), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (!CDvbhTestUtil::ComparePerformanceDatas(data, iDvbhTestPerformanceData))
+ {
+ INFO_PRINTF1(_L("Got unexpected performance data."));
+ verdict = EFail;
+ }
+ }
+ }
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+// 108
+TVerdict RDvbhHaiTest::DoGetFrequencyTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ //First set the data to a known value (expectedFrequency) so that we know
+ //what we are trying to Get.
+ const TDvbhFrequency expectedFrequency = 150000;
+ TInt result = iTestUtils->SetIntegerProperty(EDvbhPropertyKeyFrequency, expectedFrequency);
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d setting frequency property."), result);
+ verdict = EInconclusive;
+ }
+ else
+ {
+ TDvbhFrequency frequency = 0;
+ result = iRxInfo->GetFrequency(frequency);
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d getting frequency."), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (frequency != expectedFrequency)
+ {
+ INFO_PRINTF2(_L("Got unexpected frequency %d."), frequency);
+ verdict = EFail;
+ }
+ }
+ }
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+// 109
+TVerdict RDvbhHaiTest::DoGetCellIdTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ //First set the data to a known value (expectedId) so that we know
+ //what we are trying to Get.
+ const TDvbhCellId expectedId = 1001;
+ TInt result = iTestUtils->SetIntegerProperty(EDvbhPropertyKeyCellId , expectedId);
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d setting cellId property."), result);
+ verdict = EInconclusive;
+ }
+ else
+ {
+ TDvbhCellId id = 0;
+ result = iRxInfo->GetCellId(id);
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d getting cellId."), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (id != expectedId)
+ {
+ INFO_PRINTF2(_L("Got unexpected cellId %d."), id);
+ verdict = EFail;
+ }
+ }
+ }
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+// 110
+TVerdict RDvbhHaiTest::DoGetNetworkIdTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ //First set the data to a known value (expectedId) so that we know
+ //what we are trying to Get.
+ const TDvbhNetworkId expectedId = 9876;
+ TInt result = iTestUtils->SetIntegerProperty(EDvbhPropertyKeyNetworkId , expectedId);
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d setting networkId property."), result);
+ verdict = EInconclusive;
+ }
+ else
+ {
+ TDvbhNetworkId id = 0;
+ result = iRxInfo->GetNetworkId(id);
+ if (result != KErrNone)
+ {
+ INFO_PRINTF2(_L("Error %d getting networkId."), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (id != expectedId)
+ {
+ INFO_PRINTF2(_L("Got unexpected networkId %d."), id);
+ verdict = EFail;
+ }
+ }
+ }
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//
+//
+// RDvbhReceiver negative tests
+//
+//
+
+//202
+TVerdict RDvbhHaiTest::DoPowerOnBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TRequestStatus status;
+ TInt result = receiver.PowerOn(status);
+ if (result != KErrNotReady)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::PowerOn returned %d"), result);
+ verdict = EFail;
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//203
+TVerdict RDvbhHaiTest::DoSetScanConfigurationBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TInt result = receiver.SetScanConfiguration(iDvbhTestScanConfiguration);
+ if (result != KErrNotReady)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::SetScanConfiguration returned %d"), result);
+ verdict = EFail;
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//204
+TVerdict RDvbhHaiTest::DoGetScanConfigurationBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TDvbhScanConfiguration config;
+ config.iScanStartFrequency = iDvbhTestScanConfiguration.iScanStartFrequency;
+ config.iScanEndFrequency = iDvbhTestScanConfiguration.iScanEndFrequency;
+ config.iSignalBandwidth = iDvbhTestScanConfiguration.iSignalBandwidth;
+ config.iScanOptions = iDvbhTestScanConfiguration.iScanOptions;
+
+ TInt result = receiver.GetScanConfiguration(config);
+ if (result != KErrNotReady)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::GetScanConfiguration returned %d"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (!iTestUtils->CompareScanConfigurations(iDvbhTestScanConfiguration, config))
+ {
+ INFO_PRINTF1(_L("RDvbhReceiver::GetScanConfiguration modified its arg on failure."));
+ verdict = EFail;
+ }
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//205
+TVerdict RDvbhHaiTest::DoGetDvbhVersionBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TVersion version = iDvbhTestDriverVersion;
+
+ TInt result = receiver.GetDvbhVersion(version);
+ if (result != KErrNotReady)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::GetDvbhVersion returned %d"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (!iTestUtils->CompareVersions(version, iDvbhTestDriverVersion))
+ {
+ INFO_PRINTF1(_L("RDvbhReceiver::GetDvbhVersion modified its arg on failure."));
+ verdict = EFail;
+ }
+ }
+
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//206
+TVerdict RDvbhHaiTest::DoGetHardwareInfoBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TDvbhHardwareInfo info = iDvbhTestHardwareInfo;
+
+ TInt result = receiver.GetHardwareInfo(info);
+ if (result != KErrNotReady)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::GetHardwareInfo returned %d"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (info.Compare(iDvbhTestHardwareInfo) != 0) // Compare returns 0 if they are the same
+ {
+ INFO_PRINTF1(_L("RDvbhReceiver::GetHardwareInfo modified its arg on failure."));
+ verdict = EFail;
+ }
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//207
+TVerdict RDvbhHaiTest::DoScanBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TRequestStatus status;
+ TInt result = receiver.Scan(*this, status);
+ if (result != KErrNotReady)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::Scan returned %d"), result);
+ verdict = EFail;
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//208
+TVerdict RDvbhHaiTest::DoSetPlatformBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TRequestStatus status;
+ TInt result = receiver.SetPlatform(iDvbhTestNetwork, iDvbhTestPlatform.iPlatform, status);
+ if (result != KErrNotReady)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::SetPlatform returned %d"), result);
+ verdict = EFail;
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//209
+TVerdict RDvbhHaiTest::DoCreateFilterBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TInt filterId = 100;
+ TInt origFilterId = filterId;
+ TRequestStatus status;
+ TInt result = receiver.CreateFilter(KDvbhTestIpV6Addr, filterId, status);
+ if (result != KErrNotReady)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::CreateFilter returned %d"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (filterId != origFilterId)
+ {
+ INFO_PRINTF1(_L("RDvbhReceiver::CreateFilter modified its arg on failure."));
+ verdict = EFail;
+ }
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//210
+TVerdict RDvbhHaiTest::DoCancelFilterBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TInt filterId = 7;
+ TInt result = receiver.CancelFilter(filterId);
+ if (result != KErrNotReady)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::CancelFilter returned %d"), result);
+ verdict = EFail;
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//211
+TVerdict RDvbhHaiTest::DoReceiveIpDataBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TInt result = receiver.ReceiveIPData(*this);
+ if (result != KErrNotReady)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::ReceiveIPData returned %d"), result);
+ verdict = EFail;
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//212
+TVerdict RDvbhHaiTest::DoUpdateNetworkTimeBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TRequestStatus status;
+ TInt result = receiver.UpdateNetworkTime(status);
+ if (result != KErrNotReady)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::UpdateNetworkTime returned %d"), result);
+ verdict = EFail;
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//213
+TVerdict RDvbhHaiTest::DoCustomAsyncBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TBuf8<32> output = _L8("Output");
+ TBuf8<32> origOutput = output;
+ TRequestStatus status;
+ TInt result = receiver.CustomCommand(KDvbhTestCustomCommand, KDvbhTestCustomCommandInput, output, status);
+ if (result != KErrNotReady)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::CustomCommand returned %d"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (output.Compare(origOutput) != 0) //Compare returns 0 if they are the same
+ {
+ INFO_PRINTF1(_L("RDvbhReceiver::CustomCommand modified its arg on failure."));
+ verdict = EFail;
+ }
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//214
+TVerdict RDvbhHaiTest::DoCancelCustomAsyncBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TRequestStatus status;
+ receiver.CancelCustomCommand(status);
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//215
+TVerdict RDvbhHaiTest::DoCustomBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TInt result = receiver.CustomCommand(KDvbhTestCustomCommand, KDvbhTestCustomCommandInput);
+ if (result != KErrNotReady)
+ {
+ INFO_PRINTF2(_L("RDvbhReceiver::CustomCommand returned %d"), result);
+ verdict = EFail;
+ }
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//216
+TVerdict RDvbhHaiTest::DoCloseBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ receiver.Close();
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//217
+TVerdict RDvbhHaiTest::DoPowerOffBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TRequestStatus status;
+ receiver.PowerOff(status);
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//218
+TVerdict RDvbhHaiTest::DoSetDisabledBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ TRequestStatus status;
+ receiver.SetDisabled(ETrue, status);
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//219
+TVerdict RDvbhHaiTest::DoCancelScanBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ receiver.CancelScan();
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//220
+TVerdict RDvbhHaiTest::DoCancelSetPlatformBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ receiver.CancelSetPlatform();
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//221
+TVerdict RDvbhHaiTest::DoCancelReceiveIpDataBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ receiver.CancelReceiveIPData();
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//222
+TVerdict RDvbhHaiTest::DoCancelUpdateNetworkTimeBeforeOpenTestStep()
+ {
+ __MM_HEAP_MARK;
+ TVerdict verdict = EPass;
+ {
+ RDvbhReceiver receiver;
+ receiver.CancelUpdateNetworkTime();
+ } //end of receiver's scope
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+
+
+// 301
+TVerdict RDvbhHaiTest::DoGetStateNoPropertiesTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ TDvbhState state = EDvbhStateReady;
+ TInt result = iRxInfo->GetState(state);
+ if (result != KErrNotFound)
+ {
+ INFO_PRINTF2(_L("Got error %d getting state but expected KErrNotFound"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (state != EDvbhStateReady)
+ {
+ INFO_PRINTF1(_L("RDvbhReceiverInfo::GetState modified its arg on failure."));
+ verdict = EFail;
+ }
+ }
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//302
+TVerdict RDvbhHaiTest::DoGetSignalQualityNoPropertiesTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ TDvbhSignalQuality quality = EDvbhSignalQualityVeryGood;
+ TInt result = iRxInfo->GetSignalQuality(quality);
+ if (result != KErrNotFound)
+ {
+ INFO_PRINTF2(_L("Got error %d getting signal quality but expected KErrNotFound"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (quality != EDvbhSignalQualityVeryGood)
+ {
+ INFO_PRINTF1(_L("RDvbhReceiverInfo::GetSignalQuality modified its arg on failure."));
+ verdict = EFail;
+ }
+ }
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//303
+TVerdict RDvbhHaiTest::DoGetPlatformNoPropertiesTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ TDvbhPlatform platform;
+ platform.iId = iDvbhTestPlatform.iPlatform.iId;
+ platform.iName = iDvbhTestPlatform.iPlatform.iName;
+
+ TIp6Addr esgRoot = iDvbhTestPlatform.iEsgRoot;
+
+ TInt result = iRxInfo->GetPlatform(platform, esgRoot);
+ if (result != KErrNotFound)
+ {
+ INFO_PRINTF2(_L("Got error %d getting platform but expected KErrNotFound"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (!CDvbhTestUtil::ComparePlatforms(platform, iDvbhTestPlatform.iPlatform) ||
+ !esgRoot.IsEqual(iDvbhTestPlatform.iEsgRoot) )
+ {
+ INFO_PRINTF1(_L("RDvbhReceiverInfo::GetPlatform modified its arg on failure."));
+ verdict = EFail;
+ }
+ }
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//304
+TVerdict RDvbhHaiTest::DoGetNetworkTimeNoPropertiesTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ TTime time = iDvbhTestTime;
+ TBool valid = ETrue;
+
+ TInt result = iRxInfo->GetNetworkTime(time, valid);
+ if (result != KErrNotFound)
+ {
+ INFO_PRINTF2(_L("Got error %d getting network time but expected KErrNotFound"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (time != iDvbhTestTime || !valid )
+ {
+ INFO_PRINTF1(_L("RDvbhReceiverInfo::GetNetworkTime modified its arg on failure."));
+ verdict = EFail;
+ }
+ }
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//305
+TVerdict RDvbhHaiTest::DoGetPerformanceDataNoPropertiesTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ TDvbhPerformanceData data;
+ data.iFilterCount = iDvbhTestPerformanceData.iFilterCount;
+ data.iMaxFilters = iDvbhTestPerformanceData. iMaxFilters;
+ data.iDataCount = iDvbhTestPerformanceData.iDataCount;
+ data.iWriteCount = iDvbhTestPerformanceData.iWriteCount;
+ data.iWriteCommandCount = iDvbhTestPerformanceData.iWriteCommandCount;
+ data.iReadCount = iDvbhTestPerformanceData.iReadCount;
+ data.iReadCommandCount = iDvbhTestPerformanceData.iReadCommandCount;
+
+ TInt result = iRxInfo->GetPerformanceData(data);
+ if (result != KErrNotFound)
+ {
+ INFO_PRINTF2(_L("Got error %d getting performance data but expected KErrNotFound"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (!CDvbhTestUtil::ComparePerformanceDatas(data, iDvbhTestPerformanceData))
+ {
+ INFO_PRINTF1(_L("RDvbhReceiverInfo::GetPerformaceData modified its arg on failure."));
+ verdict = EFail;
+ }
+ }
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//306
+TVerdict RDvbhHaiTest::DoGetFrequencyNoPropertiesTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ TDvbhFrequency frequency = KInitialFrequency;
+
+ TInt result = iRxInfo->GetFrequency(frequency);
+ if (result != KErrNotFound)
+ {
+ INFO_PRINTF2(_L("Got error %d getting frequency but expected KErrNotFound"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (frequency != KInitialFrequency)
+ {
+ INFO_PRINTF1(_L("RDvbhReceiverInfo::GetFrequency modified its arg on failure."));
+ verdict = EFail;
+ }
+ }
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//307
+TVerdict RDvbhHaiTest::DoGetCellIdNoPropertiesTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ TDvbhCellId cellId = KInitialCellId;
+
+ TInt result = iRxInfo->GetCellId(cellId);
+ if (result != KErrNotFound)
+ {
+ INFO_PRINTF2(_L("Got error %d getting cellId but expected KErrNotFound"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (cellId != KInitialCellId)
+ {
+ INFO_PRINTF1(_L("RDvbhReceiverInfo::GetCellId modified its arg on failure."));
+ verdict = EFail;
+ }
+ }
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+//308
+TVerdict RDvbhHaiTest::DoGetNetworkIdNoPropertiesTestStep()
+ {
+ TVerdict verdict = EPass;
+ __MM_HEAP_MARK;
+ TDvbhNetworkId networkId = KInitialNetworkId;
+
+ TInt result = iRxInfo->GetNetworkId(networkId);
+ if (result != KErrNotFound)
+ {
+ INFO_PRINTF2(_L("Got error %d getting networkId but expected KErrNotFound"), result);
+ verdict = EFail;
+ }
+ else
+ {
+ if (networkId != KInitialNetworkId)
+ {
+ INFO_PRINTF1(_L("RDvbhReceiverInfo::GetNetworkId modified its arg on failure."));
+ verdict = EFail;
+ }
+ }
+ __MM_HEAP_MARKEND;
+ return verdict;
+ }
+
+
+//309
+/**
+* Test added to improve conditional code coverage. It tries to get all the properties
+* that depend on state when the state property is defined, but no other properties are
+* defined.
+*/
+TVerdict RDvbhHaiTest::DoGetTestsNoProperties()
+ {
+ TVerdict verdict = EPass;
+
+ //Preamble will have defined the state property and set it to EDvbhStateReceiving. So
+ //we just have to try to get each (non-defined) property that depends on state.
+
+ //CellId
+ verdict = DoGetCellIdNoPropertiesTestStep();
+ if (verdict != EPass)
+ {
+ return verdict;
+ }
+
+ //Frequency
+ verdict = DoGetFrequencyNoPropertiesTestStep();
+ if (verdict != EPass)
+ {
+ return verdict;
+ }
+
+ //NetworkId
+ verdict = DoGetNetworkIdNoPropertiesTestStep();
+ if (verdict != EPass)
+ {
+ return verdict;
+ }
+
+ //Platform
+ verdict = DoGetPlatformNoPropertiesTestStep();
+ if (verdict != EPass)
+ {
+ return verdict;
+ }
+
+ //Signal Quality
+ verdict = DoGetSignalQualityNoPropertiesTestStep();
+ if (verdict != EPass)
+ {
+ return verdict;
+ }
+
+ return verdict;
+ }
+
+//MDvbhScanObserver
+void RDvbhHaiTest::DvbhScanProgress( const TDvbhScanResult& /*aResult*/ )
+ {
+ //Should never be called
+ ASSERT(EFalse);
+ }
+
+//MDvbhDataObserver
+void RDvbhHaiTest::DvbhPacketReceived( const TDesC8& /*aPacket*/ )
+ {
+ //Should never be called
+ ASSERT(EFalse);
+ }
+