diff -r f72c4fccd381 -r b0e4b01681c5 multimediacommscontroller/mmccrtpsourcesink/tsrc/ut_rtpsourcesink/src/UT_CMccJitterCalculator.cpp --- a/multimediacommscontroller/mmccrtpsourcesink/tsrc/ut_rtpsourcesink/src/UT_CMccJitterCalculator.cpp Wed Sep 15 12:38:06 2010 +0300 +++ b/multimediacommscontroller/mmccrtpsourcesink/tsrc/ut_rtpsourcesink/src/UT_CMccJitterCalculator.cpp Wed Oct 13 14:59:15 2010 +0300 @@ -66,7 +66,7 @@ } // Observer impl -void UT_CMccJitterCalculator::SendJitterEvent( TMccRtpEventDataExtended aEvent, TInt aError ) +void UT_CMccJitterCalculator::SendJitterEvent( TMccRtpEventData aEvent, TInt aError ) { iLastEvent = aEvent; iLastError = aError; @@ -126,15 +126,10 @@ // Not active iCalculator->JitterObserving(); - iCalculator->iStartingSeqNum = 80; - iCalculator->iCurrentSeqNum = 100; - iCalculator->iReceivedPacketCounter = 20; // 100-80=20, no packets lost - iCalculator->iPacketsReceived = 5; iCalculator->iJitterLevelFromClient = 10000; iCalculator->iCurJitter = 10000; iCalculator->iJitterObsOn = ETrue; - iCalculator->iFrameLossObsOn = ETrue; // Time based reporting // @@ -145,264 +140,66 @@ iCalculator->iReportInterval = 100000; iCalculator->JitterObserving(); EUNIT_ASSERT_EQUALS( iLastEvent.iPacketsReceived, 0 ); - EUNIT_ASSERT_EQUALS( iLastEvent.iPacketLoss, 0 ); // Enough time elapsed but not over jitter level defined by client iCalculator->iReportInterval = 0; iCalculator->JitterObserving(); EUNIT_ASSERT_EQUALS( iLastEvent.iPacketsReceived, 0 ); - EUNIT_ASSERT_EQUALS( iLastEvent.iPacketLoss, 0 ); - // Jitter and packet loss level defined by client exceeded - iCalculator->iStartingSeqNum = 100; - iCalculator->iCurrentSeqNum = 125; - iCalculator->iPrevFerValue = 93000; // 9% - - iCalculator->iPrevExpectedPackets = 20; - iCalculator->iReceivedPacketCounter = 20; // 5 packets is lost. - + // Jitter level defined by client exceeded iCalculator->iJitterLevelFromClient = 10; - User::After( 5000 ); iCalculator->JitterObserving(); EUNIT_ASSERT_EQUALS( iLastEvent.iPacketsReceived, 5 ); // just making sure that callback was called - EUNIT_ASSERT_EQUALS( iLastEvent.iPacketLoss, 19 ); // Quality based reporting // - EUNIT_ASSERT_EQUALS( iCalculator->iReceivedPacketCounter, 20 ); // counter is not zeroed - iCalculator->iReportIntervalType = EMccQualityPacketBased; - iCalculator->iJitterObsOn = ETrue; - iCalculator->iFrameLossObsOn = ETrue; iLastEvent.iPacketsReceived = 0; - iLastEvent.iPacketLoss = 0; iCalculator->iReportInterval = 2; - iCalculator->iPacketsReceived = 2; - - iCalculator->iStartingSeqNum = 120; - iCalculator->iCurrentSeqNum = 121; - iCalculator->iReceivedPacketCounter = 1; - iCalculator->iCurJitter = 10000; - iCalculator->iJitterLevelFromClient = 10000; - - iCalculator->JitterObserving(); - //Check that nothing was changed in iLastEvent: - EUNIT_ASSERT_EQUALS( iLastEvent.iPacketsReceived, 0 ); - EUNIT_ASSERT_EQUALS( iLastEvent.iPacketLoss, 0 ); + iCalculator->iJitterObsOn = ETrue; - // One packet more... - iCalculator->iPrevFerValue = 0; // 0% - iCalculator->iCurrentSeqNum++; - iCalculator->iReceivedPacketCounter++; + // Not the packet when calculation is done + iCalculator->iReceivedPacketCounter = 0; iCalculator->JitterObserving(); - //Check that nothing was changed in iLastEvent: - EUNIT_ASSERT_EQUALS( iLastEvent.iPacketsReceived, 0 ); - EUNIT_ASSERT_EQUALS( iLastEvent.iPacketLoss, 0 ); + EUNIT_ASSERT_EQUALS( iCalculator->iReceivedPacketCounter, 1 ); - //Do the packet loss, with reporting: - iCalculator->iStartingSeqNum = 122; - iCalculator->iCurrentSeqNum = 126; - iCalculator->iPrevFerValue = 98000; // 9% - iCalculator->iPrevExpectedPackets = 1; - - iCalculator->iReceivedPacketCounter = 2; - iCalculator->iCurJitter = 10000; - iCalculator->iJitterLevelFromClient = 10; + // Now the interval is reached iCalculator->JitterObserving(); - //Check that values were changed in iLastEvent: - EUNIT_ASSERT_EQUALS( iLastEvent.iPacketsReceived, 2 ); - EUNIT_ASSERT_EQUALS( iLastEvent.iPacketLoss, 20 ); + EUNIT_ASSERT_EQUALS( iLastEvent.iPacketsReceived, 5 ); // just making sure that callback was called + EUNIT_ASSERT_EQUALS( iCalculator->iReceivedPacketCounter, 0 ); // counter is zeroed // Other reporting iCalculator->iReportIntervalType = 998; iLastEvent.iPacketsReceived = 0; iCalculator->iJitterObsOn = ETrue; - iCalculator->iFrameLossObsOn = ETrue; iCalculator->JitterObserving(); - EUNIT_ASSERT_EQUALS( iLastEvent.iPacketsReceived, 2 ); // just making sure that callback was called - EUNIT_ASSERT_EQUALS( iLastError, KErrArgument ); + EUNIT_ASSERT_EQUALS( iLastEvent.iPacketsReceived, 5 ); // just making sure that callback was called } void UT_CMccJitterCalculator::UT_CMccJitterCalculator_RtpPacketReceivedL() { - iCalculator->iReportIntervalType = EMccQualityPacketBased; // TBD: real assert for values const TInt KTestConversion = 8000; - TUint testSeqNum = 222; - iCalculator->iCurrentSeqNum = 0; - iCalculator->iStartingSeqNum = 0; - iCalculator->iReceivedPacketCounter = 0; // First packet - const TInt PacketTimestamp1 = 1000; - iCalculator->RtpPacketReceived( PacketTimestamp1, EFalse, testSeqNum ); + const TInt firstPacketTimestamp = 1000; + iCalculator->RtpPacketReceived( firstPacketTimestamp, EFalse ); EUNIT_ASSERT( iCalculator->iPrevPacketTransit != 0 ); - EUNIT_ASSERT( iCalculator->iCurrentSeqNum == 222 ); - EUNIT_ASSERT( iCalculator->iStartingSeqNum == 221 ); - EUNIT_ASSERT( iCalculator->iReceivedPacketCounter == 1 ); - testSeqNum++; //Increase seqnum for next packet. // Second packet (fake that it is the one when reporting) iCalculator->iPacketsReceived = 15; // ( KJitterReportInterval - 1 ) - const TInt PacketTimestamp2 = 3000; - iCalculator->RtpPacketReceived( PacketTimestamp2, EFalse, testSeqNum ); + const TInt secondPacketTimestamp = 3000; + iCalculator->RtpPacketReceived( secondPacketTimestamp, EFalse ); EUNIT_ASSERT( iCalculator->iCurJitter != 0 ); EUNIT_ASSERT_EQUALS( (TInt)iLastEvent.iPacketsReceived, 16 ); // just making sure that callback was called - EUNIT_ASSERT( iCalculator->iCurrentSeqNum == 223 ); - EUNIT_ASSERT( iCalculator->iStartingSeqNum == 221 ); - EUNIT_ASSERT( iCalculator->iReceivedPacketCounter == 2 ); - - - iCalculator->iReportIntervalType = EMccQualityTimeBased; - iCalculator->iFrameLossObsOn = EFalse; - testSeqNum++; //Increase seqnum for next packet. - - const TInt packetTimestamp3 = 4000; - iCalculator->RtpPacketReceived( packetTimestamp3, EFalse, testSeqNum ); - EUNIT_ASSERT( iCalculator->iCurJitter != 0 ); - EUNIT_ASSERT_EQUALS( (TInt)iLastEvent.iPacketsReceived, 16 ); // just making sure that callback wasn't called - EUNIT_ASSERT( iCalculator->iCurrentSeqNum == 223 ); - EUNIT_ASSERT( iCalculator->iStartingSeqNum == 221 ); - EUNIT_ASSERT( iCalculator->iReceivedPacketCounter == 2 ); - - // Sequence number start from 0 - iCalculator->iReportIntervalType = EMccQualityPacketBased; - iCalculator->iFrameLossObsOn = ETrue; - testSeqNum = 0; - const TInt packetTimestamp4 = 5000; - iCalculator->RtpPacketReceived( packetTimestamp4, EFalse, testSeqNum ); - EUNIT_ASSERT( iCalculator->iCurJitter != 0 ); - EUNIT_ASSERT_EQUALS( (TInt)iLastEvent.iPacketsReceived, 16 ); // just making sure that callback wasn't called - EUNIT_ASSERT_EQUALS( iCalculator->iCurrentSeqNum, 0); - EUNIT_ASSERT( iCalculator->iStartingSeqNum == 0 ); - EUNIT_ASSERT( iCalculator->iReceivedPacketCounter == 3 ); - - // Sequence number start from 1 - testSeqNum = 1; - const TInt packetTimestamp5 = 6000; - iCalculator->RtpPacketReceived( packetTimestamp5, EFalse, testSeqNum ); - EUNIT_ASSERT( iCalculator->iCurJitter != 0 ); - EUNIT_ASSERT_EQUALS( (TInt)iLastEvent.iPacketsReceived, 16 ); // just making sure that callback wasn't called - EUNIT_ASSERT_EQUALS( iCalculator->iCurrentSeqNum, 1); - EUNIT_ASSERT( iCalculator->iStartingSeqNum == 0 ); - EUNIT_ASSERT( iCalculator->iReceivedPacketCounter == 4 ); - } - -void UT_CMccJitterCalculator::UT_CMccJitterCalculator_CalculateFerL() - { - TUint32 returnValue( 0 ); - - // packet lost - TUint32 prevValue( 0 ); - TBool valueToadd( ETrue ); - TBool flagToAdd( ETrue ); - returnValue = iCalculator->CalculateFer( prevValue, valueToadd, flagToAdd ); - EUNIT_ASSERT_EQUALS( returnValue, 2000 ); - - // packet lost - // returnValue == 2000 - returnValue = iCalculator->CalculateFer( returnValue, valueToadd, flagToAdd ); - EUNIT_ASSERT_EQUALS( returnValue, 3992 ); - - // no packet lost - late packet - remove FER - // decrease fer - flagToAdd = EFalse; - // returnValue == 3996 - returnValue = iCalculator->CalculateFer( returnValue, valueToadd, flagToAdd ); - - EUNIT_ASSERT_EQUALS( returnValue, 2008 ); - - // no packet lost - late packet - remove FER - // decrease fer - flagToAdd = EFalse; - // returnValue == 5 - returnValue = 5; - returnValue = iCalculator->CalculateFer( returnValue, valueToadd, flagToAdd ); - - EUNIT_ASSERT_EQUALS( returnValue, 0); - } - -void UT_CMccJitterCalculator::UT_CMccJitterCalculator_CountPacketLossPercentageL() - { - TInt percentage( 0 ); - - iCalculator->iHomeTime.HomeTime(); - - // Not active - iCalculator->JitterObserving(); - - iCalculator->iPrevFerValue = 0; - iCalculator->iStartingSeqNum = 80; - iCalculator->iCurrentSeqNum = 100; - - // no packets lost - iCalculator->iPrevExpectedPackets = 20; - iCalculator->iReceivedPacketCounter = 20; - - iCalculator->CountPacketLossPercentage(); - - EUNIT_ASSERT_EQUALS( iCalculator->iPrevFerValue, 0 ); - EUNIT_ASSERT_EQUALS( iCalculator->iPrevExpectedPackets, 20 ); - EUNIT_ASSERT_EQUALS( iCalculator->iPrevPacketsReceived, 20 ); - - - // no packets lost, inorder - iCalculator->iCurrentSeqNum = 102; - iCalculator->iPrevExpectedPackets = 22; - - iCalculator->CountPacketLossPercentage(); - - EUNIT_ASSERT_EQUALS( iCalculator->iPrevFerValue, 0 ); - EUNIT_ASSERT_EQUALS( iCalculator->iPrevExpectedPackets, 22 ); - EUNIT_ASSERT_EQUALS( iCalculator->iPrevPacketsReceived, 20 ); - - - // packet lost - add FER by number of packets lost. - // 5 packets lost - iCalculator->iPrevFerValue = 0; - iCalculator->iStartingSeqNum = 80; - iCalculator->iCurrentSeqNum = 105; - - iCalculator->iPrevExpectedPackets = 20; - iCalculator->iReceivedPacketCounter = 20; - - percentage = iCalculator->CountPacketLossPercentage(); - - EUNIT_ASSERT_EQUALS( percentage, 1 ); - EUNIT_ASSERT_EQUALS( iCalculator->iPrevFerValue, 7952 ); - EUNIT_ASSERT_EQUALS( iCalculator->iPrevExpectedPackets, 25 ); - EUNIT_ASSERT_EQUALS( iCalculator->iPrevPacketsReceived, 20 ); - } - -void UT_CMccJitterCalculator::UT_CMccJitterCalculator_ResetCountersL() - { - - iCalculator->iPacketsReceived = 20; - iCalculator->iCurJitter = 200; - iCalculator->iPrevPacketTransit = 100; - iCalculator->iCurrentSeqNum = 25; - iCalculator->iStartingSeqNum = 2; - iCalculator->iReceivedPacketCounter = 30; - - iCalculator->ResetCounters(); - - EUNIT_ASSERT_EQUALS( iCalculator->iPacketsReceived, 0 ); - EUNIT_ASSERT_EQUALS( iCalculator->iCurJitter, 0 ); - EUNIT_ASSERT_EQUALS( iCalculator->iPrevPacketTransit, 0 ); - EUNIT_ASSERT_EQUALS( iCalculator->iCurrentSeqNum, 0 ); - EUNIT_ASSERT_EQUALS( iCalculator->iStartingSeqNum, 0 ); - EUNIT_ASSERT_EQUALS( iCalculator->iReceivedPacketCounter, 0 ); - } - - // TEST TABLE EUNIT_BEGIN_TEST_TABLE( UT_CMccJitterCalculator, - "CMccJitterCalculator", + "Add test suite description here.", "UNIT" ) EUNIT_TEST( @@ -426,29 +223,6 @@ "FUNCTIONALITY", SetupL, UT_CMccJitterCalculator_RtpPacketReceivedL, Teardown) - -EUNIT_TEST( - "CalculateFer - test ", - "CMccJitterCalculator", - "CalculateFer", - "FUNCTIONALITY", - SetupL, UT_CMccJitterCalculator_CalculateFerL, Teardown) - -EUNIT_TEST( - "CountPacketLossPercentage - test ", - "CMccJitterCalculator", - "CountPacketLossPercentage", - "FUNCTIONALITY", - SetupL, UT_CMccJitterCalculator_CountPacketLossPercentageL, Teardown) - -EUNIT_TEST( - "ResetCounters - test ", - "CMccJitterCalculator", - "ResetCounters", - "FUNCTIONALITY", - SetupL, UT_CMccJitterCalculator_ResetCountersL, Teardown) - - EUNIT_END_TEST_TABLE // END OF FILE