--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsdeviceinterface/bitgdi/tbit/TBASE.CPP Tue Feb 02 01:47:50 2010 +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 <e32hal.h>
+#include "TGDI.H"
+#include <bitdev.h>
+#include <hal.h>
+#include "TBMP.H"
+#include "tbase.h"
+#include <graphics/fbsdefs.h>
+
+
+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<KFailureSectionNameBufferLength> 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();
+ }