diff -r 7fdc9a71d314 -r 8ad140f3dd41 stif/TestEngine/inc/TestReport.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stif/TestEngine/inc/TestReport.h Wed Oct 13 16:17:58 2010 +0300 @@ -0,0 +1,280 @@ +/* +* 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: This file contains the header file of the CTestReport. +* +*/ + +#ifndef TEST_REPORT_H +#define TEST_REPORT_H + +// INCLUDES +#include +#include +#include "TestEngineClient.h" +#include "TestEngine.h" + +// CONSTANTS +// Maximum length for date or time definitions 'Thursday 06th November 2003' +const TInt KMaxDateAndTimeStamp = 30; + +// MACROS +// None + +// DATA TYPES +// None + +// FUNCTION PROTOTYPES +// None + +// FORWARD DECLARATIONS +class CStifLogger; + +// CLASS DECLARATION +// None + +// DESCRIPTION +// CTestReport is a class that can generate different test reports. +class CTestReport + : public CBase + { + public: // Enumerations + + // TTestReportMode defines the mode of test report + enum TTestReportMode + { + ETestReportBlank = 0x00000000, + ETestReportSummary = 0x00000001, + ETestReportEnvironment = 0x00000002, + ETestReportCases = 0x00000004, + ETestReportFull = ETestReportSummary | ETestReportEnvironment | ETestReportCases + }; + + // TTestReportOutput defines the type of test report output + enum TTestReportOutput + { + ETestReportNone = 0x00000000, + ETestReportDebug = 0x00000001, + ETestReportPlainText = 0x00000002, + ETestReportHtml = 0x00000004, + ETestReportAll = ETestReportDebug | ETestReportPlainText | ETestReportHtml + }; + + public: // Structured classes + + /** + * TTestReportHeader includes header information for test report. + * + */ + struct THwInfo + { + TInt iManufacturer; + TInt iMachineUid; + TInt iModel; + TInt iHwRev; + TInt iCpu; + TInt iCpuSpeed; + TInt iLanguage; + }; + + struct TSwInfo + { + TInt iSwRev; + TInt iSwBuild; + }; + + struct TMemoryInfo + { + TInt iRAM; + TInt iRAMFree; + }; + + class TTestHWInfo + { + public: // New functions + TTestHWInfo(); + + public: // Data + // HW Info + THwInfo iHwInfo; + // SW Info + TSwInfo iSwInfo; + // Memory Info + TMemoryInfo iMemoryInfo; + }; + + /** + * TTestCaseSummary includes information for summary of test cases. + */ + class TTestCaseSummary + { + public: // New functions + TTestCaseSummary(); + + public: // Data + // Test Info + TTestInfo iTestInfo; + // Test Result + TFullTestResult iFullTestResult; + }; + + /** + * TTestSummary includes information for test report summary. + */ + class TTestSummary + { + public: // New functions + TTestSummary( const TName& aName ); + + public: // Data + // Name (e.g. test module name ) + const TName iName; + // Count of passed test cases + TInt iPassedCases; + // Count of failed test cases + TInt iFailedCases; + // Count of crashed cases + TInt iCrashedCases; + // Count of timed out cases + TInt iTimeoutCases; + }; + + private: // Enumerations + + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CTestReport* NewL( CTestReportSettings& aTestReportSettings, + const TTestReportMode aReportMode ); + + /** + * Destructor. + */ + ~CTestReport(); + + public: // New functions + + /** + * Add test case result. + */ + void AddTestCaseResultL( const TTestInfo& aTestInfo, + const TFullTestResult& aTestResult, + const TInt aError ); + + /** + * Generate result reports. + */ + void GenerateReportL(); + + /** + * Update result reports. + */ + void UpdateReportSummaryL(); + + /** + * Adds version of test module to RPointerArray + */ + void AddTestModuleVersion(TTestModuleVersionInfo& aVersion); + + public: // Functions from base classes + + protected: // New functions + + protected: // Functions from base classes + + private: + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL( CTestReportSettings& aTestReportSettings ); + + /** + * Default C++ constructor. + */ + CTestReport( const TTestReportMode aReportMode ); + + /** + * Write result file header. + */ + void WriteHeaderL(); + + /** + * Write result file trailer. + */ + void WriteTrailerL(); + + /** + * Write data to file. + */ + void WriteLineL( TRefByValue aStr,... ); + + /** + * Write delimiter line. + */ + void WriteDelimiterL( const TDesC& aDelimiter, TInt aCount ); + + /** + * Adds needed tags to get valid xml file. + */ + void CloseXMLTagsInUnfinishedFileL(void); + + public: // Data + + protected: // Data + + private: // Data + + // Report file handles + RFs iFs; + RFile iFile; + CStifLogger::TLoggerType iFormat; + CStifLogger::TOutput iOutput; + + // Report Mode + TTestReportMode iReportMode; + + // Report HW info + TTestHWInfo iReportHWInfo; + + // Total summary + TTestSummary* iTotalSummary; + + // Test summary array + RPointerArray iTestSummaries; + + // Summary start position + TInt iSummaryPos; + + // Versions of test modules position + TInt iModulesVersionsPos; + + // Test modules versions + RPointerArray iTestModulesVersionsInfo; + + // Will report be written in xml format + TBool iXML; + + public: // Friend classes + + protected: // Friend classes + + private: // Friend classes + + }; + +#endif // TEST_REPORT_H + +// End of File