--- a/windowing/windowserver/tauto/TOOMDRAW.CPP Fri Jun 11 14:58:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +0,0 @@
-// Copyright (c) 1996-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:
-// Test out of memory redraws
-//
-//
-
-/**
- @file
- @test
- @internalComponent - Internal Symbian test code
-*/
-
-#include "TOOMDRAW.H"
-
-void DrawTestScreen(CWindowGc *aGc, const TSize &aSize)
- {
- aGc->SetPenSize(TSize(10,10));
- aGc->SetBrushStyle(CGraphicsContext::EVerticalHatchBrush);
- aGc->DrawRect(TRect(aSize));
- }
-
-CTestWin::CTestWin()
- {
- }
-
-void CTestWin::Draw()
- {
-#if defined(FULLLOGGING)
- _LIT(KLog,"Drawing Test Win:%d %d,%d");
- TLogMessageText buf;
- buf.Format(KLog,Size().iWidth>320?1:0,Size().iWidth,Size().iHeight);
- TheClient->LogMessage(buf);
-#endif
- DrawTestScreen(iGc,Size());
- }
-
-CBaseTestWin::CBaseTestWin() : CTBackedUpWin(EGray4)
- {}
-
-void CBaseTestWin::Resized(const TSize &aNewSize)
- {
- TheGc->Activate(*DrawableWin());
- DrawTestScreen(TheGc,aNewSize);
- TheGc->Deactivate();
- }
-
-CToomDraw::CToomDraw(CTestStep* aStep):
- CTWsGraphicsBase(aStep)
- {
- }
-
-CToomDraw::~CToomDraw()
- {
- TheClient->iWs.HeapSetFail(RHeap::ENone,0); //In case the test crashes and it hasn't been reset
- DeleteWindows();
- }
-
-void CToomDraw::DeleteWindows()
- {
- delete iTestWin;
- iTestWin=NULL;
- delete iBaseWin;
- iBaseWin=NULL;
- delete iBackWin;
- iBackWin=NULL;
- delete iBlankWin;
- iBlankWin=NULL;
- }
-
-void CToomDraw::ConstructL()
- {
- iScrSize=TheClient->iScreen->SizeInPixels();
- iBlankWin=new(ELeave) CTBlankWindow;
- iBlankWin->ConstructL(*TheClient->iGroup);
- iBlankWin->SetColor(TRgb::Gray4(2)); //Grey
- iBlankWin->Activate();
- iBackWin=new(ELeave) CTestWin();
- iBackWin->SetUpL(TPoint(0,iScrSize.iHeight/4), TSize(iScrSize.iWidth,iScrSize.iHeight/2), TheClient->iGroup, *TheClient->iGc);
- iBaseWin=new(ELeave) CBaseTestWin();
- iBaseWin->SetUpL(TPoint(iScrSize.iWidth*2/3,0), TSize(iScrSize.iWidth/3,iScrSize.iHeight), TheClient->iGroup, *TheClient->iGc);
- }
-
-void CToomDraw::CreateTestWinL()
- {
- iTestWin=new(ELeave) CTestWin();
- iTestWin->ConstructL(*TheClient->iGroup);
- iTestWin->SetExtL(TPoint(0,0), TSize(iScrSize.iWidth/3,iScrSize.iHeight));
- iTestWin->AssignGC(*TheClient->iGc);
- iTestWin->BaseWin()->SetShadowHeight(2);
- }
-
-void CToomDraw::TriggerOomDrawsL(TInt aCount)
- {
- if(iTestWin)
- {
- iTestWin->SetExtL(TPoint(),iScrSize);
- }
- delete iTestWin;
- iTestWin=NULL;
- CreateTestWinL();
- TheClient->iWs.HeapSetFail(RHeap::EDeterministic,aCount);
- iTestWin->Activate();
- TheClient->iWs.Finish();
- }
-
-TBool CToomDraw::CheckWindowsL()
- {
- TLogMessageText buf;
- TBool pass = DoCheckRect(iTestWin,iBaseWin);
- if (pass)
- {
- TEST(ETrue); //Adds one to test count
- #if defined(FULLLOGGING)
- _LIT(KLog,"OOM Draw Test Pass, State=%d");
- buf.Format(KLog,iState);
- #endif
- iRetryCount=0;
- }
- else
- {
- if (iRetryCount==4)
- {
- if ((iTest->RedrawStoreTypeL()==EPartialRedraw_PreserveStoredCmds ||
- iTest->RedrawStoreTypeL()==EPartialRedraw_FullRedrawSupport) && (iState==19 || iState==30) ||
- ((iState>=2 && iState<=6) && (iTest->RedrawStoreTypeL()==EPartialRedraw_None || iTest->RedrawStoreTypeL()==EPartialRedraw_FullRedrawSupport)))
- {
- #if defined(FULLLOGGING)
- _LIT(KLog,"OOM Draw Test Known F a i l, State=%d");
- buf.Format(KLog,iState);
- #endif
- pass=ETrue;
- }
- else
- {
- if (iFailAt==0)
- iFailAt=iState;
- ++iFails; //mark this test as failed
- #if defined(LOGGING)
- _LIT(KLog,"OOM Draw Test FAIL, State=%d <------- FAIL");
- buf.Format(KLog,iState);
- #endif
- ++iState; //and advance to next test
- }
- iRetryCount=0;
- }
- else
- {
- #if defined(FULLLOGGING)
- _LIT(KLog,"OOM Draw Test F a i l, State=%d retrying");
- buf.Format(KLog,iState);
- #endif
- if (++iRetryCount%2==0)
- iBackWin->DrawNow();
- }
- }
- if (buf.Length()>0)
- TheClient->LogMessage(buf);
- return pass;
- }
-
-void CToomDraw::RunTestCaseL(TInt aCurTestCase)
- {
- TBool testFinished = false;
- ((CToomDrawStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName);
- switch(aCurTestCase)
- {
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0110
-
-@SYMDEF DEF081259
-
-@SYMTestCaseDesc Test trying to draw when out of memory
-
-@SYMTestPriority High
-
-@SYMTestStatus Implemented
-
-@SYMTestActions Set out of memory and try drawing
-
-@SYMTestExpectedResults Out of memory drawing is handle correctly
-*/
- case 1:
- ((CToomDrawStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0110"));
- while (!testFinished)
- {
- if (iDoCheck)
- {
- TheClient->iWs.HeapSetFail(RHeap::ENone,0);
- TheClient->WaitForRedrawsToFinish();
- if (CheckWindowsL())
- {
- ++iState;
- if (iState==EMaxOOMState)
- DeleteWindows();
- }
- iDoCheck=EFalse;
- TheClient->iWs.Finish();
- }
- else
- {
- if (iState==EMaxOOMState)
- {
- if (iFails>0)
- {
- #if defined(LOGING)
- _LIT(KLog,"OOM Draw Test Failed, First Fail At %d, Number of Fails %d");
- TLogMessageText buf;
- buf.Format(KLog,iFailAt,iFails);
- TheClient->LogMessage(buf);
- #endif
- TEST(iFails==0);
- }
- User::After(500000); // Let the rest of the world catch up after OOM death
- testFinished = true;
- }
- else if (iState < 3 && iTest->IsFullRomL())
- testFinished = true;
- else
- TriggerOomDrawsL(iState);
- iDoCheck=ETrue;
- }
- }
- break;
- case 2:
- ((CToomDrawStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
- ((CToomDrawStep*)iStep)->CloseTMSGraphicsStep();
- TestComplete();
- break;
- }
- ((CToomDrawStep*)iStep)->RecordTestResultL();
- }
-
-__WS_CONSTRUCT_STEP__(oomDraw)