diff -r e7a04a6385be -r aca9d8bb5fbc stifui/qt/src/stifexecutor.cpp --- a/stifui/qt/src/stifexecutor.cpp Thu Jun 24 14:55:55 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,407 +0,0 @@ -/* - * Copyright (c) 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: QT C++ and Symbian C++ combination Class. - * STIF UI interface and engine caller implementaion. - * - */ -#include -#include -#include -#include -#include -#include -#include "stiflogger.h" -#include -#include "stifexecutor.h" -#include "StifTFwIf.h" - -_LIT( KLogPath, "\\Logs\\STFUI\\" ); -// Log file -_LIT( KLogFile, "StifUi.log" ); - -CStifExecutor::CStifExecutor() : - listenerList(NULL) - { - iLog = CStifLogger::NewL( KLogPath, - KLogFile, - CStifLogger::ETxt, - CStifLogger::EFile, - ETrue, - ETrue, - ETrue, - EFalse, - ETrue, - EFalse, - 100 ); - - - iLog->Log(_L("started")); - TInt result; - TRAP(result, CUIStoreIf::ConstructL()); - iLog->Log(_L("CUIStoreIf ConstructL, result=%d"), result); - if (result != KErrNone) - { - return; - } - TRAP(result, iBuffer = HBufC::NewL(500)); - iLog->Log(_L("Create Case Execution output buffer, result=%d"), result); - - } - -CStifExecutor::~CStifExecutor() - { - UIStore().Close(); - delete iBuffer; - if (listenerList) - { - delete listenerList; - listenerList = NULL; - } - iLog->Log(_L("finished")); - } - -bool CStifExecutor::OpenIniFile(const QString& filename) - { - TInt result = UIStore().Open(QString2TPtrC(filename)); - iLog->Log(_L("Open ini file %s.result=%d"),QString2TPtrC(filename).Ptr(),result); - return (result == KErrNone); - } - -TPtrC CStifExecutor::QString2TPtrC(const QString& aString) - { - TPtrC ret(reinterpret_cast (aString.constData()), - aString.length()); - return ret; - } -QString CStifExecutor::TDesC2QString(const TDesC& des) - { - //#ifdef QT_NO_UNICODE - //return QString::fromLocal8Bit((char*)des.Ptr(), des.Length()); - //#else - QString rst = QString::fromUtf16(des.Ptr(), des.Length()); - return rst; - //#endif - } - -bool CStifExecutor::LogResult(const TInt result,const QString str) - { - QString tmp = str + " result=%d"; - iLog->Log(QString2TPtrC(tmp), result); - bool rst = true; - if(result != KErrNone) - { - rst = false; - } - return rst; - } - -void CStifExecutor::AddStifCaseUpdateListener( - IStifCaseUpdateListener* listener) - { - iLog->Log(_L("AddStifCaseUpdateListener")); - if (!listenerList) - { - listenerList = new QList (); - } - if (!listenerList->contains(listener)) - { - listenerList->append(listener); - } - } - -void CStifExecutor::RemoveStifCaseUpdateListener( - IStifCaseUpdateListener* listener) - { - iLog->Log(_L("RemoveStifCaseUpdateListener")); - if (!listenerList) - { - return; - } - - if (listenerList->contains(listener)) - { - listenerList->removeOne(listener); - } - - } - -QList CStifExecutor::GetModuleList() - { - QList list; - RRefArray modules; - iLog->Log(_L("GetModuleList")); - TInt ret = UIStore().Modules(modules); - iLog->Log(_L("LoadAllModules %d"), ret); - iLog->Log(_L("Modules number=%d"), modules.Count()); - for (TInt i = 0; i < modules.Count(); i++) - { - iLog->Log(_L("Get Module Names %d"), i); - iLog->Log(_L("Get Module Name = %d .=%s"),i,modules[i].Ptr()); - - CSTFModule module; - module.SetName(QString::fromUtf16(modules[i].Ptr(), - modules[i].Length())); - //module.SetName(TDesC2QString(modules[i])); - list.append(module); - } - modules.Reset(); - modules.Close(); - return list; - } - -QList CStifExecutor::GetCaseList(const QString& moduleName) - { - TPtrC name = QString2TPtrC(moduleName); - QList list; - RRefArray testCases; - TInt ret = UIStore().TestCases(testCases, name, KNullDesC); - iLog->Log(_L("Get TestCases: %d"), ret); - for (TInt i = 0; i < testCases.Count(); i++) - { - iLog->Log(_L("Case Number: %d"),testCases[i].TestCaseNum()); - iLog->Log(_L("Case Name: %s"),testCases[i].TestCaseTitle().Ptr()); - CSTFCase testcase; - testcase.SetName(TDesC2QString(testCases[i].TestCaseTitle())); - testcase.SetIndex(i); - list.append(testcase); - } - testCases.Reset(); - testCases.Close(); - return list; - } - -void CStifExecutor::ExecuteSingleCase(const QString& moduleName, const int caseIndex) - { - iLog->Log(_L("ExecuteCase start")); - TPtrC name = QString2TPtrC(moduleName); - RRefArray testCases; - TInt ret = UIStore().TestCases(testCases, name, KNullDesC); - iLog->Log(_L("Get TestCases return code=%d"), ret); - if (testCases.Count() > caseIndex) - { - TInt index; - UIStore().StartTestCase(testCases[caseIndex], index); - iLog->Log(_L("start test case index=%d"), index); - } - testCases.Reset(); - testCases.Close(); - iLog->Log(_L("ExecuteCase end")); - - } - -QList CStifExecutor::GetSetList() - { - QList list; - RRefArray aArray; - TInt ret = UIStore().GetTestSetsList(aArray); - iLog->Log(_L("Get TestSet list return code=%d"), ret); - if (ret != KErrNone) //setInfos.Count() != 1 - { - return list; - } - for (int i = 0; i < aArray.Count(); i++) - { - list.append(TDesC2QString(aArray[i])); - } - aArray.Reset(); - aArray.Close(); - return list; - } - -QList CStifExecutor::GetCaseListFromSet(const QString& setName) - { - iLog->Log(_L("GetCaseListFromSet start.")); - QList list; - TPtrC name = QString2TPtrC(setName); - - //iLog->Log(name); - if (name.Length() == 0) - { - return list; - } - - iLog->Log(_L("name.Length()=%d"), name.Length()); - TInt ret = UIStore().LoadTestSet(name); - iLog->Log(_L("Load Test Set return=%d"),ret); - const CTestSetInfo* set = NULL; - TRAP(ret , set = &UIStore().TestSetL(name)); - iLog->Log(_L("GetCaseListFromSet TestSetL.")); - if(ret != KErrNone) - { - return list; - } - const RRefArray& testCases = set->TestCases(); - iLog->Log(_L("GetCaseListFromSet TestCases.")); - TInt count = testCases.Count(); - for (TInt i = 0; i < count; i++) - { - CSTFCase testcase; - testcase.SetName(TDesC2QString(testCases[i].TestCaseTitle())); - testcase.SetIndex(testCases[i].TestCaseNum()); - testcase.SetModuleName(TDesC2QString(testCases[i].ModuleName())); - list.append(testcase); - } - iLog->Log(_L("GetCaseListFromSet end.")); - return list; - } - -bool CStifExecutor::CreateSet(const QString& setName) - { - TPtrC name = QString2TPtrC(setName); - TInt ret = UIStore().CreateTestSet(name); - return LogResult(ret, "CreateSet"); - } - -bool CStifExecutor::SaveSet(QString& setName) - { - TPtrC name = QString2TPtrC(setName); - TFileName testSetName; - testSetName.Copy(name); - TInt ret = UIStore().SaveTestSet(testSetName); - setName = TDesC2QString(testSetName); - return LogResult(ret, "SaveSet"); - } - -bool CStifExecutor::RemoveSet(const QString& setName) - { - //This method wil not work at this stage. - TPtrC name = QString2TPtrC(setName); - TInt ret = UIStore().RemoveTestSet(name); - return LogResult(ret, "RemoveSet"); - } - -bool CStifExecutor::AddtoSet(const QString& setName, CSTFCase& caseInfo) - { - iLog->Log(_L("AddToSet Start")); - - //IMPORT_C TInt AddToTestSet( const TDesC& aSetName, const CTestInfo& aTestInfo ); - TPtrC modulename = QString2TPtrC(caseInfo.ModuleName()); - iLog->Log(_L("AddToSet dealwith module: %s"), modulename.Ptr()); - iLog->Log(_L("Case name: %s"),QString2TPtrC(caseInfo.Name()).Ptr()); - iLog->Log(_L("Case index: %d"),caseInfo.Index()); - TInt caseIndex = caseInfo.Index(); - if(caseInfo.ModuleName().toLower() == "testscripter" - ||caseInfo.ModuleName().toLower() == "teftestmodule") - { - caseIndex++; - } - RRefArray testCases; - TInt ret = UIStore().TestCases(testCases, modulename, KNullDesC); - if(!LogResult(ret, "AddToSet, GetTestCases")) - { - return false; - } - - ret = -1; - for (TInt i = 0; i < testCases.Count(); i++) - { - iLog->Log(_L("Case Number: %d"),testCases[i].TestCaseNum()); - iLog->Log(_L("Case Title: %s"),testCases[i].TestCaseTitle().Ptr()); - - if (testCases[i].TestCaseNum() == caseIndex) - { - ret = UIStore().AddToTestSet(QString2TPtrC(setName), testCases[i]); - iLog->Log(_L("AddToTestSet: %d"), ret); - break; - } - } - testCases.Reset(); - testCases.Close(); - return LogResult(ret, "AddToSet"); - } - -void CStifExecutor::ExecuteSet(const QString& SetName, const int startIndex, - const TSTFCaseRunningType type) - { - CStartedTestSet::TSetType setType = CStartedTestSet::ESetSequential; - if (type == Parallel) - { - setType = CStartedTestSet::ESetParallel; - } - const CTestSetInfo* set = NULL; - TInt ret; - TBuf<30> test; - test.Append(QString2TPtrC(SetName)); - iLog->Log(_L("StartTestSet GetSetName:")); - iLog->Log(test); - TRAP(ret, set = &UIStore().TestSetL(test)); - - //const CTestSetInfo& set = UIStore().TestSetL(QString2TPtrC(SetName)); - if(ret != KErrNone) - { - iLog->Log(_L("StartTestSet GetTestSet Error return=%d"),ret); - return; - } - int a = startIndex; - ret = UIStore().StartTestSet(*set, a, setType); - iLog->Log(_L("StartTestSet return=%d"),ret); - } - -void CStifExecutor::Update(CStartedTestCase* aCase, int flags) - { - iLog->Log(_L("CStifExecutor::Update return case=%d"),aCase); - iLog->Log(_L("CStifExecutor::Update return status=%d"),flags); - - if(aCase == NULL) - { - return; - } - - if (flags & CUIStoreIf::EPrintUpdate) - { - //Cases output information update. - const RPointerArray printArray = aCase->PrintArray(); - TInt rows = aCase->PrintArray().Count(); - TPtr buffer(iBuffer->Des()); - buffer.Zero(); - for (int i = 0; i < rows; i++) - { - buffer.Append(_L("\r\n")); - buffer.Append(printArray[i]->iDescription); - buffer.Append(_L(" ")); - buffer.Append(printArray[i]->iText); - buffer.Append(_L("\r\n")); - } - QString msg = TDesC2QString(buffer); - iLog->Log(_L("Get output msg:")); - iLog->Log(buffer); - if (listenerList) - { - for (int i = 0; i < listenerList->size(); i++) - { - listenerList->at(i)->OnGetCaseOutput(aCase, msg); - } - } - - } - else - { - //case status changed update. - CSTFCase testcase; - testcase.SetName(TDesC2QString(aCase->TestInfo().TestCaseTitle())); - testcase.SetIndex(aCase->TestInfo().TestCaseNum()); - testcase.SetModuleName(TDesC2QString(aCase->TestInfo().ModuleName())); - if (listenerList) - { - for (int i = 0; i < listenerList->size(); i++) - { - listenerList->at(i)->OnGetCaseUpdated(aCase, testcase, flags); - } - } - - } - - } - -// End of File