--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/msgtest/tools/utils/src/logtoscr.cpp Wed Nov 03 22:41:46 2010 +0530
@@ -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 <miutlog.h>
+#include <miutmsg.h>
+#include <txtrich.h>
+
+// 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<KMaxFileName> logFileName;
+ TBuf<KMaxFileName> 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);
+ }
+