--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/loggingservices/eventlogger/test/src/t_logapi_helper.cpp Fri Jan 22 11:06:30 2010 +0200
@@ -0,0 +1,145 @@
+// Copyright (c) 2008-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:
+//
+
+
+#include <f32file.h>
+#include <e32std.h>
+#include <e32test.h>
+#include <s32file.h>
+#include <numberconversion.h>
+
+
+RTest TheTest(_L("t_logapi_helper"));
+
+_LIT(KSeparator, ";"); // Invalid filepath char used to separate filenames
+
+//////////////////////////////////////////////////////////////////////////////////////////
+//Tests macros and functions.
+//If (!aValue) then the test will be panicked, the test data files will be deleted.
+static void Check(TInt aValue, TInt aLine)
+ {
+ if(!aValue)
+ {
+ TheTest.Printf(_L("*** Boolean expression evaluated to false\r\n"));
+ TheTest(EFalse, aLine);
+ }
+ }
+//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted.
+static void Check(TInt aValue, TInt aExpected, TInt aLine)
+ {
+ if(aValue != aExpected)
+ {
+ TheTest.Printf(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue);
+ TheTest(EFalse, aLine);
+ }
+ }
+//Use these to test conditions.
+#define TEST(arg) Check((arg), __LINE__)
+#define TEST2(aValue, aExpected) Check(aValue, aExpected, __LINE__)
+
+/*
+This method helps to do operations on files and folders, like copy, delete, rename, create directory (MkDir)
+This process has a capabilities to write in all files of the system.
+-param: anOld: source file
+-param: aNew : destination file
+-param: aCode: The operation to do.
+*/
+void OperationOnFilesAndFolders(const TDesC& anOld, const TDesC& aNew, TInt aCode)
+ {
+ RFs fs;
+ TInt err = fs.Connect();
+ TEST2(err, KErrNone);
+
+ CFileMan* fileMan = NULL;
+ TRAP(err, fileMan = CFileMan::NewL(fs));
+ TEST2(err, KErrNone);
+
+ switch(aCode)
+ {
+ case 0:
+ TheTest.Printf(_L("Copying source file: %S %S\r\n"), &anOld, &aNew);
+ err = fileMan->Copy(anOld, aNew);
+ TEST2(err, KErrNone);
+ break;
+
+ case 1:
+ TheTest.Printf(_L("Renaming file: %S %S\r\n"), &anOld, &aNew);
+ err = fileMan->Rename(anOld, aNew);
+ TEST2(err, KErrNone);
+ break;
+
+ case 2:
+ TheTest.Printf(_L("Deleting file: %S\r\n"), &anOld);
+ err = fileMan->Attribs(anOld, 0, KEntryAttReadOnly, 0, CFileMan::EOverWrite);
+ if(err == KErrNone)
+ {
+ err = fileMan->Delete(anOld);
+ }
+ TEST(err == KErrNone || err == KErrNotFound);
+ break;
+ case 3:
+ TheTest.Printf(_L("Creating folder: %S\r\n"), &anOld);
+ err = fs.MkDir(anOld);
+ TEST(err == KErrNone || err == KErrAlreadyExists);
+ break;
+ default:
+ break;
+ }
+ delete fileMan;
+ fs.Close();
+ }
+
+TInt E32Main()
+ {
+ CTrapCleanup* tc = CTrapCleanup::New();
+ TheTest(tc != NULL);
+
+ __UHEAP_MARK;
+
+ TheTest.Start(_L("Start: t_logapi_helper process started... "));
+ TheTest.Title();
+
+ TBuf<100> args;
+ User::CommandLine(args);
+ TInt cmdLength = User::CommandLineLength();
+
+ TInt pos = args.Find(KSeparator);
+ TBuf<50> oldName(args.Mid(0,pos));
+ TInt oldNameLength = oldName.Length();
+ TInt remainderLength = cmdLength - oldNameLength;
+
+ TBuf<50> remainder(args.Mid(pos+1, remainderLength-1));
+ pos = remainder.Find(KSeparator);
+
+ TDigitType digitType;
+ TInt length;
+ TBuf<50> newName(remainder.Mid(0, pos));
+ TBuf<1> code = remainder.Mid(pos+1, 1);
+ TInt numberLength = code.Length();
+
+ TInt operationMode = NumberConversion::ConvertFirstNumber(code, length, digitType);
+
+ OperationOnFilesAndFolders(oldName, newName, operationMode);
+
+ TheTest.End();
+ TheTest.Close();
+
+ __UHEAP_MARKEND;
+
+ delete tc;
+
+ return 0;
+ }
+