--- 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