author | Gareth Stockwell <gareth.stockwell@accenture.com> |
Fri, 22 Oct 2010 11:38:29 +0100 | |
branch | bug235_bringup_0 |
changeset 206 | c170e304623f |
parent 0 | 5d03bc08d59c |
permissions | -rw-r--r-- |
// Copyright (c) 2007-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 "tgeneraldrawing.h" #include <e32math.h> CTGeneralDrawing::CTGeneralDrawing() { SetTestStepName(KTDirectGdiGeneralDrawingStep); } CTGeneralDrawing::~CTGeneralDrawing() { } /** @SYMTestCaseID GRAPHICS-DIRECTGDI-GENERALDRAWING-0001 @SYMPREQ PREQ39 @SYMREQ REQ9195 REQ9201 REQ9202 REQ9222 REQ9223 REQ9236 REQ9237 @SYMTestPriority Critical @SYMTestCaseDesc Check the results of drawing to a context which has been reset, the default context settings should be used rather than any previously set settings. @SYMTestActions Set a pen color origin pen style pen size brush color brush style brush pattern brush origin draw mode line pos and draw a rect, then reset the context and draw the another rect. The second rect should be drawn with the default settings and not any of the previously set settings. Draw a third rect with a brush pattern in draw mode write alpha, reset again and draw a fourth rect. The fourth rect should also be drawn with default settings. @SYMTestExpectedResults The second rectangle should be drawn with the default settings rather then any of the previously set settings. The fourth rectangle should also be drawn with default settings. Valid bitmap should be created. This bitmap should be the same as appropriate reference bitmap. @SYMTestStatus Implemented */ void CTGeneralDrawing::TestDrawToResetContextL() { _LIT(KTestName, "Drawing-DrawToResetContext"); //test case name if(!iRunningOomTests) { INFO_PRINTF1(KTestName); } // create a brush pattern programatically so we can test EPatternedBrush TUidPixelFormat pixelFormat = iTestParams.iTargetPixelFormat; TSize patternSize(50,50); CFbsBitmap* pattern = CreateCheckedBoardBitmapL(pixelFormat, patternSize); CleanupStack::PushL(pattern); TEST(pattern != NULL); ResetGc(); // Draw a rectangle and line with lots of settings set iGc->SetOrigin(TPoint(2,2)); iGc->SetPenColor(KRgbRed); iGc->SetPenStyle(DirectGdi::EDotDashPen); iGc->SetPenSize(TSize(3,3)); iGc->SetBrushColor(KRgbYellow); iGc->SetBrushStyle(DirectGdi::EDiamondCrossHatchBrush); iGc->SetBrushOrigin(TPoint(1,1)); iGc->DrawRect(TRect(10,10,140,30)); iGc->MoveTo(TPoint(10,20)); iGc->DrawLineBy(TPoint(150,0)); iGc->Reset(); TESTNOERROR(iGc->GetError()); // Draw a rectangle and line with no settings set iGc->DrawRect(TRect(10,40,140,60)); iGc->DrawLine(TPoint(10,50), TPoint(150,50)); // Draw a rectangle and line with a brush pattern in draw mode write alpha TRgb redWithAlpha(255,0,0,125); iGc->SetBrushPattern(*pattern); iGc->SetBrushStyle(DirectGdi::EPatternedBrush); iGc->SetPenColor(redWithAlpha); iGc->SetDrawMode(DirectGdi::EDrawModeWriteAlpha); iGc->DrawRect(TRect(10,80,140,100)); iGc->DrawLine(TPoint(10,90), TPoint(150,90)); TESTNOERROR(iGc->GetError()); iGc->Reset(); // Draw a rectangle and line with just the previous pen color set (to check draw mode has been reset properly) iGc->SetPenColor(redWithAlpha); iGc->DrawRect(TRect(10,120,140,140)); iGc->MoveBy(TPoint(10,130)); // should move from 0,0 if the previous position was reset properly iGc->DrawLineBy(TPoint(140,0)); TESTNOERROR(iGc->GetError()); TEST(KErrNone == WriteTargetOutput(iTestParams, KTestName())); CleanupStack::PopAndDestroy(pattern); } /** @SYMTestCaseID GRAPHICS-DIRECTGDI-GENERALDRAWING-0002 @SYMPREQ PREQ39 @SYMREQ REQ9195 REQ9201 REQ9202 REQ9222 REQ9223 REQ9236 REQ9237 @SYMTestCaseDesc Check the results of drawing to a context with only the default pen, brush etc. set. @SYMTestPriority Critical @SYMTestActions Draw some shapes to a context without setting pen and brush colors etc. and make sure we get the same result when drawing with bitgdi and directgdi @SYMTestExpectedResults The BitGdi and DirectGdi created bitmaps should be the same @SYMTestStatus Implemented */ void CTGeneralDrawing::TestDrawToDefaultContextL() { _LIT(KTestName, "Drawing-DrawToDefaultContext"); //test case name if(!iRunningOomTests) { INFO_PRINTF1(KTestName); } ResetGc(); CArrayFixFlat<TPoint> *array = new (ELeave)CArrayFixFlat<TPoint>(5); CleanupStack::PushL(array); array->AppendL(TPoint(110, 60)); array->AppendL(TPoint(120, 93)); array->AppendL(TPoint(130, 93)); array->AppendL(TPoint(142, 67)); array->AppendL(TPoint(142, 110)); iGc->DrawRect(TRect(10,10,140,30)); iGc->DrawLine(TPoint(5,7), TPoint(50,130)); iGc->DrawArc(TRect(50,60,140,140), TPoint(0,0), TPoint(150,150)); iGc->DrawPolyLine(*array); TESTNOERROR(iGc->GetError()); iGc->Reset(); CleanupStack::PopAndDestroy(array); TEST(KErrNone == WriteTargetOutput(iTestParams, KTestName())); } /** @SYMTestCaseID GRAPHICS-DIRECTGDI-GENERALDRAWING-0003 @SYMTestPriority Critical @SYMPREQ PREQ39 @SYMREQ REQ9195 REQ9201 REQ9202 REQ9222 REQ9223 REQ9236 REQ9237 @SYMTestStatus Complete @SYMTestCaseDesc Test the case where a target is closed after it has been activated and then it is drawn to. @SYMTestActions Test the use case where we: Create a target. Activate the target. Close the target. Draw to the target. If the reference counting fails this test will panic with error DGDIAdapter 28 EglMakeCurrentError. @SYMTestStatus Implemented */ void CTGeneralDrawing::DrawToClosedActiveTargetL() { _LIT(KTestName, "Drawing-DrawToClosedActiveTarget"); if(!iRunningOomTests) { INFO_PRINTF1(KTestName); } ResetGc(); // Close the target before drawing to it to check that the reference count increment // that is applied when the target is activated is working correctly iGdiTarget->Close(); iGc->SetPenColor(TRgb(100,100,100)); TEST(iGc->PenColor() == TRgb(100,100,100)); iGc->DrawEllipse(TRect(0,0,30,30)); TESTNOERROR(iGc->GetError()); TESTL(KErrNone == WriteTargetOutput(iTestParams, KTestName())); } /** @SYMTestCaseID GRAPHICS-DIRECTGDI-GENERALDRAWING-0004 @SYMPREQ PREQ39 @SYMREQ REQ9195 REQ9201 REQ9202 REQ9222 REQ9223 REQ9236 REQ9237 @SYMTestCaseDesc Tests the draw modes DirectGdi::EDrawModePEN and DirectGdi::EDrawModeWriteAlpha are set correctly when drawing rectangles. @SYMTestPriority Critical @SYMTestActions Set the draw mode to DirectGdi::EDrawModePEN. Draw several red rectangles with green borders, some with half alpha pen and brush set. Set the draw mode to DirectGdi::EDrawModeWriteAlpa. Draw the same rectangles. @SYMTestExpectedResults The rectangles drawn in DirectGdi::EDrawModePEN should be drawn blended when they are drawn with half alpha (the top two red rectangles)). The rectangles drawn in DirectGdi::EDrawModeWriteAlpha should not blend, they should write over whatever was drawn underneath them (the rest of the red rectangles). @SYMTestStatus Implemented */ void CTGeneralDrawing::TestSetDrawMode() { _LIT(KTestName, "Drawing-SetDrawMode"); //test case name if(!iRunningOomTests) { INFO_PRINTF1(KTestName); } ResetGc(); const TRgb greenWithAlpha(0,255,0,125); const TRgb redWithAlpha(255,0,0,125); const TRect rectBack(50,10,100,200); const TRect rectA(10,30,70,60); const TRect rectB(80,30,140,60); const TRect rectC(10,90,70,120); const TRect rectD(80,90,140,120); const TRect rectE(10,150,70,180); const TRect rectF(80,150,140,180); // Test EDrawModePEN iGc->SetDrawMode(DirectGdi::EDrawModePEN); iGc->SetPenColor(TRgb(KRgbBlack)); iGc->SetPenSize(TSize(3,3)); // Draw a large rect background rect iGc->SetBrushColor(KRgbBlue); iGc->SetBrushStyle(DirectGdi::ESolidBrush); iGc->DrawRect(rectBack); TESTNOERROR(iGc->GetError()); // Draw two rects in draw mode EDrawModePEN iGc->SetPenColor(KRgbGreen); iGc->SetBrushColor(KRgbRed); iGc->DrawRect(rectA); TESTNOERROR(iGc->GetError()); iGc->SetPenColor(greenWithAlpha); iGc->SetBrushColor(redWithAlpha); iGc->DrawRect(rectB); TESTNOERROR(iGc->GetError()); // Test EDrawModeWriteAlpha iGc->SetDrawMode(DirectGdi::EDrawModeWriteAlpha); // Draw two rects in draw mode EDrawModeWriteAlpha iGc->SetPenColor(KRgbGreen); iGc->SetBrushColor(KRgbRed); iGc->DrawRect(rectC); TESTNOERROR(iGc->GetError()); iGc->SetPenColor(greenWithAlpha); iGc->SetBrushColor(redWithAlpha); iGc->DrawRect(rectD); TESTNOERROR(iGc->GetError()); // Draw two rects in draw mode EDrawModeWriteAlpha with PenSize set to 1 iGc->SetPenSize(TSize(1,1)); iGc->SetPenColor(KRgbGreen); iGc->SetBrushColor(KRgbRed); iGc->DrawRect(rectE); TESTNOERROR(iGc->GetError()); iGc->SetPenColor(greenWithAlpha); iGc->SetBrushColor(redWithAlpha); iGc->DrawRect(rectF); TESTNOERROR(iGc->GetError()); TEST(KErrNone == WriteTargetOutput(iTestParams, KTestName())); } /** @SYMTestCaseID GRAPHICS-DIRECTGDI-GENERALDRAWING-0005 @SYMPREQ PREQ39 @SYMREQ REQ9195 REQ9222 REQ9223 REQ9236 REQ9237 @SYMTestCaseDesc Test functions behaviour after calling with invalid parameters. @SYMTestPriority Critical @SYMTestActions Call SetDrawMode with invalid parameters. @SYMTestExpectedResults KErrArgument should be set as error. @SYMTestStatus Implemented */ void CTGeneralDrawing::TestSetDrawModeInvalidParametersL() { _LIT(KTestName, "Drawing-SetAttributes-InvalidParameters"); if(!iRunningOomTests) { INFO_PRINTF1(KTestName); } ResetGc(); iGc->SetDrawMode((DirectGdi::TDrawMode)1234); if(iUseDirectGdi) { TESTL(iGc->GetError() == KErrArgument); } else { TESTNOERRORL(iGc->GetError()); } ResetGc(); } /** @SYMTestCaseID GRAPHICS-DIRECTGDI-GENERALDRAWING-0006 @SYMPREQ PREQ39 @SYMREQ REQ9195 REQ9201 REQ9202 REQ9222 REQ9223 REQ9236 REQ9237 @SYMTestCaseDesc Test the MoveBy method performs correctly. @SYMTestPriority Critical @SYMTestActions Draw 10 rectangles, each shifted by 5,5 pixels from the previous one @SYMTestExpectedResults Test should successfully 10 rectangles each shifted by 5,5 pixels from the previous one @SYMTestStatus Implemented */ void CTGeneralDrawing::TestMoveBy() { _LIT(KTestName, "Drawing-MoveBy"); //test case name if(!iRunningOomTests) { INFO_PRINTF1(KTestName); } TPoint move(5,5); ResetGc(); iGc->MoveTo(TPoint(25,25)); for (TInt i = 0; i < 10; i++) { iGc->DrawLineBy(TPoint(50,0)); iGc->DrawLineBy(TPoint(0,50)); iGc->DrawLineBy(TPoint(-50,0)); iGc->DrawLineBy(TPoint(0,-50)); iGc->MoveBy(move); TESTNOERROR(iGc->GetError()); } TEST(KErrNone == WriteTargetOutput(iTestParams, KTestName())); } /** @SYMTestCaseID GRAPHICS-DIRECTGDI-GENERALDRAWING-0007 @SYMPREQ PREQ39 @SYMREQ REQ9195 REQ9201 REQ9202 REQ9222 REQ9223 REQ9236 REQ9237 @SYMTestCaseDesc Check that calling DrawRect() does not affect the internal drawing position. @SYMTestPriority Critical @SYMTestActions Call MoveTo() to set new internal drawing position. Call DrawRect(). Call DrawLineTo() to draw a line from the internal drawing position. @SYMTestExpectedResults DrawRect() should not affect the internal drawing position. A black rectangle should be drawn, with a red line going from the top-left to the bottom-right of the rectangle. @SYMTestStatus Implemented */ void CTGeneralDrawing::TestInternalDrawingPositionDrawRect() { _LIT(KTestName, "Drawing-InternalDrawingPositionDrawRect"); //test case name if(!iRunningOomTests) { INFO_PRINTF1(KTestName); } const TRect rectTop(10,10,iGdiTarget->SizeInPixels().iWidth - 10, iGdiTarget->SizeInPixels().iHeight/2 - 10); const TRect rectBottom(10,iGdiTarget->SizeInPixels().iHeight/2 + 10,iGdiTarget->SizeInPixels().iWidth - 10, iGdiTarget->SizeInPixels().iHeight - 10); ResetGc(); iGc->MoveTo(TPoint(rectTop.iBr.iX, rectTop.iTl.iY)); iGc->SetPenSize(TSize(1,1)); iGc->DrawRect(rectTop); iGc->SetPenColor(KRgbRed); iGc->SetPenSize(TSize(3,3)); iGc->DrawLineTo(rectTop.iBr); iGc->SetPenColor(KRgbBlack); iGc->MoveTo(TPoint(rectBottom.iBr.iX, rectBottom.iTl.iY)); iGc->SetPenSize(TSize(3,3)); iGc->DrawRect(rectBottom); iGc->SetPenColor(KRgbRed); iGc->SetPenSize(TSize(3,3)); iGc->DrawLineTo(rectBottom.iBr); TESTNOERROR(iGc->GetError()); iGc->Reset(); TEST(KErrNone == WriteTargetOutput(iTestParams, KTestName())); } /** @SYMTestCaseID GRAPHICS-DIRECTGDI-GENERALDRAWING-0008 @SYMPREQ PREQ39 @SYMREQ REQ9195 REQ9201 REQ9202 REQ9222 REQ9223 REQ9236 REQ9237 @SYMTestCaseDesc Draws various shapes with irregular pen sizes, that is with pens where the width and height of the pen are different. @SYMTestPriority Critical @SYMTestActions Set a irregular pen size. Draw various shapes @SYMTestExpectedResults The following shapes should be drawn with a black outline, filled with a checked brush pattern ellipse, rect, plot, polygon, round rect, pie, another polygon, crossed lines. @SYMTestStatus Implemented */ void CTGeneralDrawing::TestDrawShapesIrregularPenSizeL(const TSize& aPenSize) { _LIT(KTestName, "Drawing-IrregularPenSize"); //test case name if(!iRunningOomTests) { INFO_PRINTF1(KTestName); } TBuf<70> testName; TBuf<10> testCaseName; _LIT(KPenSize, "%d_%d"); testCaseName.Format(KPenSize, aPenSize.iWidth, aPenSize.iHeight); testName.Append(KTestName); testName.Append(KSeparator); testName.Append(testCaseName); // create a brush pattern programatically so we can test EPatternedBrush TUidPixelFormat pixelFormat = iTestParams.iTargetPixelFormat; TSize patternSize(50,50); CFbsBitmap* pattern = CreateCheckedBoardBitmapL(pixelFormat, patternSize); CleanupStack::PushL(pattern); ResetGc(); iGc->SetPenSize(aPenSize); // The sw version allocates memory when you set a pen size and this memory is not freed // until after the __UHEAP_MARKEND macro when running OOM tests, this causes a memory // leak when this test leaves. The following TCleanupItem has been added to reset the pen // size to 1,1 on account of a leave as settting the pen size to 1,1 deletes the allocated // pen memory. CleanupStack::PushL(TCleanupItem(ResetPenSize, iGc)); iGc->SetPenColor(KRgbBlack); iGc->SetBrushPattern(*pattern); iGc->SetBrushStyle(DirectGdi::EPatternedBrush); // Draw an ellipse iGc->DrawEllipse(TRect(10,10,100,50)); // Draw a round rect iGc->DrawRect(TRect(110,10,190,50)); CArrayFixFlat<TPoint>* array = new (ELeave)CArrayFixFlat<TPoint>(10); TESTL(array != NULL); CleanupStack::PushL(array); // Draw a zigzag line for (TInt i = 0; i < 9; i++) { if (i%2) array->AppendL(TPoint(35+(i*15), 60)); else array->AppendL(TPoint(10+(i*20), 90)); } iGc->DrawPolygon(*array, DirectGdi::EWinding); // Draw a rect TSize corner(30,15); iGc->DrawRoundRect(TRect(10,100,90,140), corner); // Draw a diamond shape array->Reset(); array->AppendL(TPoint(10,170)); array->AppendL(TPoint(50,150)); array->AppendL(TPoint(90,170)); array->AppendL(TPoint(50,190)); iGc->DrawPolygon(*array, DirectGdi::EWinding); // Draw a pie iGc->DrawPie(TRect(110,100,190,170), TPoint(0,0), TPoint(200,0)); // Plot iGc->Plot(TPoint(10,60)); // Line iGc->DrawLine(TPoint(120,170), TPoint(190,190)); iGc->DrawLine(TPoint(120,190), TPoint(190,170)); TESTNOERROR(iGc->GetError()); CleanupStack::PopAndDestroy(3, pattern); TEST(KErrNone == WriteTargetOutput(iTestParams, testName)); } /** @SYMTestCaseID GRAPHICS-DIRECTGDI-GENERALDRAWING-0009 @SYMPREQ PREQ39 @SYMREQ REQ9195 REQ9201 REQ9202 REQ9222 REQ9223 REQ9236 REQ9237 @SYMTestCaseDesc Test that shape drawing happens at the correct positions when a combination of DrawLineTo, DrawLineBy, MoveTo, MoveBy, SetOrigin and Reset are called in conjunction with various shape drawing methods. @SYMTestPriority Critical @SYMTestActions Draw a blue arc and two lines with a combination of MoveTo() and MoveBy(). Draw a red arc and two lines with a combination of MoveTo() and MoveBy(). Draw an two orange ellipses with different SetOrigin() calls, only one ellipse should be seen. Draw a magenta rect, round rect and plot after a SetOrigin() call. Draw a cyan polygon after a SetOrigin() call. Draw a green polyline after a SetOrigin() call. Draw three grey lines after a SetOrigin() and two MoveBy() calls. @SYMTestExpectedResults Valid bitmap should be created. This bitmap should be the same as corresponding reference bitmap and should contain the shapes mentioned in the SYMTestActions section above. @SYMTestStatus Implemented */ void CTGeneralDrawing::TestDrawShapesChangingOriginL() { _LIT(KTestName, "Drawing-DrawShapesChangingOrigin"); if(!iRunningOomTests) { INFO_PRINTF1(KTestName); } ResetGc(); // draw a blue arc with a line either side iGc->SetPenColor(KRgbBlue); iGc->MoveTo(TPoint(10,30)); iGc->DrawLineTo(TPoint(50,40)); iGc->DrawArc(TRect(50,20,150,60), TPoint(200,40), TPoint(0,40)); iGc->MoveBy(TPoint(100,0)); iGc->DrawLineBy(TPoint(40,-10)); // draw a red arc with a line either side iGc->SetPenColor(KRgbRed); iGc->DrawArc(TRect(50,30,150,70), TPoint(0,50), TPoint(200,50)); iGc->MoveTo(TPoint(50,50)); iGc->DrawLineBy(TPoint(-40,-10)); iGc->MoveBy(TPoint(180,0)); iGc->DrawLineBy(TPoint(-40,10)); iGc->Reset(); // draw an orange ellipse TRgb orange(255,128,64); iGc->SetPenColor(orange); iGc->SetOrigin(TPoint(-100,-100)); iGc->DrawEllipse(TRect(50,30,150,70)); iGc->SetOrigin(TPoint(0,0)); iGc->DrawEllipse(TRect(50,40,150,80)); // draw a magenta rect, round rect and plot iGc->SetPenColor(KRgbMagenta); iGc->SetOrigin(TPoint(100,110)); iGc->DrawRect(TRect(-75,-20,75,20)); iGc->DrawRoundRect(TRect(-65,-10,65,30), TSize(10,10)); iGc->Plot(TPoint(0,0)); // draw a cyan polygon iGc->SetPenColor(KRgbCyan); iGc->SetOrigin(TPoint(0,160)); TInt numPoints = 5; CArrayFixFlat<TPoint> *array = new (ELeave)CArrayFixFlat<TPoint>(numPoints); TESTL(array != NULL); CleanupStack::PushL(array); array->AppendL(TPoint(0,0)); array->AppendL(TPoint(50,-50)); array->AppendL(TPoint(100,0)); array->AppendL(TPoint(150,-50)); array->AppendL(TPoint(200,0)); iGc->DrawPolygon(*array, DirectGdi::EAlternate); // draw a green polyline iGc->SetPenColor(KRgbGreen); iGc->SetOrigin(TPoint(0,170)); iGc->DrawPolyLine(*array); // draw 3 grey lines iGc->SetPenColor(KRgbDarkGray); iGc->SetOrigin(TPoint(10,180)); iGc->DrawLine(TPoint(0,0), TPoint(180,0)); iGc->MoveBy(TPoint(0,5)); iGc->DrawLineTo(TPoint(0,5)); iGc->MoveBy(TPoint(0,5)); iGc->DrawLineBy(TPoint(180,0)); // the following DrawLineTo() calls have been added for coverage, they don't draw anything, they just return iGc->SetPenSize(TSize(10,0)); iGc->DrawLineTo(TPoint(100,100)); iGc->SetPenSize(TSize(0,0)); iGc->DrawLineTo(TPoint(100,100)); iGc->SetPenStyle(DirectGdi::ENullPen); iGc->DrawLineTo(TPoint(100,100)); CleanupStack::PopAndDestroy(1, array); TEST(KErrNone == WriteTargetOutput(iTestParams, KTestName())); } /** Override of base class virtual @leave Gets system wide error code @return - TVerdict code */ TVerdict CTGeneralDrawing::doTestStepPreambleL() { CTDirectGdiStepBase::doTestStepPreambleL(); return TestStepResult(); } /** Override of base class pure virtual Our implementation only gets called if the base class doTestStepPreambleL() did not leave. That being the case, the current test result value will be EPass. @leave Gets system wide error code @return TVerdict code */ TVerdict CTGeneralDrawing::doTestStepL() { // Test for each pixel format for(TInt targetPixelFormatIndex = iTargetPixelFormatArray.Count() - 1; targetPixelFormatIndex >= 0 ; targetPixelFormatIndex--) { iTestParams.iTargetPixelFormat = iTargetPixelFormatArray[targetPixelFormatIndex]; SetTargetL(iTestParams.iTargetPixelFormat); RunTestsL(); RunOomTestsL(); } CloseTMSGraphicsStep(); return TestStepResult(); } /** Override of base class pure virtual Lists the tests to be run */ void CTGeneralDrawing::RunTestsL() { SetTestStepID(_L("GRAPHICS-DIRECTGDI-GENERALDRAWING-0002")); TestDrawToDefaultContextL(); RecordTestResultL(); SetTestStepID(_L("GRAPHICS-DIRECTGDI-GENERALDRAWING-0001")); TestDrawToResetContextL(); RecordTestResultL(); SetTestStepID(_L("GRAPHICS-DIRECTGDI-GENERALDRAWING-0004")); TestSetDrawMode(); RecordTestResultL(); SetTestStepID(_L("GRAPHICS-DIRECTGDI-GENERALDRAWING-0005")); TestSetDrawModeInvalidParametersL(); RecordTestResultL(); SetTestStepID(_L("GRAPHICS-DIRECTGDI-GENERALDRAWING-0006")); TestMoveBy(); RecordTestResultL(); SetTestStepID(_L("GRAPHICS-DIRECTGDI-GENERALDRAWING-0007")); TestInternalDrawingPositionDrawRect(); RecordTestResultL(); SetTestStepID(_L("GRAPHICS-DIRECTGDI-GENERALDRAWING-0008")); TestDrawShapesIrregularPenSizeL(TSize(2,5)); RecordTestResultL(); SetTestStepID(_L("GRAPHICS-DIRECTGDI-GENERALDRAWING-0008")); TestDrawShapesIrregularPenSizeL(TSize(6,3)); RecordTestResultL(); SetTestStepID(_L("GRAPHICS-DIRECTGDI-GENERALDRAWING-0009")); TestDrawShapesChangingOriginL(); RecordTestResultL(); if (iUseDirectGdi) { // test for reference counting of targets, only has meaning on DirectGdi SetTestStepID(_L("GRAPHICS-DIRECTGDI-GENERALDRAWING-0003")); DrawToClosedActiveTargetL(); RecordTestResultL(); } }