diff -r 000000000000 -r 40261b775718 mmhais/dvbhunittest/hai/dvbh/src/dvbhhaitest.cpp --- /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 + +/** +* 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 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 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 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 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 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 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); + } +