multimediacommscontroller/mmccsubcontroller/tsrc/ut_subcontroller/Src/UT_CMccSymDlStream.cpp
/*
* Copyright (c) 2004 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:
*
*/
// CLASS HEADER
#include "UT_CMccSymDlStream.h"
// EXTERNAL INCLUDES
#include <digia/eunit/eunitmacros.h>
// INTERNAL INCLUDES
#include "Mccsymdlstream.h"
#include "Mccrtpmanager.h"
#include "Mcctesteventhandler.h"
#include "mmccinterfacedef.h"
#include "mccresourcepool_stub.h"
#include "mcccodecconfigurator.h"
#include "mccmultiplexer.h"
#include "mmcccryptocontext.h"
#include "mccjitterbuffer.h"
#include "mccunittestmacros.h"
const TUid KRtpDataSource = { KImplUidRtpDataSource };
const TInt KAmrNbBitrate122 = 12200;
const TInt KIlbcBitrate20 = 15200;
const TInt KIlbcBitrate30 = 13330;
// CONSTRUCTION
UT_CMccSymDlStream* UT_CMccSymDlStream::NewL()
{
UT_CMccSymDlStream* self = UT_CMccSymDlStream::NewLC();
CleanupStack::Pop();
return self;
}
UT_CMccSymDlStream* UT_CMccSymDlStream::NewLC()
{
UT_CMccSymDlStream* self = new( ELeave ) UT_CMccSymDlStream();
CleanupStack::PushL( self );
self->ConstructL();
return self;
}
// Destructor (virtual by CBase)
UT_CMccSymDlStream::~UT_CMccSymDlStream()
{
}
// Default constructor
UT_CMccSymDlStream::UT_CMccSymDlStream()
{
}
// Second phase construct
void UT_CMccSymDlStream::ConstructL()
{
// The ConstructL from the base class CEUnitTestSuiteClass must be called.
// It generates the test case table.
CEUnitTestSuiteClass::ConstructL();
}
// METHODS
void UT_CMccSymDlStream::SetupL()
{
iResources = CMccResourcePoolStub::NewL();
iStreamId = 1;
iHandler = CMccTestEventHandler::NewL();
iRtpMan = CMccRtpManager::NewL( *iHandler, *iResources, iMccSessionId );
iStream = CMccSymDlStream::NewLC( iStreamId, iHandler, iResources, iRtpMan, 201 );
CleanupStack::Pop( iStream );
TPckgBuf<TInt> params( 30000 );
iSourceStub = MDataSource::NewSourceL( KRtpDataSource, params );
iSinkStub = MDataSink::NewSinkL( KUidMmfAudioOutput, KNullDesC8 );
iStream->AddSinkAndSourceL( iSinkStub, iSourceStub );
TMccCodecInfo cInfo;
cInfo.iFourCC = TFourCC( KMccFourCCIdAMRNB );
cInfo.iBitrate = KAmrNbBitrate122;
cInfo.iHwFrameTime = 20;
cInfo.iFrameSize = 32;
cInfo.iPtime = 20;
cInfo.iMaxPtime = 400; // recommended "limit" 200ms
cInfo.iJitterBufBufferLength = 100;
cInfo.iPayloadType = KMinDynamicPT;
cInfo.iCodecMode = EBandwidthEfficient;
cInfo.iPayloadFormatEncoder = KImplUidAmrPayloadFormatEncode;
cInfo.iPayloadFormatDecoder = KImplUidAmrPayloadFormatDecode;
_LIT8( KFmtp, "octet-align=0" );
TBuf8<13> buf( KFmtp() );
iStream->LoadCodecL( cInfo, buf );
TUint port;
iRtpMan->CreateSessionL( port, ETrue, EFalse );
}
void UT_CMccSymDlStream::Setup2L()
{
iResources = CMccResourcePoolStub::NewL();
iStreamId = 1;
iHandler = CMccTestEventHandler::NewL();
iRtpMan = CMccRtpManager::NewL( *iHandler, *iResources, iMccSessionId );
iStream = CMccSymDlStream::NewLC( iStreamId, iHandler, iResources, iRtpMan, 201 );
CleanupStack::Pop( iStream );
TPckgBuf<TInt> params( 30000 );
iSourceStub = MDataSource::NewSourceL( KRtpDataSource, params );
iSinkStub = MDataSink::NewSinkL( KUidMmfAudioOutput, KNullDesC8 );
iStream->AddSinkAndSourceL( iSinkStub, iSourceStub );
}
void UT_CMccSymDlStream::SetupIlbcL()
{
iResources = CMccResourcePoolStub::NewL();
iStreamId = 1;
iHandler = CMccTestEventHandler::NewL();
iRtpMan = CMccRtpManager::NewL( *iHandler, *iResources,iMccSessionId );
iStream = CMccSymDlStream::NewLC( iStreamId, iHandler, iResources, iRtpMan, 201 );
CleanupStack::Pop( iStream );
TPckgBuf<TInt> params( 30000 );
iSourceStub = MDataSource::NewSourceL( KRtpDataSource, params );
iSinkStub = MDataSink::NewSinkL( KUidMmfAudioOutput, KNullDesC8 );
iStream->AddSinkAndSourceL( iSinkStub, iSourceStub );
TMccCodecInfo cInfo;
cInfo.iFourCC = TFourCC( KMccFourCCIdILBC );
cInfo.iBitrate = KIlbcBitrate20;
cInfo.iHwFrameTime = 20;
cInfo.iFrameSize = 0;
cInfo.iPtime = 20;
cInfo.iMaxPtime = 200;
cInfo.iJitterBufBufferLength = 100;
cInfo.iPayloadType = KMinDynamicPT;
cInfo.iPayloadFormatEncoder = KImplUidiLBCPayloadFormatEncode;
cInfo.iPayloadFormatDecoder = KImplUidiLBCPayloadFormatDecode;
iStream->LoadCodecL( cInfo, KNullDesC8 );
TUint port;
iRtpMan->CreateSessionL( port, ETrue, EFalse );
}
void UT_CMccSymDlStream::Teardown()
{
if ( iStream )
{
delete iStream;
}
if ( iRtpMan )
{
delete iRtpMan;
}
if ( iHandler )
{
delete iHandler;
}
delete iSourceStub;
delete iSinkStub;
delete iResources;
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_SetPrioritySettingsLL( )
{
TMMFPrioritySettings priority;
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->SetPrioritySettingsL( priority ) );
iStream->iDatasink = NULL;
MCC_EUNIT_ASSERT_SPECIFIC_LEAVE( iStream->SetPrioritySettingsL( priority ), KErrNotReady );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_CreatePayloadFormatDecoderL()
{
MCC_EUNIT_ASSERT_SPECIFIC_LEAVE( iStream->CreatePayloadFormatDecoderL(), KErrAlreadyExists );
TMccCodecInfo cInfo;
cInfo.iFourCC = TFourCC( KMccFourCCIdAMRNB );
cInfo.iBitrate = KAmrNbBitrate122;
cInfo.iAlgoUsed = EGenRedUsed;
cInfo.iHwFrameTime = 20;
cInfo.iFrameSize = 32;
cInfo.iPtime = 20;
cInfo.iMaxPtime = 400; // recommended "limit" 200ms
cInfo.iJitterBufBufferLength = 100;
cInfo.iPayloadType = KMinDynamicPT;
cInfo.iRedundantPayload = KMinDynamicPT;
cInfo.iCodecMode = EBandwidthEfficient;
cInfo.iPayloadFormatEncoder = KImplUidAmrPayloadFormatEncode;
cInfo.iPayloadFormatDecoder = KImplUidAmrPayloadFormatDecode;
_LIT8( KFmtp, "octet-align=0" );
TBuf8<13> buf( KFmtp() );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->LoadCodecL( cInfo, buf ) );
delete iStream->iFormatDecode;
iStream->iFormatDecode = NULL;
delete iStream->iRedFormatDecode;
iStream->iRedFormatDecode = NULL;
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->CreatePayloadFormatDecoderL() );
cInfo.iAlgoUsed = ENoAlgoUsed;
iStream->iCodecInfo = cInfo;
delete iStream->iFormatDecode;
iStream->iFormatDecode = NULL;
delete iStream->iRedFormatDecode;
iStream->iRedFormatDecode = NULL;
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->CreatePayloadFormatDecoderL() );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_DoDynamicFrameSizeChangeL()
{
MCC_EUNIT_ASSERT_SPECIFIC_LEAVE( iStream->DoDynamicFrameSizeChangeL( 20 ), KErrNotReady );
/*
TMccCodecInfo cInfo;
cInfo.iFourCC = TFourCC( KMccFourCCIdAMRNB );
cInfo.iBitrate = KAmrNbBitrate122;
cInfo.iAlgoUsed = EGenRedUsed;
cInfo.iHwFrameTime = 20;
cInfo.iFrameSize = 32;
cInfo.iPtime = 20;
cInfo.iMaxPtime = 400; // recommended "limit" 200ms
cInfo.iJitterBufBufferLength = 100;
cInfo.iPayloadType = KMinDynamicPT;
cInfo.iRedundantPayload = KMinDynamicPT;
cInfo.iCodecMode = EBandwidthEfficient;
cInfo.iPayloadFormatEncoder = KImplUidAmrPayloadFormatEncode;
cInfo.iPayloadFormatDecoder = KImplUidAmrPayloadFormatDecode;
_LIT8( KFmtp, "octet-align=0" );
TBuf8<13> buf( KFmtp() );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->LoadCodecL( cInfo, buf ) );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->DoDynamicFrameSizeChangeL( 20 ) );
*/
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_MultiplexerSink()
{
iStream->iCodecInfo.iAlgoUsed = EGenRedUsed;
MDataSink* sink = iStream->MultiplexerSink();
EUNIT_ASSERT( !sink );
iStream->iCodecInfo.iAlgoUsed = ENoAlgoUsed;
sink = iStream->MultiplexerSink();
EUNIT_ASSERT( sink );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_AddSinkAndSourceLL( )
{
// These two will fail because of the NULL
EUNIT_ASSERT_LEAVE( iStream->AddSinkAndSourceL( reinterpret_cast<MDataSink*>( this ), NULL ) );
EUNIT_ASSERT_LEAVE( iStream->AddSinkAndSourceL( NULL, reinterpret_cast<MDataSource*>( this ) ) );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_LoadCodecLL( )
{
TMccCodecInfo cInfo;
cInfo.iFourCC = TFourCC( KMccFourCCIdAMRNB );
cInfo.iBitrate = KAmrNbBitrate122;
cInfo.iHwFrameTime = 20;
cInfo.iFrameSize = 32;
cInfo.iPtime = 20;
cInfo.iMaxPtime = 400; // recommended "limit" 200ms
cInfo.iJitterBufBufferLength = 100;
cInfo.iPayloadType = KMinDynamicPT;
cInfo.iCodecMode = EBandwidthEfficient;
cInfo.iPayloadFormatEncoder = KImplUidAmrPayloadFormatEncode;
cInfo.iPayloadFormatDecoder = KImplUidAmrPayloadFormatDecode;
_LIT8( KFmtp, "octet-align=0" );
TBuf8<13> buf( KFmtp() );
EUNIT_ASSERT( iStream->CurrentCodecState() == CMccSymStreamBase::EStateCodecNone );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->LoadCodecL( cInfo, buf ) );
EUNIT_ASSERT( iStream->CurrentCodecState() == CMccSymStreamBase::EStateCodecNegotiated );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->LoadCodecL( cInfo, buf ) );
EUNIT_ASSERT( iStream->CurrentCodecState() == CMccSymStreamBase::EStateCodecPrepared );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->LoadCodecL( cInfo, buf ) );
// It seems that loading the real codec causes memory leak
EUNIT_ASSERT( iStream->CurrentCodecState() == CMccSymStreamBase::EStateCodecPrepared );
iStream->UpdateCodecLoadingPermission( ETrue );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->LoadCodecL( cInfo, buf ) );
EUNIT_ASSERT( iStream->CurrentCodecState() == CMccSymStreamBase::EStateCodecLoaded );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->LoadCodecL( cInfo, buf ) );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_UpdateCodecInformationLL( )
{
TMccCodecInfo cInfo;
// iFormatDecode == NULL
EUNIT_ASSERT_LEAVE( iStream->UpdateCodecInformationL( iStream->iCodecInfo, cInfo ) );
cInfo.iFourCC = TFourCC( KMccFourCCIdAMRNB );
cInfo.iBitrate = KAmrNbBitrate122;
cInfo.iHwFrameTime = 20;
cInfo.iFrameSize = 32;
cInfo.iPtime = 20;
cInfo.iMaxPtime = 400; // recommended "limit" 200ms
cInfo.iJitterBufBufferLength = 100;
cInfo.iPayloadType = KMinDynamicPT;
cInfo.iCodecMode = EBandwidthEfficient;
cInfo.iPayloadFormatEncoder = KImplUidAmrPayloadFormatEncode;
cInfo.iPayloadFormatDecoder = KImplUidAmrPayloadFormatDecode;
_LIT8( KFmtp, "octet-align=0" );
TBuf8<13> buf( KFmtp() );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->LoadCodecL( cInfo, buf ) );
// TUint port;
// iRtpMan->CreateSessionL( port, ETrue, EFalse );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->UpdateCodecInformationL( iStream->iCodecInfo, cInfo ) );
iStream->iDatasink = NULL;
MCC_EUNIT_ASSERT_SPECIFIC_LEAVE( iStream->UpdateCodecInformationL(
iStream->iCodecInfo, cInfo ), KErrNotReady );
}
void UT_CMccSymDlStream::IlbcModeChangeTestL()
{
RDebug::Print( _L("UT_CMccSymDlStream::IlbcModeChangeTestL IN") );
iStream->PrimeL( 0 );
TMccCodecInfo cInfo;
cInfo.iFourCC = TFourCC( KMccFourCCIdILBC );
cInfo.iBitrate = KIlbcBitrate20;
cInfo.iHwFrameTime = 20;
cInfo.iFrameSize = 0;
cInfo.iPtime = 20;
cInfo.iMaxPtime = 200;
cInfo.iJitterBufBufferLength = 100;
cInfo.iPayloadType = KMinDynamicPT;
cInfo.iPayloadFormatEncoder = KImplUidiLBCPayloadFormatEncode;
cInfo.iPayloadFormatDecoder = KImplUidiLBCPayloadFormatDecode;
iStream->iState = CMccSymStreamBase::EStateStreaming;
// First update ptime
cInfo.iPtime = 40;
MCC_EUNIT_ASSERT_NO_LEAVE(
iStream->UpdateCodecInformationL( iStream->iCodecInfo, cInfo ) );
// Then update bitrate which requires also ptime adjustment
cInfo.iBitrate = KIlbcBitrate30;
cInfo.iPtime = 30;
cInfo.iMaxPtime = 180;
MCC_EUNIT_ASSERT_NO_LEAVE(
iStream->UpdateCodecInformationL( iStream->iCodecInfo, cInfo ) );
RDebug::Print( _L("UT_CMccSymDlStream::IlbcModeChangeTestL OUT") );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_PrimeLL( )
{
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->PrimeL(0) );
// Can be called twice
iResources->iControlled = EFalse;
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->PrimeL(0) );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_PlayLL( )
{
UT_CMccSymDlStream_PrimeLL();
TBool streamPaused( EFalse );
TBool enableRtcp( EFalse );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->PlayL( 0, streamPaused, enableRtcp ) );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_PauseLL( )
{
UT_CMccSymDlStream_PlayLL();
TBool enableRtcp( EFalse );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->PauseL( 0, enableRtcp ) );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_ResumeLL( )
{
UT_CMccSymDlStream_PauseLL();
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->ResumeL( 0, ETrue ) );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_StopLL( )
{
UT_CMccSymDlStream_PlayLL();
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->StopL( 0 ) );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_SetBalanceLL( )
{
TInt left( 0 ), right( 0 );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->SetBalanceL( left, right ) );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_GetBalanceLL( )
{
TInt left( 0 ), right( 0 );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->GetBalanceL( left, right ) );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_GetSSRCLL( )
{
TUint32 ssrc;
// KErrNotSupported
EUNIT_ASSERT_LEAVE( iStream->GetSSRCL( ssrc ) );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_ResetCountersLL( )
{
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->ResetCountersL() );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_SendMediaSignalL()
{
TMccEvent mmcevent;
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->SendMediaSignalL(mmcevent) );
iStream->iDatasource = NULL;
MCC_EUNIT_ASSERT_SPECIFIC_LEAVE( iStream->SendMediaSignalL(mmcevent), KErrNotReady );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_SendRTCPReceiverReportLL( )
{
MCC_EUNIT_ASSERT_SPECIFIC_LEAVE( iStream->SendRTCPReceiverReportL(), KErrNotReady );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->PrimeL(0) );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->SendRTCPReceiverReportL() );
iStream->iDatasource = NULL;
EUNIT_ASSERT_LEAVE( iStream->SendRTCPReceiverReportL() );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_SendRTCPSenderReportLL( )
{
EUNIT_ASSERT_LEAVE( iStream->SendRTCPSenderReportL() );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_StartInactivityTimerLL( )
{
TUint32 timeoutTime( 5000 );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->StartInactivityTimerL( timeoutTime ) );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_StopInactivityTimerLL( )
{
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->StopInactivityTimerL() );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_AudioRoutingLL()
{
TUint32 route;
// This actually works currently in emulator.
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->SetAudioRouteL( KMccAudioToPublic ) );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->GetAudioRouteL( route ) );
EUNIT_ASSERT( KMccAudioToPublic == route );
// KMccAudioToPrivate
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->SetAudioRouteL( KMccAudioToPrivate ) );
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->GetAudioRouteL( route ) );
EUNIT_ASSERT( KMccAudioToPrivate == route );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_IsUplink()
{
EUNIT_ASSERT( !iStream->IsUplink() );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_StandByL()
{
MCC_EUNIT_ASSERT_NO_LEAVE( iStream->StandByL() );
iStream->iDatasource = NULL;
EUNIT_ASSERT_LEAVE( iStream->StandByL() );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_JitterBufferError()
{
TInt err = MJitterBufferObserver::EBufferOverflow;
iStream->JitterBufferError( err );
err = MJitterBufferObserver::EBufferUnderflow;
iStream->JitterBufferError( err );
}
void UT_CMccSymDlStream::UT_CMccSymDlStream_BindContextIntoStreamL()
{
TMccCryptoContext context;
TUint32 endpointId = 0;
MCC_EUNIT_ASSERT_SPECIFIC_LEAVE( iStream->BindContextIntoStreamL( endpointId, context ), KErrNotFound );
endpointId = (TUint32)( iStream->iDatasource );
// Key ok (stubbed)
iStream->BindContextIntoStreamL( endpointId, context );
}
// TEST TABLE
EUNIT_BEGIN_TEST_TABLE(
UT_CMccSymDlStream,
"CMccSymDlStream",
"UNIT" )
EUNIT_TEST(
"LoadCodecL - test ",
"CMccSymDlStream",
"LoadCodecL",
"FUNCTIONALITY",
Setup2L, UT_CMccSymDlStream_LoadCodecLL, Teardown)
EUNIT_TEST(
"SetPrioritySettingsL - test ",
"CMccSymDlStream",
"SetPrioritySettingsL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_SetPrioritySettingsLL, Teardown)
EUNIT_TEST(
"CreatePayloadFormatDecoderL - test ",
"CMccSymDlStream",
"CreatePayloadFormatDecoderL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_CreatePayloadFormatDecoderL, Teardown)
EUNIT_TEST(
"DoDynamicFrameSizeChangeL - test ",
"CMccSymDlStream",
"DoDynamicFrameSizeChangeL",
"FUNCTIONALITY",
Setup2L, UT_CMccSymDlStream_DoDynamicFrameSizeChangeL, Teardown)
EUNIT_TEST(
"MultiplexerSink - test ",
"CMccSymDlStream",
"MultiplexerSink",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_MultiplexerSink, Teardown)
EUNIT_TEST(
"AddSinkAndSourceL - test ",
"CMccSymDlStream",
"AddSinkAndSourceL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_AddSinkAndSourceLL, Teardown)
EUNIT_TEST(
"UpdateCodecInformationL - test ",
"CMccSymDlStream",
"UpdateCodecInformationL",
"FUNCTIONALITY",
Setup2L, UT_CMccSymDlStream_UpdateCodecInformationLL, Teardown)
EUNIT_TEST(
"IlbcModeChange - test ",
"CMccSymDlStream",
"IlbcModeChangeTestL",
"FUNCTIONALITY",
SetupIlbcL, IlbcModeChangeTestL, Teardown)
EUNIT_TEST(
"PrimeL - test ",
"CMccSymDlStream",
"PrimeL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_PrimeLL, Teardown)
EUNIT_TEST(
"PlayL - test ",
"CMccSymDlStream",
"PlayL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_PlayLL, Teardown)
EUNIT_TEST(
"PauseL - test ",
"CMccSymDlStream",
"PauseL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_PauseLL, Teardown)
EUNIT_TEST(
"ResumeL - test ",
"CMccSymDlStream",
"ResumeL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_ResumeLL, Teardown)
EUNIT_TEST(
"StopL - test ",
"CMccSymDlStream",
"StopL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_StopLL, Teardown)
EUNIT_TEST(
"SetBalanceL - test ",
"CMccSymDlStream",
"SetBalanceL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_SetBalanceLL, Teardown)
EUNIT_TEST(
"GetBalanceL - test ",
"CMccSymDlStream",
"GetBalanceL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_GetBalanceLL, Teardown)
EUNIT_TEST(
"GetSSRCL - test ",
"CMccSymDlStream",
"GetSSRCL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_GetSSRCLL, Teardown)
EUNIT_TEST(
"ResetCountersL - test ",
"CMccSymDlStream",
"ResetCountersL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_ResetCountersLL, Teardown)
EUNIT_TEST(
"SendMediaSignalL - test ",
"CMccSymDlStream",
"SendMediaSignalL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_SendMediaSignalL, Teardown)
EUNIT_TEST(
"SendRTCPReceiverReportL - test ",
"CMccSymDlStream",
"SendRTCPReceiverReportL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_SendRTCPReceiverReportLL, Teardown)
EUNIT_TEST(
"SendRTCPSenderReportL - test ",
"CMccSymDlStream",
"SendRTCPSenderReportL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_SendRTCPSenderReportLL, Teardown)
EUNIT_TEST(
"StartInactivityTimerL - test ",
"CMccSymDlStream",
"StartInactivityTimerL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_StartInactivityTimerLL, Teardown)
EUNIT_TEST(
"StopInactivityTimerL - test ",
"CMccSymDlStream",
"StopInactivityTimerL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_StopInactivityTimerLL, Teardown)
EUNIT_TEST(
"AudioRoutingL - test ",
"CMccSymDlStream",
"AudioRoutingL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_AudioRoutingLL, Teardown)
EUNIT_TEST(
"IsUplink - test ",
"CMccSymDlStream",
"IsUplink",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_IsUplink, Teardown)
EUNIT_TEST(
"StandByL - test ",
"CMccSymDlStream",
"StandByL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_StandByL, Teardown)
EUNIT_TEST(
"JitterBufferError - test ",
"CMccSymDlStream",
"JitterBufferError",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_JitterBufferError, Teardown)
EUNIT_TEST(
"BindContextIntoStreamL - test ",
"CMccSymDlStream",
"BindContextIntoStreamL",
"FUNCTIONALITY",
SetupL, UT_CMccSymDlStream_BindContextIntoStreamL, Teardown)
EUNIT_END_TEST_TABLE
// END OF FILE