diff -r 000000000000 -r 8e480a14352b messagingfw/msgtest/tools/utils/src/logtoscr.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/msgtest/tools/utils/src/logtoscr.cpp Mon Jan 18 20:36:02 2010 +0200 @@ -0,0 +1,188 @@ +// Copyright (c) 2000-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 utility converts any email logfiles ( imlog*.txt ) to script +// files ( imsk*.scr ). +// It strips out the comments, date stamps and '<<' '>>' markers. +// +// + +#include "emailtestutils.h" +#include "scripttestutils.h" +#include +#include +#include + +// local variables etc // + +_LIT(KImcmTest, "U_IMUT2 - Utility for stripping down logfiles for use as scripts"); +RTest test(KImcmTest); + +LOCAL_D CTrapCleanup* theCleanup; +LOCAL_D CImLog* log; +LOCAL_D CEmailTestUtils* testUtils; +LOCAL_D CActiveScheduler* scheduler; + + +// + +LOCAL_C void Init() + { + scheduler = new (ELeave) CActiveScheduler; + CActiveScheduler::Install(scheduler); + CleanupStack::PushL(scheduler); + + testUtils = CEmailTestUtils::NewLC(test); + testUtils->CreateAllTestDirectories(); + testUtils->FileSession().SetSessionPath(_L("C:\\")); + + log = CImLog::NewL(_L("c:\\logs\\email\\u_imut2.log"), EAppend); + CleanupStack::PushL(log); + log->AppendComment(_L8("*** U_IMUT2 Utility ***")); + TBuf8<80> buf; +#if defined(__WINS__) + buf.Append(_L8("WINS ")); +#else + buf.Append(_L8("MARM ")); +#endif +#if defined(_UNICODE) + buf.Append(_L8("U")); +#endif +#if defined(_DEBUG) + buf.Append(_L8("DEB")); +#else + buf.Append(_L8("REL")); +#endif + log->AppendComment(buf); + } + +LOCAL_C void Closedown() + { + log->AppendComment(_L8("********** U_IMUT2 Complete **********")); + log->AppendComment(_L8("")); + + CleanupStack::PopAndDestroy(3); //testUtils, log, scheduler + } + +// + +enum TImStripLogType + { + EImMakeInFile, + EImMakeOutFile, + EImEndMakeFile + }; + +LOCAL_C void CreateScriptFilesL() + { + RFs& fs = testUtils->FileSession(); + fs.SetSessionPath(_L("c:\\logs\\email\\")); + + CScriptTestUtils* scriptTestUtils = CScriptTestUtils::NewLC(*testUtils); + + CDir* logFiles; + TInt portStringCounter; + RFile logFile; + RFile scriptFile; + TBufC logFileName; + TBuf scriptFileName; + + // First create the script file, then create the output test file. + + TImStripLogType lineType = EImMakeInFile; + while ((lineType == EImMakeInFile) + || (lineType == EImMakeOutFile)) + { + + User::LeaveIfError(fs.GetDir(_L("imlog*.txt"), 0, ESortNone, logFiles)); + CleanupStack::PushL(logFiles); + + TInt logFileCounter = logFiles->Count(); + + while (logFileCounter > 0) + // Generate the script file from each log file + { + // Get the name of the log file. + logFileCounter--; + logFileName = ((*logFiles)[logFileCounter]).iName; + + // Get the name of the destination script file. + scriptFileName = _L("imsk"); + portStringCounter = 5; + + while (logFileName[portStringCounter] != L'.') + { + scriptFileName.Append(logFileName[portStringCounter]); + portStringCounter++; + } + + if (EImMakeInFile == lineType) + { + scriptFileName.Append(_L(".scr")); + } + else if (EImMakeOutFile == lineType) + { + scriptFileName.Append(_L(".out")); + } + + if (lineType == EImMakeInFile) + scriptTestUtils->LogToInputFileL(logFileName, scriptFileName, EFalse); + else + scriptTestUtils->LogToOutputFileL(logFileName, scriptFileName, ETrue); + + // Close the files + logFile.Close(); + scriptFile.Close(); + } + + CleanupStack::PopAndDestroy(); // logFiles + + // If we have just created the script file the create the output test file. + if (EImMakeInFile == lineType) + { + lineType = EImMakeOutFile; + } + else + { + lineType = EImEndMakeFile; + } + } + + CleanupStack::PopAndDestroy(); // scriptTestUtils + } + +// +LOCAL_C void doMainL() + { + Init(); + + CreateScriptFilesL(); + + Closedown(); + } + +GLDEF_C TInt E32Main() + { + __UHEAP_MARK; + test.Start(_L("U_IMUT2 Log -> Script Utility")); + theCleanup=CTrapCleanup::New(); + TRAPD(ret,doMainL()); + test(ret==KErrNone); + delete theCleanup; + test.End(); + test.Close(); + __UHEAP_MARKEND; + User::Heap().Check(); + return(KErrNone); + } +