--- a/stif/stif_plat/inc/atslogger.h Mon Jun 28 15:36:07 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,581 +0,0 @@
-/*
-* 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 CAtsLogger
-* class.
-*
-*/
-
-#ifndef __ATSLOGGER_H__
-#define __ATSLOGGER_H__
-
-// INCLUDES
-#include <f32file.h>
-
-// CONSTANTS
-_LIT(KAtsLogger, "AtsLogger");
-_LIT(KAtsLoggerNa, "NA");
-_LIT(KAtsLoggerPassed, "PASSED");
-_LIT(KAtsLoggerFailed, "FAILED");
-_LIT(KAtsLoggerSkipped, "SKIPPED");
-_LIT(KAtsLoggerEmpty, "");
-_LIT(KAtsLoggerSemaphore, "AtsLogger");
-_LIT(KAtsLoggerXmlDirectory, "\\SPD_LOGS\\XML\\");
-_LIT(KAtsLoggerRawDirectory, "\\SPD_LOGS\\RAW\\");
-_LIT(KAtsLoggerXmlSuffix, ".xml");
-_LIT(KAtsLoggerRawSuffix, ".log");
-
-_LIT(KAtsLoggerTagOpen, "<");
-_LIT(KAtsLoggerSpace, " ");
-_LIT(KAtsLoggerAttr, "=\"");
-_LIT(KAtsLoggerAttrClose, "\">");
-_LIT(KAtsLoggerTagPost, ">");
-_LIT(KAtsLoggerTagClose, "</");
-_LIT(KAtsLoggerLf, "\n");
-_LIT(KAtsLoggerIndent, " ");
-_LIT8(KAtsLoggerIndent8, " ");
-_LIT(KAtsLoggerCommentOpen, "<!--");
-_LIT(KAtsLoggerCommentClose, "-->");
-_LIT(KAtsLoggerQuot, """);
-_LIT(KAtsLoggerAmp, "&");
-_LIT(KAtsLoggerApos, "'");
-_LIT(KAtsLoggerLt, "<");
-_LIT(KAtsLoggerGt, ">");
-
-_LIT8(KAtsLoggerQuot8, """);
-_LIT8(KAtsLoggerAmp8, "&");
-_LIT8(KAtsLoggerApos8, "'");
-_LIT8(KAtsLoggerLt8, "<");
-_LIT8(KAtsLoggerGt8, ">");
-_LIT8(KAtsLoggerEmpty8, "");
-
-_LIT(KAtsLoggerTagTestReport, "test-report");
-_LIT(KAtsLoggerTagTestSet, "test-batch");
-_LIT(KAtsLoggerTagTestCase, "test-case");
-_LIT(KAtsLoggerTagTestSetInit, "batch-init");
-_LIT(KAtsLoggerTagDescription, "description");
-_LIT(KAtsLoggerTagDate, "date");
-_LIT(KAtsLoggerTagFactory, "factory");
-_LIT(KAtsLoggerTagComponent, "component");
-_LIT(KAtsLoggerTagName, "name");
-_LIT(KAtsLoggerTagVersion, "version");
-_LIT(KAtsLoggerTagTestSetResult, "batch-result");
-_LIT(KAtsLoggerTagId, "id");
-_LIT(KAtsLoggerTagTestCaseInit, "case-init");
-_LIT(KAtsLoggerTagExpected, "expected-result");
-_LIT(KAtsLoggerTagRunTime, "run-time");
-_LIT(KAtsLoggerTagTestCaseResult, "case-result");
-_LIT(KAtsLoggerTagActual, "actual-result");
-_LIT(KAtsLoggerTagDebug, "debug-info");
-_LIT(KAtsLoggerTagWarning, "warning");
-_LIT(KAtsLoggerTagError, "error");
-_LIT(KAtsLoggerTagStatus, "status");
-_LIT(KAtsLoggerTimeStamp, "time-stamp");
-
-const TInt KAtsLoggerBufferSegmentGranularity = 32;
-
-// CLASS DECLARATION
-
-// DESCRIPTION
-// CAtsLogger defines API for test case result logging.
-class CAtsLogger : public CBase
- {
- public: // Public enumerations
- enum TReportStage
- {
- ENone,
- EUninitialized,
- EBeginTestReport,
- EBeginTestSet,
- EBeginTestCase,
- ESetTestCaseVerdict,
- EEndTestCase,
- EEndTestSet,
- EEndTestReport,
- EFinished
- };
- private: // Private enumerations
- // None
-
- public: // Public constructors/desctructors
-
- /**
- * Symbian OS constructor
- */
- IMPORT_C static CAtsLogger* NewL( const TDesC& aName,
- TBool aAfterReboot = EFalse );
-
- /**
- * C++ destructor
- */
- IMPORT_C ~CAtsLogger();
-
- public: // Public new functions
-
- /**
- * Returns error message. Also includes
- * base E32 error codes.
- */
- IMPORT_C static const TPtrC ErrorMessage(const TInt& aError);
-
- /**
- * Closes opened resources. Desctructor calls
- * this if it is not called before.
- */
- IMPORT_C void CloseL();
-
- /**
- * IsValid() returns ETrue if this logger is valid and
- * able to write log.
- */
- IMPORT_C TBool IsValid();
-
- /**
- * BeginTestReportL() should be called at the beginning of the program,
- * before any testing begins
- */
- IMPORT_C void BeginTestReportL();
-
- /**
- * EndTestReportL() must be called at the end of the program
- */
- IMPORT_C void EndTestReportL();
-
- /**
- * SaveForRebootL() should be called before reboot to save data.
- */
- IMPORT_C void SaveForRebootL();
-
- /**
- * ContinueAfterRebootL() must be called to continue
- * after reboot.
- */
- IMPORT_C void ContinueAfterRebootL();
-
- /**
- * BeginTestSetL() must be called when a new test set begins
- *
- * factory = component factory whose component is being tested
- * component = name of the software component being tested
- * version = version of the software component
- * description = short, optional description of the batch
- */
- IMPORT_C void BeginTestSetL(const TDesC& aFactory = KAtsLoggerNa,
- const TDesC& aComponent = KAtsLoggerNa,
- const TDesC& aVersion = KAtsLoggerNa,
- const TDesC& aDescription = KAtsLoggerEmpty);
-
- /**
- * EndTestSetL() must be called as soon as a test set ends
- */
- IMPORT_C void EndTestSetL();
-
- /**
- * BeginTestCaseL() is called whenever an individual testcase begins
- *
- * id = unique id of the testcase
- * expected = expected result of the test (if applicable)
- * info = short descritpion of the expected result (if applicable)
- */
- IMPORT_C void BeginTestCaseL(const TDesC& aId,
- const TDesC& aExpected = KAtsLoggerNa,
- const TDesC& aInfo = KAtsLoggerEmpty,
- const TDesC& aVersion = KAtsLoggerEmpty);
-
- /**
- * BeginTestCaseL() is called whenever an individual testcase begins
- *
- * id = unique id of the testcase
- * expected = expected result code of the test (if applicable)
- * info = short descritpion of the expected result (if applicable)
- */
- IMPORT_C void BeginTestCaseL(const TDesC& aId,
- const TInt aExpected,
- const TDesC& aInfo = KAtsLoggerEmpty,
- const TDesC& aVersion = KAtsLoggerEmpty);
-
- /**
- * BeginTestCaseReportL() is called whenever an individual testcase report begins
- *
- * id = unique id of the testcase
- * expected = expected result code of the test (if applicable)
- * startTime= test case starting time
- * info = short descritpion of the expected result (if applicable)
- */
- IMPORT_C void BeginTestCaseReportL( const TDesC& aId,
- const TDesC& aExpected,
- const TTime& aStartTime,
- const TDesC& aInfo = KAtsLoggerEmpty,
- const TDesC& aVersion = KAtsLoggerEmpty );
-
- /**
- * BeginTestCaseReportL() is called whenever an individual testcase report begins
- *
- * id = unique id of the testcase
- * expected = expected result code of the test (if applicable)
- * startTime= test case starting time
- * info = short descritpion of the expected result (if applicable)
- */
- IMPORT_C void BeginTestCaseReportL( const TDesC& aId,
- const TInt aExpected,
- const TTime& aStartTime,
- const TDesC& aInfo = KAtsLoggerEmpty,
- const TDesC& aVersion = KAtsLoggerEmpty );
-
- /**
- * EndTestCaseL() is called when an individual testcase ends
- */
- IMPORT_C void EndTestCaseL();
-
- /**
- * TestCasePassed() must be called between calls
- * to BeginTestCase() and EndTestCase(). This results
- * test case to be passed.
- */
- IMPORT_C void TestCasePassed();
-
-
- /**
- * TestCaseFailed() must be called between calls
- * to BeginTestCase() and EndTestCase(). This results
- * test case to be failed.
- */
- IMPORT_C void TestCaseFailed();
-
- /**
- * TestCaseSkipped() must be called between calls
- * to BeginTestCase() and EndTestCase(). This results
- * test case to be skipped.
- */
- IMPORT_C void TestCaseSkipped();
-
- /**
- * TestCaseNa() must be called between calls
- * to BeginTestCase() and EndTestCase(). This results
- * test case to be N/A.
- */
- IMPORT_C void TestCaseNa();
-
- /**
- * SetTestCaseResultL() sets the actual result of the test (if applicable),
- * this should correspond to the expected result (see BeginTestCase) if
- * the test succeeds.
-
- * Must be called between calls to BeginTestCaseL() and EndTestCaseL().
- */
- IMPORT_C void SetTestCaseResultL(const TInt aResult);
- IMPORT_C void SetTestCaseResultL(const TDesC& aResult = KAtsLoggerEmpty);
- IMPORT_C void SetTestCaseResultL(TRefByValue<const TDesC> aFmt,...);
-
- /**
- * DebugL(), WarningL(), ErrorL() and CommentL() as used to place
- * informational messages of appropriate debug level into the test report.
- * These functions can be called anywhere between BeginReportL() and EndReportL().
- */
- IMPORT_C void DebugL(const TDesC& aMsg);
- IMPORT_C void DebugL(TRefByValue<const TDesC> aFmt,...);
-
- IMPORT_C void WarningL(const TDesC& aMsg);
- IMPORT_C void WarningL(TRefByValue<const TDesC> aFmt,...);
-
- IMPORT_C void ErrorL(const TDesC& aMsg);
- IMPORT_C void ErrorL(TRefByValue<const TDesC> aFmt,...);
-
- IMPORT_C void CommentL(const TDesC& aMsg);
- IMPORT_C void CommentL(TRefByValue<const TDesC> aFmt,...);
-
- /**
- * RawLogL() writes to a separate log file.
- */
- IMPORT_C TInt RawLogL(const TDesC& aMsg);
- IMPORT_C TInt RawLogL(TRefByValue<const TDesC> aFmt,...);
-
- /**
- * DebugOutput() writes to RDebug
- */
- IMPORT_C void DebugOutput(const TDesC& aMsg);
-
- /**
- * Set this to ETrue if client should use
- * full set of reporting methods
- */
- IMPORT_C void SetFullReporting(TBool aFlag);
-
- /**
- * Set this to ETrue if XML log should be
- * written to the debug port also.
- */
- IMPORT_C void SetDebugOutput(TBool aFlag);
-
- /**
- * Set this to ETrue if XML log should have
- * indentation. This only adds human readability.
- */
- IMPORT_C void SetIndentation(TBool aFlag);
-
-
- public: // Public functions from base classes
- // None
-
- protected: // Protected new functions
- /**
- * Outputs message closed by the tags.
- */
- void TagL(const TDesC& aTag,
- const TDesC& aMsg);
-
- /**
- * Adds attribute with value to the message and
- * outputs message closed by the tags.
- */
- void TagL(const TDesC& aTag,
- const TDesC& aMsg,
- const TDesC& aAttribute,
- const TDesC& aValue);
-
- /**
- * Outputs message closed by the tags. This is used with
- * DebugL(), WarningL(), ErrorL() and CommentL(). Time stamp is
- * added to the message.
- */
- void TimeStampedMessageL(const TDesC& aTag,
- const TDesC& aMsg);
-
- /**
- * Opens a tag.
- */
- void OpenTagL(const TDesC& aTag);
-
-
- /**
- * Opens a tag with attribute and value.
- */
- void OpenTagL(const TDesC& aTag,
- const TDesC& aAttribute,
- const TDesC& aValue);
-
- /**
- * Opens a tag and increases indent level.
- */
- void OpenTagIndentL(const TDesC& aTag);
-
-
- /**
- * Opens a tag with attribute having value and increases indent level.
- */
- void OpenTagIndentL(const TDesC& aTag,
- const TDesC& aAttribute,
- const TDesC& aValue);
-
- /**
- * Closes a tag;
- */
- void CloseTagL(const TDesC& aTag);
-
- /**
- * Closes a tag and descreases indent level.
- */
- void CloseTagIndentL(const TDesC& aTag);
-
- /**
- * Outputs line feed.
- */
- void LineFeedL();
-
- /**
- * Writes data to the specified file.
- */
- void WriteL(const TDesC& aData, RFile& aFile);
-
- /**
- * Writes data to the XML file.
- */
- void WriteL(const TDesC& aData);
-
- /**
- * Encodes XML special chararacters from message
- */
- HBufC* EncodeLC(const TDesC& aMsg);
-
- /**
- * Checks whether report stage transition is legal.
- */
- TBool IsTransitionLegal(const TReportStage& aNewStage);
-
- protected: // Protected functions from base classes
- // None
-
- protected: // Protected data
- // None
-
- private: // Private functions
- /**
- * By default Symbian OS two-phase constructor is private.
- */
- void ConstructL( TBool aAfterReboot );
-
- /**
- * C++ constructor
- */
- CAtsLogger(const TDesC& aName);
-
- /**
- * Checks whether directory exist or not
- */
- TBool CheckDirectoryL(const TDesC& aDirName, TChar& aDrive);
-
- /**
- * Replaces file if already exist
- */
- TInt ReplaceFileL(const TDesC& aFileName);
-
- /**
- * Open existing file if already exist
- */
- TInt OpenExistingFileL(const TDesC& aFileName);
-
- /**
- * Formats given date to a format of yyyy-mm-dd hh:mm:ss
- */
- HBufC* FormatDateLC(TDateTime aDate);
-
- /**
- * Formats given time to a format of hh:mm:ss
- */
- HBufC* FormatTimeLC(TTimeIntervalMicroSeconds aTime);
-
- /**
- * Expands buffer and then writes aBuf into it.
- */
- TInt BufferL(CBufBase* aBufBase, TInt& aLength,const TDesC& aBuf);
-
- /**
- * Writes whole buffer to a file. Does not reset buffer.
- */
- TInt WriteBufferToFileL(CBufBase* aCBufBase, const TDesC& aFileName);
-
- /**
- * Writes whole buffer to the debug port. Does not reset buffer.
- */
- TInt WriteBufferToDebugPortL(CBufBase* aCBufBase);
-
- protected: // Protected data
- // TTestSet data holder class definition and implementation
- class TTestSet
- {
- public:
- TTime iStartTime;
- };
-
- // TCase data holder class definition and implementation
- class TTestCase
- {
- public:
- TTestCase() { iResult = NULL; }
- ~TTestCase()
- {
- if (iResult)
- {
- delete iResult;
- iResult = NULL;
- }
- }
- public:
- HBufC* iResult;
- TPtrC iStatus;
- TTime iStartTime;
-
- };
-
- // Data holder for batch information
- CAtsLogger::TTestSet iTestSet;
-
- // Data holder for test case information
- CAtsLogger::TTestCase iTestCase;
-
- // Holds current report stage
- CAtsLogger::TReportStage iReportStage;
-
- // Test case and logger ID
- const TFileName iName;
-
- private: // Private data
- // Dynamic buffer for XML data
- CBufBase* iXmlBuffer;
-
- // Current legth of iXmlBuffer
- TInt iXmlBufferLength;
-
- // Indentation level of outputted XML
- int iIndentLevel;
-
- // Handle to file server
- RFs iRfs;
-
- // The name of XML file
- TFileName iXmlLogFileName;
-
- // The name of raw log file
- TFileName iRawLogFileName;
-
- // Flag to indicate that raw log should be done
- TBool iRawLog;
-
- // Flag to indicate that XML log should be done
- TBool iXmlLog;
-
- // Flag to indicate that logger is valid
- TBool iValid;
-
- // Flag to indicate that a line feed has been done
- TBool iLineFeedDone;
-
- // Flag to indicate that BeginTestCase() has been called
- // and EndTestCase() hasn't yet been called.
- TBool iInTestCase;
-
- // Flag to indicate that logger is closed
- TBool iClosed;
-
- // Flag to indicate if client should use
- // full set of logger methods:
- // BeginTestReportL()
- // BeginTestSetL();
- // BeginTestCaseL();
- // TestCasePassed(); // or other verdict method
- // EndTestCase();
- // EndTestSetL();
- // EndTestReportL();
- TBool iFullReportingMode;
-
- // Flag to indicate that XML log should be
- // written to the debug port also
- TBool iDoDebugOutput;
-
- // Flag to indicate that logger does intendation
- // to the XML file
- TBool iDoIndentation;
-
- public: // Friend classes
- // None
-
- protected: // Friend classes
- // None
-
- private: // Friend classes
- // None
-};
-
-#endif// End of File
-
-// End of File