mmlibs/mmfw/tsrc/mmfunittest/MidiClnt/TestStepMidiClntAllocFailOpen.cpp
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/tsrc/mmfunittest/MidiClnt/TestStepMidiClntAllocFailOpen.cpp	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,773 @@
+// Copyright (c) 2004-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:
+// This file contains an example Test step implementation 
+// This demonstrates the various functions provided
+// by the CTestStep base class which are available within
+// a test step 
+// 
+//
+
+// EPOC includes
+#include <e32base.h>
+#include <e32test.h>
+#include <e32keys.h>
+#include <c32comm.h>
+#include <f32file.h>
+#include <etel.h>
+#include <etelmm.h>
+#include <testframework.h>
+
+// Test system includes
+#include <testframework.h>
+
+#include "TSU_MMFMIDICLNT.h"
+#include "TS_MMFMIDICLNTsuite.h"
+
+#include "TestStepMidiClntAllocFailOpen.h"
+
+// --------------------------------------------
+
+/**
+ *
+ * Static constructor for CTestStepMidiClntAllocFailOpenFile.
+ *
+ *
+ * @return	"CTestStepMidiClntAllocFailOpenFile*"
+ *			The constructed CTestStepMidiClntAllocFailOpenFile
+ *
+ * @xxxx
+ * 
+ */
+CTestStepMidiClntAllocFailOpenFile* CTestStepMidiClntAllocFailOpenFile::NewL(const TDesC& aTestName)
+	{
+	CTestStepMidiClntAllocFailOpenFile* self = new(ELeave) CTestStepMidiClntAllocFailOpenFile(aTestName);
+	return self;
+	}
+
+/**
+ *
+ * Test step constructor.
+ * Each test step initialises its own name.
+ *
+ * @xxxx
+ * 
+ */
+CTestStepMidiClntAllocFailOpenFile::CTestStepMidiClntAllocFailOpenFile(const TDesC& aTestName)
+	{
+	// store the name of this test case
+	// this is the name that is used by the script file
+	iTestStepName = aTestName;
+	}
+
+/**
+ *
+ * Test step destructor.
+ *
+ * @xxxx
+ * 
+ */
+CTestStepMidiClntAllocFailOpenFile::~CTestStepMidiClntAllocFailOpenFile()
+	{
+	}
+
+
+/**
+ *
+ * Test step Preamble.
+ *
+ * @xxxx
+ * 
+ */
+TVerdict CTestStepMidiClntAllocFailOpenFile::DoTestStepPreambleL(void)
+	{
+	enum TVerdict verdict;
+	// This installs the scheduler
+	verdict = CTestMmfMidiClntStep::DoTestStepPreambleL();
+
+	//[ Printing to the console and log file ]
+	INFO_PRINTF1(iTestStepName);
+	INFO_PRINTF1(_L("This is a memory allocation failure test of CTestStepMidiClntAllocFailOpenFile"));
+	
+	if(!GetStringFromConfig(_L("SectionOne"), _L("filename"), iFileName))
+		{
+		verdict =  EInconclusive;
+		}
+		
+	//[ Create the MidiClientUtility ]
+	if ( (iMidiClnt = CMidiClientUtility::NewL(*this)) == NULL )
+		{
+		verdict = EInconclusive;
+		}
+
+	//[ Connect to File System using RFs ]
+	User::LeaveIfError(iFs.Connect());
+	User::LeaveIfError(iFs.ShareProtected());
+
+	//[ Open the file using RFile ]
+	INFO_PRINTF2(_L("Opening the file : %S"), &iFileName);
+	
+	TInt theRes = iFile.Open(iFs, iFileName, EFileRead);
+	if (theRes != KErrNone)
+		{
+		INFO_PRINTF2(_L("Errors in Opening the file : %S"), &iFileName);
+		User::Leave(theRes);
+		}
+		
+	return verdict;
+	}
+
+/**
+ *
+ * Test step Postamble.
+ *
+ * @xxxx
+ * 
+ */
+TVerdict CTestStepMidiClntAllocFailOpenFile::DoTestStepPostambleL(void)
+	{
+	//[ Create the MidiClientUtility ]
+	delete iMidiClnt;
+	iMidiClnt = NULL;
+	//[ Close Files ]
+	iFile.Close();
+	iFs.Close();
+	//[ Destroy the scheduler ]
+	return CTestMmfMidiClntStep::DoTestStepPostambleL();
+	}
+
+void CTestStepMidiClntAllocFailOpenFile::OpenFileAndStartSchedulerL()
+	{
+	iMidiClnt->OpenFile(iFileName);
+	CActiveScheduler::Start();
+	}
+
+void CTestStepMidiClntAllocFailOpenFile::OpenFileByHandleAndStartSchedulerL()
+	{
+	iMidiClnt->OpenFile(iFile);
+	CActiveScheduler::Start();
+	}
+
+
+/**
+ *
+ * Do the test step.
+ * Each test step must supply an implementation for DoTestStepL.
+ *
+ * @return	"TVerdict"
+ *			The result of the test step
+ *
+ * @xxxx
+ * 
+ */
+TVerdict CTestStepMidiClntAllocFailOpenFile::DoTestStepL()
+	{
+	//[ Initialise Class Variables ]
+	iTestStepResult = EPass;
+	
+	//[ Declare Local Variables ]
+    TInt err       = KErrNone;
+	TInt failCount = 1;
+	TBool completed = EFalse;
+	TBool badResult = EFalse; 
+	TBool reachedEnd = EFalse; // Note: declare outside loop to help with debugging
+	TBool useFileHandle = EFalse;
+	
+	if(iTestStepName.Compare(_L("MM-MMF-MIDICLNT-U-1003")) == 0)
+		{
+		useFileHandle = ETrue;
+		}
+	
+	
+	//[ Start of main ALLOC test loop ]
+	for(;;)	
+		{
+		__UHEAP_SETFAIL(RHeap::EFailNext ,failCount);
+		__MM_HEAP_MARK;
+		
+		if(!useFileHandle)
+			{
+			TRAP( err, OpenFileAndStartSchedulerL() );
+			}
+		else 
+			{
+			TRAP( err, OpenFileByHandleAndStartSchedulerL() );
+			}
+		
+		completed = EFalse;
+		if ((err == KErrNone) && (iError == KErrNone))
+			{
+			TAny *testAlloc = User::Alloc(1); // when this fails, we passed through all allocs within test
+			if (testAlloc==NULL)
+				{
+				reachedEnd = ETrue;
+				failCount--; // -= 1;
+				}
+			else
+				{
+				User::Free(testAlloc);
+				}
+			
+			// see if valid result and break if wrong - might be premature result
+			if (iMidiClnt == NULL || iError != KErrNone )
+				{
+				badResult = ETrue;
+				}
+			
+			if(iMidiClnt)
+				{
+				iMidiClnt->Close();
+				}
+
+			completed = reachedEnd || badResult;
+			}
+		else 
+			{
+				
+			if (((err != KErrNone) && (err != KErrNoMemory)) || 
+				((iError != KErrNone) && (iError != KErrNoMemory))) // bad error code
+				{
+				completed = ETrue;
+				}
+			}
+
+		__MM_HEAP_MARKEND;
+		__UHEAP_SETFAIL(RHeap::ENone ,0);
+
+		if (completed)
+			{
+			break; // exit loop
+			}
+		failCount++;
+		}
+
+	failCount -= 1; // Failcount of 1 equates to 0 successful allocs, etc.
+	
+	if (err != KErrNone || badResult)
+		{
+		if (badResult)
+			{
+			INFO_PRINTF2(_L("Bad result with %d memory allocations tested"), failCount);
+			}
+		else
+			{
+			INFO_PRINTF3(_L("Error(%d) with %d memory allocations tested"), err, failCount);
+			}
+		iTestStepResult = EFail;
+		}
+	else 
+		{
+		INFO_PRINTF2(_L("Completed OK with %d memory allocations tested"), failCount);
+		iTestStepResult = EPass;
+		}
+
+
+	INFO_PRINTF1(_L("finished with this test step"));
+	return iTestStepResult;
+	}
+
+// from MMidiClientUtilityObserver
+void CTestStepMidiClntAllocFailOpenFile::MmcuoStateChanged(TMidiState /*aOldState*/,TMidiState /*aNewState*/,const TTimeIntervalMicroSeconds& /*aTime*/,TInt aError)
+	{
+	iError = aError;
+	CActiveScheduler::Stop();
+	}
+
+void CTestStepMidiClntAllocFailOpenFile::MmcuoTempoChanged(TInt /*aMicroBeatsPerMinute*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenFile::MmcuoVolumeChanged(TInt /*aChannel*/,TReal32 /*aVolumeInDecibels*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenFile::MmcuoMuteChanged(TInt /*aChannel*/,TBool /*aMuted*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenFile::MmcuoSyncUpdate(const TTimeIntervalMicroSeconds& /*aMicroSeconds*/,TInt64 /*aMicroBeats*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenFile::MmcuoMetaDataEntryFound(const TInt /*aMetaDataEntryId*/,const TTimeIntervalMicroSeconds& /*aPosition*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenFile::MmcuoMipMessageReceived(const RArray<TMipMessageEntry>& /*aEntry*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenFile::MmcuoPolyphonyChanged(TInt /*aNewPolyphony*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenFile::MmcuoInstrumentChanged(TInt /*aChannel*/,TInt /*aBankId*/,TInt /*aInstrumentId*/)
+	{
+	}
+
+
+// --------------------------------------------
+
+/**
+ *
+ * Static constructor for CTestStepMidiClntAllocFailOpenDes.
+ *
+ *
+ * @return	"CTestStepMidiClntAllocFailOpenDes*"
+ *			The constructed CTestStepMidiClntAllocFailOpenDes
+ *
+ * @xxxx
+ * 
+ */
+CTestStepMidiClntAllocFailOpenDes* CTestStepMidiClntAllocFailOpenDes::NewL()
+	{
+	CTestStepMidiClntAllocFailOpenDes* self = new(ELeave) CTestStepMidiClntAllocFailOpenDes;
+	return self;
+	}
+
+/**
+ *
+ * Test step constructor.
+ * Each test step initialises its own name.
+ *
+ * @xxxx
+ * 
+ */
+CTestStepMidiClntAllocFailOpenDes::CTestStepMidiClntAllocFailOpenDes()
+	{
+	// store the name of this test case
+	// this is the name that is used by the script file
+	iTestStepName = _L("MM-MMF-MIDICLNT-U-0201-CP");
+	}
+
+/**
+ *
+ * Test step destructor.
+ *
+ * @xxxx
+ * 
+ */
+CTestStepMidiClntAllocFailOpenDes::~CTestStepMidiClntAllocFailOpenDes()
+	{
+	}
+
+
+/**
+ *
+ * Test step Preamble.
+ *
+ * @xxxx
+ * 
+ */
+TVerdict CTestStepMidiClntAllocFailOpenDes::DoTestStepPreambleL(void)
+	{
+	 enum TVerdict verdict;
+	 //this installs the scheduler
+	 verdict = CTestMmfMidiClntStep::DoTestStepPreambleL();
+
+	// Printing to the console and log file
+	INFO_PRINTF1(_L("MM-MMF-MIDICLNT-U-0201-CP"));
+	INFO_PRINTF1(_L("this is a memory allocation failure test of CTestStepMidiClntAllocFailOpenDes"));
+	
+	if(!GetStringFromConfig(_L("SectionOne"), _L("filename"), iFilename))
+		return EInconclusive;
+
+	RFs fs;
+	RFile file;
+	TInt size = 0;
+
+	// connect to file system and open file
+	User::LeaveIfError(fs.Connect());
+	User::LeaveIfError(file.Open(fs,iFilename,EFileRead));
+	CleanupClosePushL(file);
+
+	// Set HBuf size
+	User::LeaveIfError(file.Size(size));
+	INFO_PRINTF2(_L("size of file = %d\n"),size);
+
+	iAudio = HBufC8::NewMaxL(size);
+
+	// read data into Hbuf
+	TPtr8 bufferDes(iAudio->Des());
+	User::LeaveIfError(file.Read(bufferDes));
+	
+	CleanupStack::PopAndDestroy(); //file
+
+	// create the Midi utility
+	if ( (iMidiClnt = CMidiClientUtility::NewL(*this)) == NULL )
+		return EInconclusive;
+
+	return verdict;
+	}
+
+/**
+ *
+ * Test step Postamble.
+ *
+ * @xxxx
+ * 
+ */
+TVerdict CTestStepMidiClntAllocFailOpenDes::DoTestStepPostambleL(void)
+	{
+	delete iMidiClnt;
+	iMidiClnt = NULL;
+	delete iAudio;
+	iAudio = NULL;
+	//[ Destroy the scheduler ]
+	return CTestMmfMidiClntStep::DoTestStepPostambleL();
+	}
+
+void CTestStepMidiClntAllocFailOpenDes::OpenDesAndStartSchedulerL()
+	{
+	iMidiClnt->OpenDes(iAudio->Des());
+	CActiveScheduler::Start();
+	}
+
+/**
+ *
+ * Do the test step.
+ * Each test step must supply an implementation for DoTestStepL.
+ *
+ * @return	"TVerdict"
+ *			The result of the test step
+ *
+ * @xxxx
+ * 
+ */
+TVerdict CTestStepMidiClntAllocFailOpenDes::DoTestStepL()
+	{
+	iTestStepResult = EPass;
+    TInt err       = KErrNone;
+
+	TInt failCount = 1;
+	TBool completed = EFalse;
+	TBool badResult = EFalse; 
+	TBool reachedEnd = EFalse; // Note: declare outside loop to help with debugging
+	for(;;)	
+		{
+		__UHEAP_SETFAIL(RHeap::EFailNext ,failCount);
+		__MM_HEAP_MARK;
+
+		TRAP( err, OpenDesAndStartSchedulerL() );
+
+		completed = EFalse;
+		if ((err == KErrNone) && (iError == KErrNone))
+			{
+			TAny *testAlloc = User::Alloc(1); // when this fails, we passed through all allocs within test
+			if (testAlloc==NULL)
+				{
+				reachedEnd = ETrue;
+				failCount--; // -= 1;
+				}
+			else
+				User::Free(testAlloc);
+
+			
+			// see if valid result and break if wrong - might be premature result
+			if (iMidiClnt == NULL ||
+				iError != KErrNone )
+				badResult = ETrue;
+
+			if(iMidiClnt)
+				iMidiClnt->Close();
+			
+			completed = reachedEnd || badResult;
+			}
+		else if (((err != KErrNone) && (err != KErrNoMemory)) || 
+				((iError != KErrNone) && (iError != KErrNoMemory))) // bad error code
+			completed = ETrue;
+
+		__MM_HEAP_MARKEND;
+		__UHEAP_SETFAIL(RHeap::ENone ,0);
+
+		if (completed)
+			break; // exit loop
+
+		failCount++;
+		}
+
+	delete iMidiClnt;
+	iMidiClnt = NULL;
+
+	//failCount -= 1; // Failcount of 1 equates to 0 successful allocs, etc.
+
+	if (err != KErrNone || badResult)
+		{
+		if (badResult)
+			INFO_PRINTF2(_L("  Bad result with %d memory allocations tested"), failCount);
+		else
+			INFO_PRINTF3(_L("  Error(%d) with %d memory allocations tested"), err, failCount);
+		iTestStepResult = EFail;
+		}
+	else 
+		{
+		INFO_PRINTF2(_L("  Completed OK with %d memory allocations tested"), failCount);
+		iTestStepResult = EPass;
+		}
+
+	INFO_PRINTF1(_L("finished with this test step"));
+	// test steps return a result
+	return iTestStepResult;
+	}
+
+	// from MMidiClientUtilityObserver
+void CTestStepMidiClntAllocFailOpenDes::MmcuoStateChanged(TMidiState /*aOldState*/,TMidiState /*aNewState*/,const TTimeIntervalMicroSeconds& /*aTime*/,TInt aError)
+	{
+	iError = aError;
+	CActiveScheduler::Stop();
+	}
+
+void CTestStepMidiClntAllocFailOpenDes::MmcuoTempoChanged(TInt /*aMicroBeatsPerMinute*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenDes::MmcuoVolumeChanged(TInt /*aChannel*/,TReal32 /*aVolumeInDecibels*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenDes::MmcuoMuteChanged(TInt /*aChannel*/,TBool /*aMuted*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenDes::MmcuoSyncUpdate(const TTimeIntervalMicroSeconds& /*aMicroSeconds*/,TInt64 /*aMicroBeats*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenDes::MmcuoMetaDataEntryFound(const TInt /*aMetaDataEntryId*/,const TTimeIntervalMicroSeconds& /*aPosition*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenDes::MmcuoMipMessageReceived(const RArray<TMipMessageEntry>& /*aEntry*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenDes::MmcuoPolyphonyChanged(TInt /*aNewPolyphony*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenDes::MmcuoInstrumentChanged(TInt /*aChannel*/,TInt /*aBankId*/,TInt /*aInstrumentId*/)
+	{
+	}
+
+
+// --------------------------------------------
+
+/**
+ *
+ * Static constructor for CTestStepMidiClntAllocFailOpenUrl.
+ *
+ *
+ * @return	"CTestStepMidiClntAllocFailOpenUrl*"
+ *			The constructed CTestStepMidiClntAllocFailOpenUrl
+ *
+ * @xxxx
+ * 
+ */
+CTestStepMidiClntAllocFailOpenUrl* CTestStepMidiClntAllocFailOpenUrl::NewL()
+	{
+	CTestStepMidiClntAllocFailOpenUrl* self = new(ELeave) CTestStepMidiClntAllocFailOpenUrl;
+	return self;
+	}
+
+/**
+ *
+ * Test step constructor.
+ * Each test step initialises its own name.
+ *
+ * @xxxx
+ * 
+ */
+CTestStepMidiClntAllocFailOpenUrl::CTestStepMidiClntAllocFailOpenUrl()
+	{
+	// store the name of this test case
+	// this is the name that is used by the script file
+	iTestStepName = _L("MM-MMF-MIDICLNT-U-0202-CP");
+	}
+
+/**
+ *
+ * Test step destructor.
+ *
+ * @xxxx
+ * 
+ */
+CTestStepMidiClntAllocFailOpenUrl::~CTestStepMidiClntAllocFailOpenUrl()
+	{
+	}
+
+
+/**
+ *
+ * Test step Preamble.
+ *
+ * @xxxx
+ * 
+ */
+TVerdict CTestStepMidiClntAllocFailOpenUrl::DoTestStepPreambleL(void)
+	{
+	 enum TVerdict verdict;
+	 // this installs the scheduler
+	 verdict = CTestMmfMidiClntStep::DoTestStepPreambleL();
+
+	// Printing to the console and log file
+	INFO_PRINTF1(_L("MM-MMF-MIDICLNT-U-0202-CP"));
+	INFO_PRINTF1(_L("this is a memory allocation failure test of CTestStepMidiClntAllocFailOpenUrl"));
+	
+	if(!GetStringFromConfig(iSectName,iKeyName,iUrlname))
+		return EInconclusive;
+
+	/*
+	if(!GetStringFromConfig(_L("SectionOne"), _L("AudioPlayFName7"), iFileName) ||
+	   !GetStringFromConfig(_L("SectionOne"), _L("AudioFNameToConvert"), iFileName2))
+		{
+		//INFO_PRINTF2(_L("file name %s not found..."), fileptr);
+		return EInconclusive;
+		}
+	*/
+
+	// create the Midi utility
+	if ( (iMidiClnt = CMidiClientUtility::NewL(*this)) == NULL )
+		verdict = EInconclusive;
+
+	return verdict;
+
+	}
+
+/**
+ *
+ * Test step Postamble.
+ *
+ * @xxxx
+ * 
+ */
+TVerdict CTestStepMidiClntAllocFailOpenUrl::DoTestStepPostambleL(void)
+	{
+	delete iMidiClnt;
+	iMidiClnt = NULL;
+	//[ Destroy the scheduler ]
+	return CTestMmfMidiClntStep::DoTestStepPostambleL();
+	}
+
+void CTestStepMidiClntAllocFailOpenUrl::OpenUrlAndStartSchedulerL()
+	{
+	iMidiClnt->OpenUrl(iUrlname);
+	CActiveScheduler::Start();
+	}
+
+/**
+ *
+ * Do the test step.
+ * Each test step must supply an implementation for DoTestStepL.
+ *
+ * @return	"TVerdict"
+ *			The result of the test step
+ *
+ * @xxxx
+ * 
+ */
+TVerdict CTestStepMidiClntAllocFailOpenUrl::DoTestStepL()
+	{
+	iTestStepResult = EPass;
+    TInt err       = KErrNone;
+
+	TInt failCount = 1;
+	TBool completed = EFalse;
+	TBool badResult = EFalse; 
+	TBool reachedEnd = EFalse; // Note: declare outside loop to help with debugging
+	for(;;)	
+		{
+		__UHEAP_SETFAIL(RHeap::EFailNext ,failCount);
+		__MM_HEAP_MARK;
+
+		TRAP( err, OpenUrlAndStartSchedulerL() );
+
+		completed = EFalse;
+		if ((err == KErrNone) && (iError == KErrNone))
+			{
+			TAny *testAlloc = User::Alloc(1); // when this fails, we passed through all allocs within test
+			if (testAlloc==NULL)
+				{
+				reachedEnd = ETrue;
+				failCount--; // -= 1;
+				}
+			else
+				User::Free(testAlloc);
+
+			
+			// see if valid result and break if wrong - might be premature result
+			if (iMidiClnt == NULL ||
+				iError != KErrNone )
+				badResult = ETrue;
+
+			if(iMidiClnt)
+				iMidiClnt->Close();
+			
+			completed = reachedEnd || badResult;
+			}
+		else if (((err != KErrNone) && (err != KErrNoMemory)) || 
+				((iError != KErrNone) && (iError != KErrNoMemory))) // bad error code
+			completed = ETrue;
+
+		__MM_HEAP_MARKEND;
+		__UHEAP_SETFAIL(RHeap::ENone ,0);
+
+		if (completed)
+			break; // exit loop
+
+		failCount++;
+		}
+
+	delete iMidiClnt;
+	iMidiClnt = NULL;
+
+	//failCount -= 1; // Failcount of 1 equates to 0 successful allocs, etc.
+
+	if (err != KErrNone || badResult)
+		{
+		if (badResult)
+			INFO_PRINTF2(_L("  Bad result with %d memory allocations tested"), failCount);
+		else
+			INFO_PRINTF3(_L("  Error(%d) with %d memory allocations tested"), err, failCount);
+		iTestStepResult = EFail;
+		}
+	else 
+		{
+		INFO_PRINTF2(_L("  Completed OK with %d memory allocations tested"), failCount);
+		iTestStepResult = EPass;
+		}
+
+	INFO_PRINTF1(_L("finished with this test step"));
+	// test steps return a result
+	return iTestStepResult;
+	}
+
+	// from MMidiClientUtilityObserver
+void CTestStepMidiClntAllocFailOpenUrl::MmcuoStateChanged(TMidiState /*aOldState*/,TMidiState /*aNewState*/,const TTimeIntervalMicroSeconds& /*aTime*/,TInt aError)
+	{
+	iError = aError;
+	CActiveScheduler::Stop();
+	}
+
+void CTestStepMidiClntAllocFailOpenUrl::MmcuoTempoChanged(TInt /*aMicroBeatsPerMinute*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenUrl::MmcuoVolumeChanged(TInt /*aChannel*/,TReal32 /*aVolumeInDecibels*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenUrl::MmcuoMuteChanged(TInt /*aChannel*/,TBool /*aMuted*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenUrl::MmcuoSyncUpdate(const TTimeIntervalMicroSeconds& /*aMicroSeconds*/,TInt64 /*aMicroBeats*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenUrl::MmcuoMetaDataEntryFound(const TInt /*aMetaDataEntryId*/,const TTimeIntervalMicroSeconds& /*aPosition*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenUrl::MmcuoMipMessageReceived(const RArray<TMipMessageEntry>& /*aEntry*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenUrl::MmcuoPolyphonyChanged(TInt /*aNewPolyphony*/)
+	{
+	}
+void CTestStepMidiClntAllocFailOpenUrl::MmcuoInstrumentChanged(TInt /*aChannel*/,TInt /*aBankId*/,TInt /*aInstrumentId*/)
+	{
+	}
+
+
+