sl@0: // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: sl@0: sl@0: #include "ctestbase.h" sl@0: sl@0: sl@0: EXPORT_C void CTestBase::MemoryLeakTestL(CTestBase& aTest, CIpuTestHarness& aTestHarness) sl@0: { sl@0: // set aTestHarness to be in memoryleak mode sl@0: aTestHarness.SetTestMode(CIpuTestHarness::ETestModeMemoryLeak); sl@0: sl@0: TInt ii=0; sl@0: _LIT(KMemoryLeakMessage, "Memory Leak Testing on allocation %d\n"); sl@0: FOREVER sl@0: { sl@0: aTestHarness.LogIt(KMemoryLeakMessage, ii); sl@0: __UHEAP_MARK; sl@0: __UHEAP_FAILNEXT(ii); sl@0: TRAPD(err,aTest.DoTestsL()); sl@0: __UHEAP_MARKEND; sl@0: User::Heap().Check(); sl@0: __UHEAP_RESET; sl@0: // Break out if the test passes successfully; sl@0: if (err == KErrNone) sl@0: break; sl@0: if (err != KErrNoMemory) sl@0: { sl@0: // set aTestHarness back to normal mode sl@0: aTestHarness.SetTestMode(CIpuTestHarness::ETestModeNormal); sl@0: User::LeaveIfError(err); sl@0: } sl@0: ++ii; sl@0: } sl@0: // set aTestHarness back to normal mode sl@0: aTestHarness.SetTestMode(CIpuTestHarness::ETestModeNormal); sl@0: }