os/graphics/graphicsresourceservices/graphicsresourceimplementation/test/src/tsgdriver.cpp
First public contribution.
1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
19 @internalComponent - Graphics Resource API Conformance Test Suite
22 #include "tsgdriver.h"
24 CTSgDriver::CTSgDriver(TBool aConformanceTests) :
25 CTSgTestStepBase(aConformanceTests)
27 INFO_PRINTF1(_L("Graphics resource component test - SgDriver Tests.\r\n"));
30 CTSgDriver::~CTSgDriver()
35 Overrides of base class pure virtual
36 Our implementation only gets called if the base class doTestStepPreambleL() did
37 not leave. That being the case, the current test result value will be EPass.
38 @leave Gets system wide error code
41 TVerdict CTSgDriver::doTestStepL()
43 SetTestStepID(_L("GRAPHICS-RESOURCE-0022"));
44 INFO_PRINTF1(_L("Shutting down an uninitialised driver.\r\n"));
45 TestShutdownUninitialized();
48 SetTestStepID(_L("GRAPHICS-RESOURCE-0096"));
49 INFO_PRINTF1(_L("Checking the driver is the correct version.\r\n"));
53 SetTestStepID(_L("GRAPHICS-RESOURCE-0099"));
54 INFO_PRINTF1(_L("Checking the driver returns the correct error on multiple opens.\r\n"));
58 SetTestStepID(_L("GRAPHICS-RESOURCE-0103"));
59 INFO_PRINTF1(_L("Checking GetInterface() returns correct error codes.\r\n"));
63 return TestStepResult();
67 @SYMTestCaseID GRAPHICS-RESOURCE-0022
68 @SYMTestCaseDesc Shuts down an uninitialised driver.
70 @SYMFssID RSgDriver::Close()
73 @SYMTestPurpose To ensure invalid Close() calls on the driver will cause no errors.
74 @SYMTestActions Call RSgDriver::Close() several times without calling RSgDriver::Open().
75 @SYMTestExpectedResults No errors should be returned.
77 void CTSgDriver::TestShutdownUninitialized()
91 @SYMTestCaseID GRAPHICS-RESOURCE-0096
92 @SYMTestCaseDesc Test the version number returned by RSgDriver is correct.
94 @SYMFssID RSgDriver::Version()
95 @SYMTestPriority Medium
97 @SYMTestPurpose To check the correct version of the driver is being used in the
99 @SYMTestActions Call RSgDriver::Version().
100 @SYMTestExpectedResults The correct version should be returned.
102 void CTSgDriver::TestVersion()
108 TVersion vers = sgDriver.Version();
109 TEST(vers.iMajor == 1);
110 TEST(vers.iMinor == 1);
116 @SYMTestCaseID GRAPHICS-RESOURCE-0099
117 @SYMTestCaseDesc Test SgDriver Handles Multiple Calls to Open Correctly
119 @SYMFssID RSgDriver::Open()
120 @SYMTestPriority High
122 @SYMTestPurpose To ensure the correct error code is returned when an open
124 @SYMTestActions Call RSgDriver::Open().
125 @SYMTestExpectedResults KErrInUse should be returned when the driver is opened for
126 the second time and all subsequent times.
128 void CTSgDriver::TestMultipleOpens()
135 err = sgDriver.Open();
136 TESTE(KErrNone == err, err);
137 err = sgDriver.Open();
138 TESTE(KErrInUse == err, err);
139 err = sgDriver.Open();
140 TESTE(KErrInUse == err, err);
141 err = sgDriver.Open();
142 TESTE(KErrInUse == err, err);
149 @SYMTestCaseID GRAPHICS-RESOURCE-0103
150 @SYMTestCaseDesc Test that GetInterface() returns the correct error code in
153 @SYMFssID RSgDriver::GetInterface()
156 @SYMTestPurpose To ensure the correct error code is returned when GetInterface()
157 is used, in a variety of sitations.
158 @SYMTestActions Call RSgDriver::GetInterface() with an interface that is valid but
159 not supported by the driver.
160 Call RSgDriver::GetInterface() with an interface with a Null ID.
161 Call RSgDriver::GetInterface() with any interface, on a driver that
163 @SYMTestExpectedResults When using an unsupported interface, KErrExtensionNotSupported should
165 When using an interface with the null UID, KErrArgument should be returned.
166 When using any interface after the driver is closed, KErrBadHandle
171 Test classes for testing with RSgImage::GetInterface()
176 enum { EInterfaceUid = 0x88888888 };
181 enum { EInterfaceUid = KNullUidValue };
184 void CTSgDriver::TestGetInterface()
189 TInt err = sgDriver.Open();
190 TESTE(err == KErrNone, err);
192 MFakeInterface* fakeInterface = NULL;
193 err = sgDriver.GetInterface(fakeInterface);
194 TESTE(err == KErrExtensionNotSupported, err);
196 MNullInterface* nullInterface = NULL;
197 err = sgDriver.GetInterface(nullInterface);
198 TESTE(err == KErrArgument, err);
201 err = sgDriver.GetInterface(fakeInterface);
202 TESTE(err == KErrBadHandle, err);
203 err = sgDriver.GetInterface(nullInterface);
204 TESTE(err == KErrBadHandle, err);