sl@0: // Copyright (c) 2007-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: #include "tpanictests.h" sl@0: #include sl@0: #include sl@0: sl@0: _LIT(KPanicCategory, "DGDI"); sl@0: sl@0: CTPanicTests::CTPanicTests() sl@0: { sl@0: SetTestStepName(KTDirectGdiPanicTestsStep); sl@0: } sl@0: sl@0: CTPanicTests::~CTPanicTests() sl@0: { sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID sl@0: GRAPHICS-DIRECTGDI-PANIC-0001 sl@0: sl@0: @SYMTestPriority sl@0: Medium sl@0: sl@0: @SYMPREQ sl@0: PREQ39 sl@0: sl@0: @SYMREQ sl@0: REQ9195 sl@0: REQ9201 sl@0: REQ9202 sl@0: REQ9222 sl@0: REQ9223 sl@0: REQ9236 sl@0: REQ9237 sl@0: sl@0: @SYMTestCaseDesc sl@0: Tests if DirectGDI methods panic when called on a inactivated context. sl@0: sl@0: @SYMTestActions sl@0: Construct CDirectGdiDriver. sl@0: Construct CDirectGdiContext. sl@0: Construct RSgImage. sl@0: Construct MDirectGdiImageTarget. sl@0: Create MDirectGdiImageTarget, using RSgImage. sl@0: sl@0: Do not Activate CDirectGdiContext. sl@0: Call any API on the context. sl@0: sl@0: Destroy RSgImage. sl@0: Destroy MDirectGdiImageTarget. sl@0: Destroy CDirectGdiContext. sl@0: Close CDirectGdiDriver. sl@0: sl@0: @SYMTestExpectedResults sl@0: It should panic with panic code DGDI 7, EDirectGdiPanicContextNotActivated sl@0: sl@0: @SYMTestStatus sl@0: Implemented sl@0: */ sl@0: void CTPanicTests::TestContextNotActivatedL() sl@0: { sl@0: if (iUseDirectGdi) sl@0: { sl@0: TInt result = CDirectGdiDriver::Open(); sl@0: TESTNOERRORL(result); sl@0: sl@0: CDirectGdiDriver* dgdiDriver = CDirectGdiDriver::Static(); sl@0: TEST(dgdiDriver != NULL); sl@0: CleanupClosePushL(*dgdiDriver); sl@0: sl@0: CDirectGdiContext* gc = CDirectGdiContext::NewL(*dgdiDriver); sl@0: sl@0: RSgImage* rsgImage1 = new RSgImage(); sl@0: TESTL(rsgImage1 != NULL); sl@0: sl@0: // Set the bitmap up... sl@0: TSgImageInfo imageInfo; sl@0: imageInfo.iSizeInPixels = TSize (320, 240); sl@0: imageInfo.iPixelFormat = iTestParams.iTargetPixelFormat; sl@0: sl@0: imageInfo.iUsage = ESgUsageDirectGdiTarget; sl@0: result = rsgImage1->Create(imageInfo, NULL,0); sl@0: TESTNOERRORL(result); sl@0: sl@0: RDirectGdiImageTarget* dgdiImageTarget1 = new RDirectGdiImageTarget(*dgdiDriver); sl@0: TESTL(dgdiImageTarget1 != NULL); sl@0: result = dgdiImageTarget1->Create(*rsgImage1); sl@0: TESTNOERRORL(result); sl@0: sl@0: TRect rect(10, 15, 100, 100); sl@0: gc->DrawEllipse(rect); sl@0: sl@0: dgdiImageTarget1->Close(); sl@0: delete(dgdiImageTarget1); sl@0: rsgImage1->Close(); sl@0: delete(rsgImage1); sl@0: delete(gc); sl@0: CleanupStack::PopAndDestroy(1); sl@0: } sl@0: else //BitGDI sl@0: User::Panic(KPanicCategory, 7); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID sl@0: GRAPHICS-DIRECTGDI-PANIC-0002 sl@0: sl@0: @SYMTestPriority sl@0: Medium sl@0: sl@0: @SYMPREQ sl@0: PREQ39 sl@0: sl@0: @SYMREQ sl@0: REQ9195 sl@0: REQ9201 sl@0: REQ9202 sl@0: REQ9222 sl@0: REQ9223 sl@0: REQ9236 sl@0: REQ9237 sl@0: sl@0: @SYMTestCaseDesc sl@0: Testing if a panic is raised during text drawing functions usage without valid font set. sl@0: sl@0: @SYMTestActions sl@0: Context is created and activated. sl@0: sl@0: Set font in context. sl@0: Call any DrawText() API on the context. sl@0: sl@0: Reset font in context. sl@0: Call any DrawText() API on the context. sl@0: sl@0: @SYMTestExpectedResults sl@0: It should panic with panic code DGDI 11, EDirectGdiPanicNoFontSelected. sl@0: sl@0: @SYMTestStatus sl@0: Implemented sl@0: */ sl@0: sl@0: void CTPanicTests::TestFontNotSetL() sl@0: { sl@0: if(iUseDirectGdi) sl@0: { sl@0: _LIT(KText, "test"); sl@0: sl@0: ResetGc(); sl@0: sl@0: CFont* font = GetFont(); sl@0: TESTL(font != NULL); sl@0: sl@0: iGc->SetPenColor(TRgb(0, 0, 0)); sl@0: sl@0: iGc->SetFont(font); sl@0: iGc->DrawText(KText, NULL, TPoint(10, 30)); sl@0: sl@0: iGc->ResetFont(); sl@0: iGc->DrawText(KText, NULL, TPoint(10, 50)); sl@0: sl@0: ReleaseFont(font); sl@0: } sl@0: else //BitGDI sl@0: User::Panic( KPanicCategory, 11); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID sl@0: GRAPHICS-DIRECTGDI-PANIC-0003 sl@0: sl@0: @SYMTestPriority sl@0: Medium sl@0: sl@0: @SYMPREQ sl@0: PREQ39 sl@0: sl@0: @SYMREQ sl@0: REQ9195 sl@0: REQ9201 sl@0: REQ9202 sl@0: REQ9222 sl@0: REQ9223 sl@0: REQ9236 sl@0: REQ9237 sl@0: sl@0: @SYMTestCaseDesc sl@0: Tests the negative conditions that can only be reached by creating RSgImage with an invalid pixel type, to sl@0: improve the code coverage. sl@0: sl@0: @SYMTestActions sl@0: Construct CDirectGdiDriver. sl@0: Construct CDirectGdiContext. sl@0: sl@0: Construct RSgImage with unsupported pixel type and do not check for the return error code. sl@0: Construct MDirectGdiImageTarget. sl@0: Create MDirectGdiImageTarget, using RSgImage, ignoring the return error code. sl@0: sl@0: Activate CDirectGdiContext using MDirectGdiImageTarget. sl@0: sl@0: Destroy RSgImage. sl@0: Destroy MDirectGdiImageTarget. sl@0: sl@0: Destroy CDirectGdiContext. sl@0: Close CDirectGdiDriver. sl@0: sl@0: @SYMTestExpectedResults sl@0: It should panic with panic code DGDI 21, EDirectGdiImageTargetInfoError sl@0: sl@0: @SYMTestStatus sl@0: Implemented sl@0: */ sl@0: void CTPanicTests::TestInvalidTargetL() sl@0: { sl@0: if(iUseDirectGdi) sl@0: { sl@0: TInt err = CDirectGdiDriver::Open(); sl@0: TESTNOERROR(err); sl@0: sl@0: CDirectGdiDriver* dgdiDriver = CDirectGdiDriver::Static(); sl@0: TESTL(dgdiDriver != NULL); sl@0: CleanupClosePushL(*dgdiDriver); sl@0: sl@0: CDirectGdiContext* gc = CDirectGdiContext::NewL(*dgdiDriver); sl@0: RSgImage rsgImage; sl@0: sl@0: // Set the bitmap up... sl@0: TSgImageInfo imageInfo; sl@0: imageInfo.iSizeInPixels = TSize (320, 240); sl@0: imageInfo.iPixelFormat = EUidPixelFormatA_8; sl@0: imageInfo.iUsage = ESgUsageDirectGdiTarget; sl@0: rsgImage.Create(imageInfo, NULL,0); sl@0: sl@0: RDirectGdiImageTarget dgdiImageTarget(*dgdiDriver); sl@0: dgdiImageTarget.Create(rsgImage); sl@0: gc->Activate (dgdiImageTarget); sl@0: sl@0: rsgImage.Close(); sl@0: dgdiImageTarget.Close(); sl@0: delete gc; sl@0: CleanupStack::PopAndDestroy(1); sl@0: } sl@0: else //BitGDI sl@0: User::Panic( KPanicCategory, 21); sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID sl@0: GRAPHICS-DIRECTGDI-PANIC-0004 sl@0: sl@0: @SYMTestPriority sl@0: Medium sl@0: sl@0: @SYMPREQ sl@0: PREQ39 sl@0: sl@0: @SYMREQ sl@0: REQ9195 sl@0: REQ9201 sl@0: REQ9202 sl@0: REQ9222 sl@0: REQ9223 sl@0: REQ9236 sl@0: REQ9237 sl@0: sl@0: @SYMTestCaseDesc sl@0: Test that the adapter panics when an attempt is made to activate a target with an invalid handle. sl@0: sl@0: @SYMTestActions sl@0: Create an RSgImage. sl@0: Make it a target for the driver. sl@0: Change the target's handle so it has an erroneous handle. sl@0: Attempt to activate the target. sl@0: (This test only works in _DEBUG mode as the handle check only happens in _DEBUG mode) sl@0: sl@0: @SYMTestExpectedResults sl@0: The test should panic when the target is activated DGDIAdapter 32, EDirectGdiPanicResourceHandleNotFound. sl@0: sl@0: @SYMTestStatus sl@0: Implemented sl@0: */ sl@0: void CTPanicTests::TestImageInvalidTargetHandleL() sl@0: { sl@0: #ifdef _DEBUG sl@0: TInt err = CDirectGdiDriver::Open(); sl@0: TESTNOERROR(err); sl@0: sl@0: CDirectGdiDriver* dgdiDriver = CDirectGdiDriver::Static(); sl@0: TESTL(dgdiDriver != NULL); sl@0: CleanupClosePushL(*dgdiDriver); sl@0: sl@0: CDirectGdiContext* gc = CDirectGdiContext::NewL(*dgdiDriver); sl@0: RSgImage rsgImage; sl@0: sl@0: // Set the bitmap up... sl@0: TSgImageInfo imageInfo; sl@0: imageInfo.iSizeInPixels = TSize (320, 240); sl@0: imageInfo.iPixelFormat = iTestParams.iTargetPixelFormat; sl@0: imageInfo.iUsage = ESgUsageDirectGdiTarget; sl@0: rsgImage.Create(imageInfo, NULL,0); sl@0: sl@0: RDirectGdiImageTarget dgdiImageTarget(*dgdiDriver); sl@0: dgdiImageTarget.Create(rsgImage); sl@0: sl@0: // Set the target's handle to a non-null invalid handle. sl@0: dgdiImageTarget.iHandle = 0x12345678; sl@0: sl@0: // Activate should panic (DGDIAdapter EDirectGdiTargetHandleNotFound 32) sl@0: gc->Activate (dgdiImageTarget); sl@0: sl@0: rsgImage.Close(); sl@0: dgdiImageTarget.Close(); sl@0: delete gc; sl@0: CleanupStack::PopAndDestroy(1); sl@0: #else sl@0: User::Panic(KPanicCategory, 32); sl@0: #endif sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID sl@0: GRAPHICS-DIRECTGDI-PANIC-0005 sl@0: sl@0: @SYMTestPriority sl@0: Medium sl@0: sl@0: @SYMPREQ sl@0: PREQ39 sl@0: sl@0: @SYMTestCaseDesc sl@0: Tests the negative conditions that the same RDirectGdiImageTarget object sl@0: is created twice. sl@0: sl@0: @SYMTestActions sl@0: Construct CDirectGdiDriver. sl@0: Construct RDirectGdiImageTarget twice. sl@0: sl@0: @SYMTestExpectedResults sl@0: It should panic with panic code DGDIAdapter 17, EDirectGdiImageTargetAlreadyExists sl@0: sl@0: @SYMTestStatus sl@0: Implemented sl@0: */ sl@0: void CTPanicTests::TestImageTargetActivatedTwiceL() sl@0: { sl@0: if(iUseDirectGdi) sl@0: { sl@0: TInt err = CDirectGdiDriver::Open(); sl@0: TESTNOERRORL(err); sl@0: CDirectGdiDriver* dgdiDriver = CDirectGdiDriver::Static(); sl@0: TESTL(dgdiDriver != NULL); sl@0: CleanupClosePushL(*dgdiDriver); sl@0: sl@0: TSgImageInfo info2; sl@0: info2.iSizeInPixels = TSize(8, 8); sl@0: info2.iUsage = ESgUsageDirectGdiTarget; sl@0: info2.iPixelFormat = EUidPixelFormatRGB_565; sl@0: info2.iCpuAccess = ESgCpuAccessNone; sl@0: info2.iShareable = ETrue; sl@0: RSgImage image2; sl@0: User::LeaveIfError(image2.Create(info2, NULL, 0)); sl@0: CleanupClosePushL(image2); sl@0: sl@0: RDirectGdiImageTarget dgdiImageTarget(*dgdiDriver); sl@0: TESTNOERRORL(dgdiImageTarget.Create(image2)); sl@0: CleanupClosePushL(dgdiImageTarget); sl@0: dgdiImageTarget.Create(image2); //should panic here sl@0: CleanupClosePushL(dgdiImageTarget); sl@0: sl@0: CleanupStack::PopAndDestroy(4, dgdiDriver); sl@0: } sl@0: else //BitGDI sl@0: { sl@0: User::Panic( KPanicCategory, 17); sl@0: } sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID sl@0: GRAPHICS-DIRECTGDI-PANIC-0006 sl@0: sl@0: @SYMTestPriority sl@0: Medium sl@0: sl@0: @SYMPREQ sl@0: PREQ39 sl@0: sl@0: @SYMTestCaseDesc sl@0: Tests the negative conditions that the same RDirectGdiDrawableSource object sl@0: is created twice. sl@0: sl@0: @SYMTestActions sl@0: Construct CDirectGdiDriver. sl@0: Construct RDirectGdiDrawableSource twice. sl@0: sl@0: @SYMTestExpectedResults sl@0: It should panic with panic code DGDI 18, EDirectGdiImageSourceAlreadyExists sl@0: sl@0: @SYMTestStatus sl@0: Implemented sl@0: */ sl@0: void CTPanicTests::TestImageSourceActivatedTwiceL() sl@0: { sl@0: if(iUseDirectGdi) sl@0: { sl@0: TInt err = CDirectGdiDriver::Open(); sl@0: TESTNOERRORL(err); sl@0: CDirectGdiDriver* dgdiDriver = CDirectGdiDriver::Static(); sl@0: TESTL(dgdiDriver != NULL); sl@0: CleanupClosePushL(*dgdiDriver); sl@0: sl@0: TSgImageInfo info1; sl@0: info1.iSizeInPixels = TSize(8, 8); sl@0: info1.iUsage = ESgUsageDirectGdiSource; sl@0: info1.iPixelFormat = EUidPixelFormatRGB_565; sl@0: info1.iCpuAccess = ESgCpuAccessReadWrite; sl@0: info1.iShareable = ETrue; sl@0: RSgImage image1; sl@0: User::LeaveIfError(image1.Create(info1, NULL, 0)); sl@0: CleanupClosePushL(image1); sl@0: sl@0: RDirectGdiDrawableSource dgdiImageSource(*dgdiDriver); sl@0: TESTNOERRORL(dgdiImageSource.Create(image1)); sl@0: CleanupClosePushL(dgdiImageSource); sl@0: dgdiImageSource.Create(image1); //should panic here sl@0: CleanupClosePushL(dgdiImageSource); sl@0: sl@0: CleanupStack::PopAndDestroy(4, dgdiDriver); sl@0: } sl@0: else //BitGDI sl@0: { sl@0: User::Panic( KPanicCategory, 18); sl@0: } sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID sl@0: GRAPHICS-DIRECTGDI-PANIC-0007 sl@0: sl@0: @SYMTestPriority sl@0: Medium sl@0: sl@0: @SYMPREQ sl@0: PREQ39 sl@0: sl@0: @SYMREQ sl@0: REQ9195 sl@0: REQ9201 sl@0: REQ9202 sl@0: REQ9222 sl@0: REQ9223 sl@0: REQ9236 sl@0: REQ9237 sl@0: sl@0: @SYMTestCaseDesc sl@0: Tests the negative conditions that the same RDirectGdiDrawableSource object sl@0: is created twice. sl@0: sl@0: @SYMTestActions sl@0: Construct CDirectGdiDriver. sl@0: Construct RDirectGdiDrawableSource twice. sl@0: sl@0: @SYMTestExpectedResults sl@0: It should panic with panic code DGDIAdapter 19, EDirectGdiDrawableSourceAlreadyExists sl@0: sl@0: @SYMTestStatus sl@0: Implemented sl@0: */ sl@0: void CTPanicTests::TestDrawableSourceActivatedTwiceL() sl@0: { sl@0: if(iUseDirectGdi) sl@0: { sl@0: TInt err = CDirectGdiDriver::Open(); sl@0: TESTNOERRORL(err); sl@0: CDirectGdiDriver* dgdiDriver = CDirectGdiDriver::Static(); sl@0: TESTL(dgdiDriver != NULL); sl@0: CleanupClosePushL(*dgdiDriver); sl@0: sl@0: TSgImageInfo info1; sl@0: info1.iSizeInPixels = TSize(8, 8); sl@0: info1.iUsage = ESgUsageDirectGdiSource; sl@0: info1.iPixelFormat = EUidPixelFormatARGB_8888_PRE; sl@0: info1.iCpuAccess = ESgCpuAccessReadWrite; sl@0: info1.iShareable = ETrue; sl@0: RSgImage image1; sl@0: TESTNOERRORL(image1.Create(info1, NULL, 0)); sl@0: CleanupClosePushL(image1); sl@0: sl@0: RDirectGdiDrawableSource dgdiDrawableSource(*dgdiDriver); sl@0: TESTNOERRORL(dgdiDrawableSource.Create(image1)); sl@0: CleanupClosePushL(dgdiDrawableSource); sl@0: dgdiDrawableSource.Create(image1); //should panic here sl@0: CleanupClosePushL(dgdiDrawableSource); sl@0: sl@0: CleanupStack::PopAndDestroy(4, dgdiDriver); sl@0: } sl@0: else //BitGDI sl@0: { sl@0: User::Panic( KPanicCategory, 19); sl@0: } sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID sl@0: GRAPHICS-DIRECTGDI-PANIC-0008 sl@0: sl@0: @SYMTestPriority sl@0: Medium sl@0: sl@0: @SYMPREQ sl@0: PREQ39 sl@0: sl@0: @SYMREQ sl@0: REQ9195 sl@0: REQ9201 sl@0: REQ9202 sl@0: REQ9222 sl@0: REQ9223 sl@0: REQ9236 sl@0: REQ9237 sl@0: sl@0: @SYMTestCaseDesc sl@0: Make sure a panic occurs when calling SetBrushStyle() with EPatternedBrush when no brush pattern has been set. sl@0: sl@0: @SYMTestActions sl@0: Set brush style to EPatternedBrush. sl@0: sl@0: @SYMTestExpectedResults sl@0: It should panic with panic code DGDI 9, EDirectGdiBrushPatternNotSet. sl@0: sl@0: @SYMTestStatus sl@0: Implemented sl@0: */ sl@0: void CTPanicTests::TestBrushPatternNotSetL() sl@0: { sl@0: if(iUseDirectGdi) sl@0: { sl@0: ResetGc(); sl@0: iGc->SetBrushStyle(DirectGdi::EPatternedBrush); sl@0: } sl@0: else //BitGDI sl@0: User::Panic( KPanicCategory, 9); sl@0: } sl@0: sl@0: /** sl@0: Override of base class virtual sl@0: @leave Gets system wide error code sl@0: @return - TVerdict code sl@0: */ sl@0: TVerdict CTPanicTests::doTestStepPreambleL() sl@0: { sl@0: CTDirectGdiStepBase::doTestStepPreambleL(); sl@0: return TestStepResult(); sl@0: } sl@0: sl@0: /** sl@0: Override of base class pure virtual sl@0: Our implementation only gets called if the base class doTestStepPreambleL() did sl@0: not leave. That being the case, the current test result value will be EPass. sl@0: @leave Gets system wide error code sl@0: @return TVerdict code sl@0: */ sl@0: TVerdict CTPanicTests::doTestStepL() sl@0: { sl@0: // Test for each pixel format sl@0: for(TInt targetPixelFormatIndex = iTargetPixelFormatArray.Count() - 1; targetPixelFormatIndex >= 0 ; targetPixelFormatIndex--) sl@0: { sl@0: iTestParams.iTargetPixelFormat = iTargetPixelFormatArray[targetPixelFormatIndex]; sl@0: SetTargetL(iTestParams.iTargetPixelFormat); sl@0: RunTestsL(); sl@0: RunOomTestsL(); sl@0: } sl@0: sl@0: return TestStepResult(); sl@0: } sl@0: sl@0: /** sl@0: Override of base class pure virtual sl@0: Lists the tests to be run sl@0: */ sl@0: void CTPanicTests::RunTestsL() sl@0: { sl@0: INFO_PRINTF1(_L("DirectGdi Panic Tests" )); sl@0: TInt aCurTestCase; sl@0: //Read the case number from the ini file sl@0: TBool res = GetIntFromConfig(ConfigSection(), KCaseNumber, aCurTestCase); sl@0: if(!res) sl@0: { sl@0: return ; sl@0: } sl@0: SetTestStepID(KUnknownSYMTestCaseIDName); sl@0: switch(aCurTestCase) sl@0: { sl@0: case 1: sl@0: INFO_PRINTF1(_L("TestContextNotActivatedL\n")); sl@0: SetTestStepID(_L("GRAPHICS-DIRECTGDI-PANIC-0001")); sl@0: TestContextNotActivatedL(); sl@0: break; sl@0: case 2: sl@0: INFO_PRINTF1(_L("TestFontNotSetL\r\n")); sl@0: SetTestStepID(_L("GRAPHICS-DIRECTGDI-PANIC-0002")); sl@0: TestFontNotSetL(); sl@0: break; sl@0: case 3: sl@0: INFO_PRINTF1(_L("TestInvalidTargetL\r\n")); sl@0: SetTestStepID(_L("GRAPHICS-DIRECTGDI-PANIC-0003")); sl@0: TestInvalidTargetL(); sl@0: break; sl@0: case 4: sl@0: INFO_PRINTF1(_L("TestImageInvalidTargetHandleL\r\n")); sl@0: SetTestStepID(_L("GRAPHICS-DIRECTGDI-PANIC-0004")); sl@0: TestImageInvalidTargetHandleL(); sl@0: break; sl@0: case 5: sl@0: INFO_PRINTF1(_L("TestImageTargetActivatedTwiceL\r\n")); sl@0: SetTestStepID(_L("GRAPHICS-DIRECTGDI-PANIC-0005")); sl@0: TestImageTargetActivatedTwiceL(); sl@0: break; sl@0: case 6: sl@0: INFO_PRINTF1(_L("TestImageSourceActivatedTwiceL\r\n")); sl@0: SetTestStepID(_L("GRAPHICS-DIRECTGDI-PANIC-0006")); sl@0: TestImageSourceActivatedTwiceL(); sl@0: break; sl@0: case 7: sl@0: INFO_PRINTF1(_L("TestDrawableSourceActivatedTwiceL\r\n")); sl@0: SetTestStepID(_L("GRAPHICS-DIRECTGDI-PANIC-0007")); sl@0: TestDrawableSourceActivatedTwiceL(); sl@0: break; sl@0: case 8: sl@0: INFO_PRINTF1(_L("TestBrushPatternNotSetL\r\n")); sl@0: SetTestStepID(_L("GRAPHICS-DIRECTGDI-PANIC-0008")); sl@0: TestBrushPatternNotSetL(); sl@0: break; sl@0: } sl@0: RecordTestResultL(); sl@0: }