--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/stif/TestEngine/inc/TestReport.h Tue Feb 02 01:57:15 2010 +0200
@@ -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 <e32std.h>
+#include <e32base.h>
+#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( TTestReportSettings& 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( TTestReportSettings& 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<const TDesC> 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<TTestSummary> iTestSummaries;
+
+ // Summary start position
+ TInt iSummaryPos;
+
+ // Versions of test modules position
+ TInt iModulesVersionsPos;
+
+ // Test modules versions
+ RPointerArray<TTestModuleVersionInfo> 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