sl@0: /* sl@0: * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of the License "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * Mostly obsolete code to manage hash tests sl@0: * sl@0: */ sl@0: sl@0: sl@0: /** sl@0: @file sl@0: */ sl@0: sl@0: #include "hashtestutils.h" sl@0: sl@0: sl@0: CTestData* CTestData::NewL(const TDesC& aFilename) sl@0: sl@0: { sl@0: CTestData* self; sl@0: self=new (ELeave) CTestData; sl@0: CleanupStack::PushL(self); sl@0: self->ConstructL(aFilename); sl@0: CleanupStack::Pop(); // self sl@0: return self; sl@0: } sl@0: sl@0: CTestData::CTestData(void):CBase() sl@0: sl@0: { sl@0: } sl@0: sl@0: CTestData::~CTestData(void) sl@0: sl@0: { sl@0: delete iFile; sl@0: delete iLine; sl@0: } sl@0: sl@0: void CTestData::ConstructL(const TDesC& aFilename) sl@0: sl@0: { sl@0: RFs fs; sl@0: RFile file; sl@0: CleanupClosePushL(fs); sl@0: User::LeaveIfError(fs.Connect()); sl@0: TDriveUnit sysDrive(fs.GetSystemDrive()); sl@0: TBuf<24> filePath (sysDrive.Name()); sl@0: filePath.Append(_L("\\thash\\")); sl@0: User::LeaveIfError(fs.SetSessionPath(filePath)); sl@0: CleanupClosePushL(file); sl@0: User::LeaveIfError(file.Open(fs,aFilename,EFileShareAny|EFileRead)); sl@0: // read into iFile sl@0: TInt size=0; sl@0: file.Size(size); sl@0: iFile=HBufC8::NewMaxL(size); sl@0: TPtr8 ptr=iFile->Des(); sl@0: User::LeaveIfError(file.Read(ptr)); sl@0: CleanupStack::PopAndDestroy(2, &fs); sl@0: iCurrentPlace=0; sl@0: iLine=HBufC8::NewMaxL(2000); sl@0: } sl@0: sl@0: CTestData::TType CTestData::Type(void) sl@0: sl@0: { sl@0: TPtr8 ptr=iLine->Des(); sl@0: if (iCurrentPlace>=iFile->Length()) sl@0: { sl@0: return EFinished; sl@0: } sl@0: TInt8 ch=(*iFile)[iCurrentPlace++]; sl@0: ptr.SetLength(0); sl@0: while ((ch!='\r')&&(ch!='\n')&&(iCurrentPlace<=iFile->Length())) sl@0: { sl@0: ptr.Append(ch); sl@0: ch=(*iFile)[iCurrentPlace++]; sl@0: } sl@0: if ((iCurrentPlace==iFile->Length())||(iLine->Length()==0)) sl@0: { sl@0: return EFinished; sl@0: } sl@0: if (((*iFile)[iCurrentPlace]=='\r')||((*iFile)[iCurrentPlace]=='\n')) sl@0: { sl@0: iCurrentPlace++; sl@0: } sl@0: if ((*iLine)[0]=='+') sl@0: { sl@0: switch ((*iLine)[1]) sl@0: { sl@0: case 'M': // Message sl@0: return EMessage; sl@0: case 'F': // File Name sl@0: return EFileName; sl@0: case 'C': // Comment sl@0: return Type(); sl@0: default: sl@0: return EError; sl@0: } sl@0: } sl@0: return EData; sl@0: } sl@0: sl@0: HBufC8* CTestData::operator [] (TInt aIndex) sl@0: sl@0: { sl@0: TInt i; sl@0: TInt count=0; sl@0: HBufC8* ret; sl@0: ret=HBufC8::New(4000); sl@0: for (i=0;(iLength())&&(countDes(); sl@0: for (;(iLength()&&(*iLine)[i]!=' ');i++) sl@0: { sl@0: ptr.Append((*iLine)[i]); sl@0: } sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: HBufC* CTestData::Message(void) sl@0: sl@0: { sl@0: HBufC* ret=HBufC::NewMax(iLine->Length()-3); sl@0: TPtrC8 ptr=iLine->Right(iLine->Length()-3); sl@0: if(ret != NULL) sl@0: { sl@0: TPtr dest=ret->Des(); sl@0: dest.Copy(ptr); sl@0: } sl@0: return ret; sl@0: } sl@0: sl@0: sl@0: CTestConsole* CTestConsole::NewL(CConsoleBase* aCon) sl@0: { sl@0: CTestConsole* self; sl@0: self=new (ELeave) CTestConsole; sl@0: self->iCon=aCon; sl@0: self->iFile=NULL; sl@0: return self; sl@0: } sl@0: sl@0: CTestConsole::CTestConsole(void):CConsoleBase() sl@0: sl@0: { sl@0: } sl@0: sl@0: CTestConsole::~CTestConsole(void) sl@0: sl@0: { sl@0: delete iCon; sl@0: if (iFile) sl@0: { sl@0: iFile->Close(); sl@0: } sl@0: } sl@0: sl@0: void CTestConsole::Write(const TDesC16& aString) sl@0: sl@0: { sl@0: iCon->Write(aString); sl@0: if (iFile) sl@0: { sl@0: TUint8 space[200]; sl@0: TPtr8 ptr(space,200); sl@0: ptr.Copy(aString); sl@0: iFile->Write(ptr); sl@0: } sl@0: } sl@0: sl@0: void CTestConsole::SetLogFile(RFile* aFile) sl@0: sl@0: { sl@0: iFile=aFile; sl@0: }