diff -r c734af59ce98 -r 5b5d147c7838 halservices/hal/tsrc/t_haldefect.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/halservices/hal/tsrc/t_haldefect.cpp Tue May 25 14:09:55 2010 +0300 @@ -0,0 +1,109 @@ +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "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: +// + +#define __E32TEST_EXTENSION__ +#include +#include +#include +#include +#include + +LOCAL_D RTest test(_L("T_HalDefect Testcases")); + + + +void DoTestRC_361803() + { + __UHEAP_MARK; + test.Start(_L("DoTestRC_361803 tests")); + + TInt origValue = 0; + TInt r = HAL::Get(HALData::EDisplayMemoryHandle, origValue); + // Standard base emulator PSL without "-1 check", HAL::Get, r==KErrArgument + // Standard base emulator PSL, no mods, HAL::GetAll, r==KErrNone, origValue==0 + // NaviEngine PSL, no mods, r==KErrNotSupported + // Platforms that support it: r==KErrNone, origValue==+ve + if ((r == KErrNotSupported) || (r == KErrArgument) || + (origValue == 0)) // Skip test if not supported + { + test.Printf(_L("Platform doesn't support EDigitiserOrientation, skipping, (%d, %d)\n"), r, origValue); + test.End(); + __UHEAP_MARKEND; + return; + } + // Attribute supported + test_KErrNone(r); + RHandleBase handle; + handle.SetHandle(origValue); + handle.Close(); + test.Printf(_L("Platform DOES support EDigitiserOrientation, handle closed\n")); + + HAL::SEntry* pE = 0; + TInt pC = 0; + r = HAL::GetAll(pC, pE); + test_KErrNone(r); + + const HAL::SEntry* pS=pE; + const HAL::SEntry* pEnd=pS + pC; + TBool displayMemHandleFound = EFalse; + + test.Printf(_L("ENumHalAttributes == %d, nEntries == %d\n"), HALData::ENumHalAttributes, pC); + for (TInt s = 0; pSiProperties, pS->iValue ); + + if ((pS->iProperties & HAL::EEntryValid ) && + ((s%HAL::ENumHalAttributes) == HALData::EDisplayMemoryHandle)) + { + // Note, GetAll on Emulator PSL will set r==KErrNone and value to 0 + // So check value to ensure a handle has been allocated. + if( pS->iValue >= 0 ) + { + displayMemHandleFound++; + RHandleBase handle; + handle.SetHandle(pS->iValue); + handle.Close(); + break; + } + } + } + + test.Printf(_L("HAL::GetAll() DisplayMemHandle should not have been found (0), result == (%d)\n"), displayMemHandleFound ); + test_Equal(displayMemHandleFound, 0); + + test.Printf(_L("DoTestRC_361803 - complete\n")); + test.End(); + __UHEAP_MARKEND; + } + + +GLDEF_C TInt E32Main() + { + __UHEAP_MARK; + + test.Title(); + test.Start(_L("User-side HAL Defect Test Cases")); + + DoTestRC_361803(); // ox1cimx1#361803 + + test.Printf(_L("\n")); + test.End(); + test.Close(); + + __UHEAP_MARKEND; + return KErrNone; + } +