diff -r 000000000000 -r e35f40988205 xml/libxml2libs/test/tef/xml2/src/texml2teststep.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xml/libxml2libs/test/tef/xml2/src/texml2teststep.cpp Thu Dec 17 09:29:21 2009 +0200 @@ -0,0 +1,106 @@ +// 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 "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: +// + +/** + @file texml2teststep.cpp + @internalTechnology +*/ +#include "texml2teststep.h" +#include "libxml2_globals_private.h" +#include +#include + +/** + * Class CXmlEngMemStep Implementation + */ + +/** + * Constructor. Sets the test step name so that it can be + * differentiated from within doTestStepL() + */ +CXmlEngMemStep::CXmlEngMemStep(const TDesC& aStepName) + { + SetTestStepName(aStepName); + } + +/** + * TEF invokes doTestStepL interface along with the step name + * to let appropriate action to be taken for the test step. + */ +TVerdict CXmlEngMemStep::doTestStepL(void) + { + if (TestStepName() == KXmlEngLeaveOOMStep1) + { + INFO_PRINTF1(KXmlEngLeaveOOMStep1); + SetTestStepResult(TestKXmlEngLeaveOOMStep1()); + } + else if (TestStepName() == KXmlEngLeaveOOMStep2) + { + INFO_PRINTF1(KXmlEngLeaveOOMStep2); + SetTestStepResult(TestKXmlEngLeaveOOMStep2()); + } + return TestStepResult(); + } +/** + * Tests the API XmlEngOOMTestL without any OOM condition. + */ +TVerdict CXmlEngMemStep::TestKXmlEngLeaveOOMStep1() + { + TInt err = KErrNone; + //Clean the global state pointer before calling XmlEngLeaveOOML() + xmlGlobalStatePtr gsPtr = xmlCreateAndInitializeGlobalState(); + if (!gsPtr) + { + INFO_PRINTF1(_L("Warning: Global state pointer is NULL\n")); + } + //reset the OOM flag + xmlResetOOM(); + //invoke the API and check for the error status returned + TRAP(err, XmlEngOOMTestL()); + //should pass without any errors + if (err != KErrNone) + { + return EFail; + } + return EPass; + } +/** + * Tests the API XmlEngOOMTestL without OOM condition. + */ +TVerdict CXmlEngMemStep::TestKXmlEngLeaveOOMStep2() + { + TInt err = KErrNone; + //Set the OOM Flag so that the alternate path in XmlEngOOMTestL() + //is taken + xmlGlobalStatePtr gsPtr = xmlCreateAndInitializeGlobalState(); + if (!gsPtr) + { + INFO_PRINTF1(_L("Warning: Global state pointer is NULL\n")); + } + //set the OOM Flag + xmlSetOOM(); + //invoke the API + TRAP(err, XmlEngOOMTestL()); + //Test case done, reset the flag. + xmlResetOOM(); + //check for the error status returned; should have failed with + //KErrNoMemory + if (err != KErrNoMemory) + { + return EFail; + } + return EPass; + } +