diff -r 000000000000 -r 96e5fb8b040d kerneltest/e32test/hcr/d_hcrsim_psl.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/hcr/d_hcrsim_psl.cpp Thu Dec 17 09:24:54 2009 +0200 @@ -0,0 +1,130 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +#include "hcr_debug.h" +#include "hcr_hai.h" +#include "d_hcrsim.h" + +extern HCR::SRepositoryCompiled CompiledRepository; +extern HCR::SRepositoryCompiled CompiledEmptyRepository; +extern HCR::SRepositoryCompiled CompiledRepositoryCorrupt1; +extern HCR::SRepositoryCompiled CompiledRepositoryCorrupt2; +extern HCR::SRepositoryCompiled CompiledRepositoryNullOrderedList; +TUint32 PslConfigurationFlags = 0; + +class HCRTest : public HCR::MVariant + { +public: + HCRTest(); + virtual ~HCRTest(); + +public: + TInt Initialise(); + TBool IgnoreCoreImgRepository(); + TInt GetCompiledRepositoryAddress( TAny* & aAddr); + TInt GetOverrideRepositoryAddress( TAny* & aAddr); + }; + +HCRTest::HCRTest() + { + HCR_FUNC("HCRTest"); + } + +HCRTest::~HCRTest() + { + HCR_FUNC("~HCRTest"); + } + +TInt HCRTest::Initialise() + { + HCR_FUNC("HCRTest::Initialise"); + if (PslConfigurationFlags & ETestInitialisationFail) + { + HCR_TRACE_RETURN(KErrBadPower); // random error code no.1 + } + HCR_TRACE_RETURN(KErrNone); + } + +TInt HCRTest::GetCompiledRepositoryAddress(TAny*& aAddr) + { + HCR_FUNC("HCRTest::GetCompiledRepositoryAddress"); + TInt r = KErrNone; + if (PslConfigurationFlags & ETestNullRepository) + { + aAddr = NULL; + r = KErrNotSupported; + } + else if (PslConfigurationFlags & ETestEmptyRepository) + { + aAddr = static_cast(&CompiledEmptyRepository); + } + else if (PslConfigurationFlags & ETestCorruptRepository1) + { + aAddr = static_cast(&CompiledRepositoryCorrupt1); + } + else if (PslConfigurationFlags & ETestCorruptRepository2) + { + aAddr = static_cast(&CompiledRepositoryCorrupt2); + } + else if (PslConfigurationFlags & ETestNullOrderedList) + { + aAddr = static_cast(&CompiledRepositoryNullOrderedList); + } + else if (PslConfigurationFlags & ETestNullRepositoryKErrNone) + { + aAddr = NULL; + r = KErrNone; // Invalid error code: should be KErrNotSupported + } + else if (PslConfigurationFlags & ETestBadErrorCode) + { + aAddr = static_cast(&CompiledEmptyRepository); + r = KErrCommsParity; // random error code no.2 + } + else + { + aAddr = static_cast(&CompiledRepository); + } + HCR_TRACE_RETURN(r); + } + +TBool HCRTest::IgnoreCoreImgRepository() + { + HCR_FUNC("HCRTest::IgnoreCoreImgRepository"); + HCR_TRACE_RETURN(PslConfigurationFlags & ETestIgnoreCoreImgRepository); + } + +TInt HCRTest::GetOverrideRepositoryAddress(TAny*& aAddr) + { + HCR_FUNC("HCRTest::GetRAMRepositoryAddress"); + TInt r = KErrNotSupported; + if (PslConfigurationFlags & ETestEnableOverrideRepository) + { + aAddr = static_cast(&CompiledEmptyRepository); + r = KErrNone; + } + HCR_TRACE_RETURN(r); + } + +GLDEF_C HCR::MVariant* CreateHCRVariant() + { + HCR_FUNC("CreateHCRTest"); + if (PslConfigurationFlags & ETestVariantObjectCreateFail) + { + return NULL; + } + return new HCRTest; + }