Fix def files so that the implementation agnostic interface definition has no non-standards defined entry points, and change the eglrefimpl specific implementation to place its private entry points high up in the ordinal order space in the implementation region, not the standards based entrypoints region.
// TTMSGraphicsStep.cpp
// Copyright (c) 2006-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
@test
@internalComponent
*/
#include <bautils.h>
#include <test/ttmsgraphicsstep.h>
#include <f32file.h>
#include <e32std.h>
_LIT8(KLogPass,"PASS");
_LIT8(KLogFail,"FAIL");
void CTTMSGraphicsStep::CleanUpAndWriteResults()
{
TBuf<256> testID;
TBuf<8> unusableTestResult; //In graphicstestharness it is not known whether the test was started with
//!Result=Fail or !Error=KErrSomething given as paramenter to RUN_TEST_STEP
for (TInt iArrayIndex=0; iArrayIndex < iArrayTMSData.Count(); iArrayIndex++)
{
CTMSDataColumn columnData = iArrayTMSData[iArrayIndex];
testID.Copy(columnData.iTheID);
unusableTestResult.Copy(columnData.iTheResult); //unusable because we don't know if the test is expected to pass or fail
INFO_PRINTF2(_L("START_TESTCASE %S"),&testID);
INFO_PRINTF2(_L("Line = 1 Command = START_TESTCASE %S"),&testID);
INFO_PRINTF2(_L("END_TESTCASE %S"),&testID);
INFO_PRINTF2(_L("Line = 1 Command = END_TESTCASE %S"),&testID);
}
iArrayTMSData.Close();
}
EXPORT_C CTTMSGraphicsStep::CTTMSGraphicsStep() : iStepPassFail(ETrue), iShowMultipleResults(EFalse)
{
iCurrentTestStepName.Copy(KUnknownSYMTestCaseIDName);
}
EXPORT_C void CTTMSGraphicsStep::CloseTMSGraphicsStep()
{
CTTMSGraphicsStep::CleanUpAndWriteResults();
}
EXPORT_C CTTMSGraphicsStep::~CTTMSGraphicsStep()
{
CTTMSGraphicsStep::CleanUpAndWriteResults();
}
// writes out the results of a test that has just been executed to the log file(s)
// the first time a test result is written it is also added to the iTestStepNames array.
// This array is then checked on subsequent tests to see if the test has already been written to log
// if it has and multiple test results are not wanted further logging of this test is omitted.
void CTTMSGraphicsStep::DebugLogL(const TDesC8& aTestCaseID, const TDesC8& aResult)
{
TBool foundID = EFalse;
if(!iShowMultipleResults)
{
for (TInt iArrayIndex=0; iArrayIndex < iArrayTMSData.Count(); iArrayIndex++)
{
CTMSDataColumn columnData = iArrayTMSData[iArrayIndex];
if (columnData.iTheID.Compare(aTestCaseID)== 0)
{
if (columnData.iTheResult.Compare(KLogFail) != 0)
{
iArrayTMSData[iArrayIndex].iTheResult.Copy(aResult);
}
foundID = ETrue;
iArrayIndex = iArrayTMSData.Count();
}
}
}
if (!foundID || iShowMultipleResults)
{
CTMSDataColumn theData;
theData.iTheID.Copy(aTestCaseID);
theData.iTheResult.Copy(aResult);
iArrayTMSData.Append(theData);
}
}
EXPORT_C void CTTMSGraphicsStep::RecordTestResultL()
{
TBuf<64> unknownTMSID(KUnknownSYMTestCaseIDName);
TBuf8<64> unknownID8;
unknownID8.Copy(unknownTMSID);
TBuf<64> undefinedTMSID(KUndefinedSYMTestCaseIDName);
TBuf8<64> undefinedID8;
undefinedID8.Copy(undefinedTMSID);
TBuf<64> notaTMSID(KNotATestSYMTestCaseIDName);
TBuf8<64> notaID8;
notaID8.Copy(notaTMSID);
TBuf<128> currentTSName;
currentTSName.Copy(iCurrentTestStepName);
if (iCurrentTestStepName.Compare(unknownID8) == 0) // unknown tests logged to warning file
{
INFO_PRINTF1(_L("ID NOT SET"));
}
else if (iCurrentTestStepName.Compare(undefinedID8) == 0) // undefined tests logged to warning file
{
INFO_PRINTF1(_L("ID UNDEFINED"));
}
else if (iCurrentTestStepName.Compare(notaID8) == 0)
{
}
else
{
if( iStepPassFail == EFalse)
{
INFO_PRINTF2(_L("%S FAILED"), ¤tTSName );
DebugLogL(iCurrentTestStepName, KLogFail);
}
else
{
DebugLogL(iCurrentTestStepName, KLogPass);
}
}
}
// sets the name and pass/fail state of the individual test that is about to be executed
EXPORT_C void CTTMSGraphicsStep::SetTestStepID(const TDesC& aStepName)
{
if(TestStepName() == KNullDesC)
{
SetTestStepName(aStepName);
}
iCurrentTestStepName.Copy(aStepName);
iStepPassFail = ETrue;
}
EXPORT_C void CTTMSGraphicsStep::SetOverallTestStepID(const TDesC& aStepName)
{
iCurrentTestStepName.Copy(aStepName);
iStepPassFail = ETrue;
if (!TestStepResult() == EPass)
TEST(EFalse);
}
// needed for the overide of CTGraphicsBase::testBooleanTrue to allow us to set
// whether an individual test has passed or failed
EXPORT_C void CTTMSGraphicsStep::MQCTest(TBool aCondition, const TText8* aFile, TInt aLine)
{
if(!aCondition)
{
iStepPassFail = EFalse;
}
testBooleanTrue( aCondition, aFile, aLine, ETrue);
}
// needed for the overide of CTGraphicsBase::testBooleanTrue to allow us to set
// whether an individual test has passed or failed
EXPORT_C void CTTMSGraphicsStep::MQCTestL(TBool aCondition, const TText8* aFile, TInt aLine)
{
if(!aCondition)
{
iStepPassFail = EFalse;
}
testBooleanTrueL( aCondition, aFile, aLine, ETrue);
}
// needed for the overide of CTGraphicsBase::testBooleanTrueWithErrorCode to allow us to set
// whether an individual test has passed or failed. Also allows line and file of test failure
// to be displayed.
EXPORT_C void CTTMSGraphicsStep::MQCTestWithErrorCode(TBool aCondition, TInt aErrorCode, const TText8* aFile, TInt aLine)
{
if(!aCondition)
{
iStepPassFail = EFalse;
SetTestStepResult(EFail);
_LIT(KMessage,"Test Failed with error [%d]");
Logger().LogExtra(aFile, aLine, ESevrErr, KMessage, aErrorCode);
}
}
// sets whether tests with the same @SYMTestCaseID xxxxxx name are printed multiple times in the log files
EXPORT_C void CTTMSGraphicsStep::MultipleResultsForSameID(TBool aShowMultipleResults)
{
iShowMultipleResults = aShowMultipleResults;
}