applayerpluginsandutils/bookmarksupport/test/tbookmarkoom.cpp
changeset 0 b16258d2340f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/applayerpluginsandutils/bookmarksupport/test/tbookmarkoom.cpp	Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,83 @@
+// Copyright (c) 2006-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:
+//
+
+#include <e32base.h>
+#include "testutils.h"
+#include "tbmoomtester.h"
+
+_LIT(KTitle, "Bookmark OOM Tests");
+
+LOCAL_D RTest gTest( KTitle() );
+
+LOCAL_D CTestWrapper* gTestWrapper;
+
+
+LOCAL_C void StartOomTestL ()
+	{
+	CBmOomTester* oomTester = CBmOomTester::NewL ( *gTestWrapper );
+	CleanupStack::PushL ( oomTester );		
+	TRAPD ( err, oomTester->TestL () );	
+	User::LeaveIfError ( err );
+	CleanupStack::PopAndDestroy ( oomTester );	
+	}
+
+LOCAL_C void DoOomTestsL ()
+	{		
+	gTestWrapper->Next(_L("[Bookmark tests] OOM testing"));
+	TInt ret = KErrNoMemory;
+	TInt failAt = 0;
+	while(ret != KErrNone)
+		{
+		failAt++;
+		gTestWrapper->Tester().Printf(_L("OOM test step: %d\n"),failAt);
+
+		__UHEAP_SETFAIL( RHeap::EDeterministic, failAt );
+		__UHEAP_MARK;
+		TRAP( ret, StartOomTestL() );
+		__UHEAP_MARKEND;
+		__UHEAP_RESET;
+		
+		gTestWrapper->TESTE(ret == KErrNoMemory || ret == KErrNone, ret);
+		}
+	}
+
+LOCAL_C void DoTestL ()
+	{
+	gTestWrapper = CTestWrapper::NewLC ( gTest );
+	gTestWrapper->Start( _L( "@SYMTestCaseID IWS-APPPROTOCOLS-BOOKMARKS-TBOOKMARKOOM-0001 test" ) );
+	
+	TRAPD ( err, DoOomTestsL () );
+	gTestWrapper->TESTE ( err == KErrNone, err );
+
+	gTestWrapper->End ();
+	CleanupStack::PopAndDestroy ( gTestWrapper );
+	}
+
+GLDEF_C TInt E32Main()
+    {
+	__UHEAP_MARK;
+
+	// Install exception handler
+	CTrapCleanup* theCleanup = CTrapCleanup::New();
+
+	TRAPD( ret, DoTestL() );
+	gTest( ret == KErrNone );
+	
+	delete theCleanup;
+	
+	__UHEAP_MARKEND;
+	return KErrNone;
+    }
+