diff -r 000000000000 -r bde4ae8d615e os/graphics/graphicsdeviceinterface/bitgdi/tbit/TBASE.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/graphics/graphicsdeviceinterface/bitgdi/tbit/TBASE.CPP Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,272 @@ +// Copyright (c) 1997-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 +#include "TGDI.H" +#include +#include +#include "TBMP.H" +#include "tbase.h" +#include + + +CTGdi::CTGdi(CTestStep* aStep): + CTGraphicsBase(aStep), + iTestGdi() + { + } + +void CTGdi::RunTestCaseL(TInt aCurTestCase) + { + ((CTGdiStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName); + switch(aCurTestCase) + { + case 1: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0030")); + TestScreenL(EGray2); + break; + case 2: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0030")); + TestScreenL(EGray4); + break; + case 3: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0030")); + TestScreenL(EGray16); + break; + case 4: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0030")); + TestScreenL(EGray256); + break; + case 5: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0030")); + TestScreenL(EColor16); + break; + case 6: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0030")); + TestScreenL(EColor256); + break; + case 7: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0030")); + TestScreenL(EColor4K); + break; + case 8: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0030")); + TestScreenL(EColor64K); + break; + case 9: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0030")); + TestScreenL(EColor16M); + break; + case 10: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0030")); + TestScreenL(EColor16MU); + break; + case 11: + ((CTGdiStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName); +// Test still failing, see DEF094106 +// TestScreenL(EColor16MA); + break; + case 12: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0031")); + TestBitmapL(EGray2); + break; + case 13: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0031")); + TestBitmapL(EGray4); + break; + case 14: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0031")); + TestBitmapL(EGray16); + break; + case 15: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0031")); + TestBitmapL(EGray256); + break; + case 16: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0031")); + TestBitmapL(EColor16); + break; + case 17: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0031")); + TestBitmapL(EColor256); + break; + case 18: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0031")); + TestBitmapL(EColor4K); + break; + case 19: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0031")); + TestBitmapL(EColor64K); + break; + case 20: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0031")); + TestBitmapL(EColor16M); + break; + case 21: + ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-BITGDI-0031")); + TestBitmapL(EColor16MU); + break; + case 22: + ((CTGdiStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName); +// Test still failing, see DEF094106 +// TestBitmapL(EColor16MA); + break; + case 23: + ((CTGdiStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName); + ((CTGdiStep*)iStep)->CloseTMSGraphicsStep(); + TestComplete(); + break; + } + ((CTGdiStep*)iStep)->RecordTestResultL(); + // + } + + +/** + @SYMTestCaseID GRAPHICS-BITGDI-0030 + + @SYMDEF + + @SYMTestCaseDesc Tests screen creation in various colour modes + + @SYMTestPriority High + + @SYMTestStatus Implemented + + @SYMTestActions Creates a screen in a certain colour mode, draws a bitmap on it then destroys it + + @SYMTestExpectedResults Test should pass +*/ +void CTGdi::TestScreenL(TDisplayMode aDispMode) + { + CFbsScreenDevice* device = NULL; + TRAPD(err,device = CFbsScreenDevice::NewL(_L("scdv"),aDispMode)); + if (err == KErrNotSupported) + return; + else + User::LeaveIfError(err); + CleanupStack::PushL(device); + device->ChangeScreenDevice(NULL); + device->SetAutoUpdate(ETrue); + + DoTestAndDeleteL(device,ETrue); + CleanupStack::PopAndDestroy(1,device); + } + + +/** + @SYMTestCaseID GRAPHICS-BITGDI-0031 + + @SYMDEF + + @SYMTestCaseDesc Tests bitmap creation in various colour modes + + @SYMTestPriority High + + @SYMTestStatus Implemented + + @SYMTestActions Creates a bitmap in a certain colour mode, draws a bitmap on it then destroys it + + @SYMTestExpectedResults Test should pass +*/ +void CTGdi::TestBitmapL(TDisplayMode aDispMode) + { + CFbsBitmap* bitmap = new(ELeave) CFbsBitmap; + CleanupStack::PushL(bitmap); + //Creating a Reference Bitmap of screensize to compare the results + CFbsScreenDevice* qdevice = NULL; + TRAPD(error, qdevice = CFbsScreenDevice::NewL(_L("scdv"),aDispMode)); + + if (error == KErrNotSupported) + { + CleanupStack::PopAndDestroy(bitmap); + return; + } + else + { + User::LeaveIfError(error); + } + + CleanupStack::PushL(qdevice); + qdevice->SetAutoUpdate(ETrue); + TSize screensize=qdevice->SizeInPixels(); + TInt ret = bitmap->Create(screensize,aDispMode); + if (ret == KErrNotSupported) + { + CleanupStack::PopAndDestroy(2,bitmap); + return; + } + else + { + User::LeaveIfError(ret); + } + + CFbsBitmapDevice* device = CFbsBitmapDevice::NewL(bitmap); + CleanupStack::PushL(device); + DoTestAndDeleteL(device, EFalse); + CleanupStack::PopAndDestroy(3,bitmap); + } + +void CTGdi::DoTestAndDeleteL(CFbsDevice* aDevice,TBool aScreen) + { + CFbsBitGc* gc = NULL; + User::LeaveIfError(aDevice->CreateContext(gc)); + CleanupStack::PushL(gc); + + CFbsFont* font = NULL; + User::LeaveIfError(aDevice->GetNearestFontToDesignHeightInTwips(font,TFontSpec())); + gc->UseFont(font); + aDevice->ReleaseFont(font); + + CFbsBitmap* bmp = new(ELeave) CFbsBitmap; + CleanupStack::PushL(bmp); + TInt ret = bmp->Load(_L("z:\\system\\data\\tbmp.mbm"),EMbmTbmpTblank); + User::LeaveIfError(ret); + gc->UseBrushPattern(bmp->Handle()); + + if (aScreen) + INFO_PRINTF2(_L("Gdi screen device testing, mode %d\n"),aDevice->DisplayMode()); + else + INFO_PRINTF2(_L("Gdi bitmap device testing, mode %d\n"),aDevice->DisplayMode()); + + TBuf section; + iTestGdi.Construct(aDevice,gc,section); + + TBool pass = iTestGdi.Test(); + + if (!pass) + { + INFO_PRINTF2(_L("Gdi device test failed section: %S"),§ion); + //Getch(); + } + TEST(pass); + + CleanupStack::PopAndDestroy(2,gc); + } + +//-------------- +__CONSTRUCT_STEP__(Gdi) + +void CTGdiStep::TestSetupL() + { + FbsStartup(); + User::LeaveIfError(RFbsSession::Connect()); + } + +void CTGdiStep::TestClose() + { + RFbsSession::Disconnect(); + }