diff -r 000000000000 -r 08ec8eefde2f loggingservices/eventlogger/test/src/t_logapi_helper.cpp --- /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 +#include +#include +#include +#include + + +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; + } +