stif/TestEngine/src/TestModuleInfo.cpp
branchRCL_3
changeset 19 07b41fa8d1dd
parent 18 3406c99bc375
child 20 ca8a1b6995f6
--- a/stif/TestEngine/src/TestModuleInfo.cpp	Thu Jul 15 20:25:38 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1001 +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: This module contains implementation of 
-* CTestModuleList class and CTestModuleInfo class member functions.
-*
-*/
-
-// INCLUDE FILES
-#include "TestModuleInfo.h"
-#include <e32svr.h>
-#include "Logging.h"
-
-// EXTERNAL DATA STRUCTURES
-// None
-
-// EXTERNAL FUNCTION PROTOTYPES
-// None
-
-// CONSTANTS
-// None
-
-// MACROS
-// None
-
-// LOCAL CONSTANTS AND MACROS
-// None
-
-// MODULE DATA STRUCTURES
-// None
-
-// LOCAL FUNCTION PROTOTYPES
-// None
-
-// FORWARD DECLARATIONS
-// None
-
-// ==================== LOCAL FUNCTIONS =======================================
-// None
-
-#define LOGGER iLogger
-
-// ================= MEMBER FUNCTIONS =========================================
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleInfo
-
-    Method: CTestModuleInfo
-
-    Description: Default constructor
-
-    C++ default constructor can NOT contain any code, that
-    might leave.
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-CTestModuleInfo::CTestModuleInfo()
-    {
-	iLogger = NULL;
-    iModuleName = NULL;
-    iIniFileName = NULL;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleInfo
-
-    Method: ConstructL
-
-    Description: Symbian OS second phase constructor
-
-    Symbian OS default constructor can leave.
-
-    Parameters: aModuleName: module name
-                aLogger: pointer to stif logger
-
-    Return Values: None
-
-    Errors/Exceptions:
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-void CTestModuleInfo::ConstructL(TDesC& aModuleName, CStifLogger* aLogger)
-    {
-	iLogger = aLogger;
-
-	if(iModuleName)
-	    {
-        delete iModuleName;
-		iModuleName = NULL;
-        }
-    iModuleName = aModuleName.AllocL();
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleInfo
-
-    Method: NewL
-
-    Description: Two-phased constructor.
-
-    Parameters: aModuleName: module name
-                aLogger: pointer to stif logger
-
-    Return Values: CTestModuleInfo* : pointer to created object
-
-    Errors/Exceptions: Leaves if memory allocation for object fails
-                       Leaves if ConstructL leaves
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-CTestModuleInfo* CTestModuleInfo::NewL(TDesC& aModuleName, CStifLogger* aLogger)
-    {
-    CTestModuleInfo* self = new (ELeave) CTestModuleInfo();
-    CleanupStack::PushL(self);
-    self->ConstructL(aModuleName, aLogger);
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleInfo
-
-    Method: ~CTestModuleInfo
-
-    Description: Destructor.
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-CTestModuleInfo::~CTestModuleInfo()
-    {
-    delete iModuleName;
-    delete iIniFileName;
-
-    iCfgFiles.ResetAndDestroy();
-    iCfgFiles.Close();
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleInfo
-
-    Method: SetIniFile
-
-    Description: Set ini file
-
-    Parameters: aIniFileName: initialization file name
-
-    Return Values: KErrNone if everything went ok
-                   KErrAlreadyExists if ini file was already set
-                   Symbian error code otherwise
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CTestModuleInfo::SetIniFile(TDesC& aIniFileName)
-    {
-	if(iIniFileName)
-	    {
-        return KErrAlreadyExists;
-        }
-
-    TRAPD(err, iIniFileName = aIniFileName.AllocL());
-    if(err != KErrNone)
-        {
-        if(iLogger)
-            {
-            __TRACE(KError, (_L("Could not create descriptor (CTestModuleInfo::SetIniFile) for string '%S'. Error %d."), &aIniFileName, err));
-            }
-        else
-            {
-            RDebug::Print(_L("Could not create descriptor (CTestModuleInfo::SetIniFile) for string '%S'. Error %d."), &aIniFileName, err);
-            }
-        return err;
-        }
-
-    return KErrNone;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleInfo
-
-    Method: AddCfgFile
-
-    Description: Add config file if it is not yet added to the array
-
-    Parameters: aCfgFileName: file name
-
-    Return Values: KErrNone if everything went ok
-                   KErrAlreadyExists if config file is already present
-                   Symbian error code otherwise
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CTestModuleInfo::AddCfgFile(TDesC& aCfgFileName)
-    {
-    //Check if given file name does not exist already
-    TInt cnt = iCfgFiles.Count();
-    TInt i;
-    TFileName cfgFileName;
-
-    //Check if given module is already on the list
-    for(i = 0; i < cnt; i++)
-        {
-        iCfgFiles[i]->GetCfgFileName(cfgFileName);
-        if(cfgFileName == aCfgFileName)
-            {
-            return KErrAlreadyExists;
-			}
-        }
-
-    //Add to array
-    TInt err = KErrNone;
-    CTestCaseFileInfo* tmp = NULL;
-    TRAP(err, tmp = CTestCaseFileInfo::NewL(aCfgFileName, iLogger));
-    if(err != KErrNone)
-        {
-        if(iLogger)
-            {
-            __TRACE(KError, (_L("Could not create CTestCaseFileInfo object (CTestModuleInfo::AddCfgFile). Error %d."), err));
-            }
-        else
-            {
-            RDebug::Print(_L("Could not create CTestCaseFileInfo object (CTestModuleInfo::AddCfgFile). Error %d."), err);
-            }
-		return err;
-        }
-    if(!tmp)
-        {
-        if(iLogger)
-            {
-            __TRACE(KError, (_L("Could not create CTestCaseFileInfo object (CTestModuleInfo::AddCfgFile)")));
-            }
-        else
-            {
-            RDebug::Print(_L("Could not create CTestCaseFileInfo object (CTestModuleInfo::AddCfgFile)"));
-            }
-		return KErrGeneral;
-        }
-
-    err = iCfgFiles.Append(tmp);
-    if(err != KErrNone)
-        {
-        if(iLogger)
-            {
-            __TRACE(KError, (_L("Could not append CTestCaseFileInfo object to array (CTestModuleInfo::AddCfgFile). Error %d."), err));
-            }
-        else
-            {
-            RDebug::Print(_L("Could not append CTestCaseFileInfo object to array (CTestModuleInfo::AddCfgFile). Error %d."), err);
-            }
-        delete tmp;
-        return err;
-        }
-
-    return KErrNone;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleInfo
-
-    Method: CountCfgFiles
-
-    Description: Return number of config files
-
-    Parameters: None
-
-    Return Values: number of config files
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CTestModuleInfo::CountCfgFiles(void)
-    {
-    return iCfgFiles.Count();
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleInfo
-
-    Method: GetModuleName
-
-    Description: Get module name
-
-    Parameters: None
-
-    Return Values:
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CTestModuleInfo::GetModuleName(TDes& aModuleName)
-    {
-    aModuleName.Zero();
-    if(iModuleName)
-        {
-        aModuleName.Copy(*iModuleName);
-        }
-    return KErrNone;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleInfo
-
-    Method: GetIniFileName
-
-    Description: Get module ini file name
-
-    Parameters: None
-
-    Return Values:
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CTestModuleInfo::GetIniFileName(TDes& aIniFileName)
-    {
-    aIniFileName.Zero();
-    if(iIniFileName)
-        {
-        aIniFileName.Copy(*iIniFileName);
-        }
-    return KErrNone;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleInfo
-
-    Method: GetCfgFileName
-
-    Description: Get config file name
-
-    Parameters: aIndex: index of config file
-
-    Return Values: TDesC&: config file name
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CTestModuleInfo::GetCfgFileName(TInt aIndex, TDes& aCfgFileName)
-    {
-    aCfgFileName.Zero();
-    TInt cnt = iCfgFiles.Count();
-
-    //Check index
-    if(aIndex >= cnt || aIndex < 0)
-        {
-        if(iLogger)
-            {
-            __TRACE(KError, (_L("Given index reaches out of array (CTestModuleInfo::GetCfgFileName). Given index: %d. Max allowed index: %d"), aIndex, cnt - 1));
-            }
-        else
-            {
-            RDebug::Print(_L("Given index reaches out of array (CTestModuleInfo::GetCfgFileName). Given index: %d. Max allowed index: %d"), aIndex, cnt - 1);
-            }
-        return KErrArgument;
-        }
-
-    TInt ret = iCfgFiles[aIndex]->GetCfgFileName(aCfgFileName);
-    return ret;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleInfo
-
-    Method: GetUncheckedCfgFile
-
-    Description: Get first unchecked test case file
-
-    Parameters: None
-
-    Return Values: Pointer to CTestCaseFileInfo object if found
-                   Null otherwise
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-CTestCaseFileInfo* CTestModuleInfo::GetUncheckedCfgFile(void)
-    {
-    TInt cnt = iCfgFiles.Count();
-    TInt i;
-
-    for(i = 0; i < cnt; i++)
-        {
-        if(!iCfgFiles[i]->IsChecked())
-            {
-            return iCfgFiles[i];
-            }
-        }
-
-    return NULL;
-    }
-
-// ================= MEMBER FUNCTIONS =========================================
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleList
-
-    Method: CTestModuleList
-
-    Description: Default constructor
-
-    C++ default constructor can NOT contain any code, that
-    might leave.
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-CTestModuleList::CTestModuleList()
-    {
-	iLogger = NULL;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleList
-
-    Method: ConstructL
-
-    Description: Symbian OS second phase constructor
-
-    Symbian OS default constructor can leave.
-
-    Parameters: aLogger: pointer to stif logger
-
-    Return Values: None
-
-    Errors/Exceptions:
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-void CTestModuleList::ConstructL(CStifLogger* aLogger)
-    {
-	iLogger = aLogger;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleList
-
-    Method: NewL
-
-    Description: Two-phased constructor.
-
-    Parameters: aLogger: pointer to stif logger
-
-    Return Values: CTestModuleList* : pointer to created object
-
-    Errors/Exceptions: Leaves if memory allocation for object fails
-                       Leaves if ConstructL leaves
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C CTestModuleList* CTestModuleList::NewL(CStifLogger* aLogger)
-    {
-    CTestModuleList* self = new (ELeave) CTestModuleList();
-    CleanupStack::PushL(self);
-    self->ConstructL(aLogger);
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleList
-
-    Method: ~CTestModuleList
-
-    Description: Destructor.
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C CTestModuleList::~CTestModuleList()
-    {
-    iTestModules.ResetAndDestroy();
-    iTestModules.Close();
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleList
-
-    Method: AddTestModule
-
-    Description: Adds new test module to list if specified module is not already added.
-
-    Parameters: aModuleName: module name
-
-    Return Values: KErrNone if opereation succeeded
-                   KErrAlreadyExists if module is already present on the list
-                   Symbian error code otherwise
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CTestModuleList::AddTestModule(TDesC& aModuleName)
-    {
-    //Check if given module is already on the list
-    CTestModuleInfo* tmp = GetModule(aModuleName);
-    if(tmp)
-        {
-        return KErrAlreadyExists;
-        }
-
-    //There is no module on the list, so create new info object
-    TInt err = KErrNone;
-    TRAP(err, tmp = CTestModuleInfo::NewL(aModuleName, iLogger));
-    if(err != KErrNone)
-        {
-        if(iLogger)
-            {
-            __TRACE(KError, (_L("Could not create CTestModuleInfo object (CTestModuleList::AddTestModule). Error %d."), err));
-            }
-        else
-            {
-            RDebug::Print(_L("Could not create CTestModuleInfo object (CTestModuleList::AddTestModule). Error %d."), err);
-            }
-		return err;
-        }
-    if(!tmp)
-        {
-        if(iLogger)
-            {
-            __TRACE(KError, (_L("Could not create CTestModuleInfo object (CTestModuleList::AddTestModule)")));
-            }
-        else
-            {
-            RDebug::Print(_L("Could not create CTestModuleInfo object (CTestModuleList::AddTestModule)"));
-            }
-		return KErrGeneral;
-        }
-
-    //Add to list
-    err = iTestModules.Append(tmp);
-    if(err != KErrNone)
-        {
-        if(iLogger)
-            {
-            __TRACE(KError, (_L("Could not append CTestModuleInfo object to array (CTestModuleList::AddTestModule). Error %d."), err));
-            }
-        else
-            {
-            RDebug::Print(_L("Could not append CTestModuleInfo object to array (CTestModuleList::AddTestModule). Error %d."), err);
-            }
-        delete tmp;
-        return err;
-        }
-
-    return KErrNone;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleList
-
-    Method: Count
-
-    Description: Counts test modules
-
-    Parameters: None
-
-    Return Values: Number of test modules on list
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CTestModuleList::Count()
-    {
-	return iTestModules.Count();
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleList
-
-    Method: GetModule
-
-    Description: Searches test module with given name
-
-    Parameters: aModuleName: module name
-
-    Return Values: Pointer to found object or NULL when not found
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C CTestModuleInfo* CTestModuleList::GetModule(TDesC& aModuleName)
-    {
-    TInt cnt = iTestModules.Count();
-    TInt i;
-    CTestModuleInfo* tmp;
-    TName moduleName;
-
-    //Check if given module is already on the list
-    for(i = 0; i < cnt; i++)
-        {
-        tmp = iTestModules[i];
-        tmp->GetModuleName(moduleName);
-        if(moduleName == aModuleName)
-            {
-            return tmp;
-			}
-        }
-    return NULL;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleList
-
-    Method: GetModule
-
-    Description: Searches test module with given index
-
-    Parameters: aIndex: module index
-
-    Return Values: Pointer to found object or NULL when not found
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C CTestModuleInfo* CTestModuleList::GetModule(TInt aIndex)
-    {
-    TInt cnt = iTestModules.Count();
-
-    //Check index
-    if(aIndex >= cnt || aIndex < 0)
-        {
-        if(iLogger)
-            {
-            __TRACE(KError, (_L("Given index reaches out of array (CTestModuleList::GetModule). Given index: %d. Max allowed index: %d"), aIndex, cnt - 1));
-            }
-        else
-            {
-            RDebug::Print(_L("Given index reaches out of array (CTestModuleList::GetModule). Given index: %d. Max allowed index: %d"), aIndex, cnt - 1);
-            }
-        return NULL;
-        }
-
-    //return module
-    return iTestModules[aIndex];
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestModuleList
-
-    Method: GetUncheckedCfgFile
-
-    Description: Get first unchecked test case file (module: testscripter and testcombiner)
-
-    Parameters: None
-
-    Return Values: Pointer to CTestCaseFileInfo object if found
-                   Null otherwise
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C CTestCaseFileInfo* CTestModuleList::GetUncheckedCfgFile(void)
-    {
-    CTestCaseFileInfo* ret = NULL;
-
-    TBuf<12> modname(_L("testscripter"));
-    CTestModuleInfo* mod = GetModule(modname);
-
-    if(mod)
-        {
-        ret = mod->GetUncheckedCfgFile();
-        }
-
-    if(!ret)
-	    {
-        modname.Copy(_L("testcombiner"));
-        mod = GetModule(modname);
-        if(mod)
-            {
-            ret = mod->GetUncheckedCfgFile();
-            }
-        }
-
-    return ret;
-    }
-
-// ================= MEMBER FUNCTIONS =========================================
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestCaseFileInfo
-
-    Method: CTestCaseFileInfo
-
-    Description: Default constructor
-
-    C++ default constructor can NOT contain any code, that
-    might leave.
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-CTestCaseFileInfo::CTestCaseFileInfo()
-    {
-	iLogger = NULL;
-    iCfgFileName = NULL;
-    iChecked = EFalse;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestCaseFileInfo
-
-    Method: ConstructL
-
-    Description: Symbian OS second phase constructor
-
-    Symbian OS default constructor can leave.
-
-    Parameters: aCfgFileName: config file name
-                aLogger: pointer to Stif logger
-
-    Return Values: None
-
-    Errors/Exceptions:
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-void CTestCaseFileInfo::ConstructL(TDesC& aCfgFileName, CStifLogger* aLogger)
-    {
-	iLogger = aLogger;
-
-	if(iCfgFileName)
-	    {
-        delete iCfgFileName;
-		iCfgFileName = NULL;
-        }
-    iCfgFileName = aCfgFileName.AllocL();
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestCaseFileInfo
-
-    Method: NewL
-
-    Description: Two-phased constructor.
-
-    Parameters: aCfgFileName: config file name
-                aLogger: pointer to stif logger
-
-    Return Values: CTestCaseFileInfo* : pointer to created object
-
-    Errors/Exceptions: Leaves if memory allocation for object fails
-                       Leaves if ConstructL leaves
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-CTestCaseFileInfo* CTestCaseFileInfo::NewL(TDesC& aCfgFileName, CStifLogger* aLogger)
-    {
-    CTestCaseFileInfo* self = new (ELeave) CTestCaseFileInfo();
-    CleanupStack::PushL(self);
-    self->ConstructL(aCfgFileName, aLogger);
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestCaseFileInfo
-
-    Method: ~CTestCaseFileInfo
-
-    Description: Destructor.
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-CTestCaseFileInfo::~CTestCaseFileInfo()
-    {
-    delete iCfgFileName;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestCaseFileInfo
-
-    Method: GetCfgFileName
-
-    Description: Get config file name
-
-    Parameters: None
-
-    Return Values: TDesC& : config file name
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C TInt CTestCaseFileInfo::GetCfgFileName(TDes& aCfgFileName)
-    {
-    aCfgFileName.Zero();
-    if(iCfgFileName)
-        {
-        aCfgFileName.Copy(*iCfgFileName);
-        }
-    return KErrNone;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestCaseFileInfo
-
-    Method: SetChecked
-
-    Description: Set configuration file as already checked
-
-    Parameters: None
-
-    Return Values: None
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-EXPORT_C void CTestCaseFileInfo::SetChecked(void)
-    {
-    iChecked = ETrue;
-    }
-
-/*
--------------------------------------------------------------------------------
-
-    Class: CTestCaseFileInfo
-
-    Method: IsChecked
-
-    Description: Return if config file has been checked
-
-    Parameters: None
-
-    Return Values: 0 if test case file has not been checked yet
-                   other value otherwise
-
-    Errors/Exceptions: None
-
-    Status: Approved
-
--------------------------------------------------------------------------------
-*/
-TBool CTestCaseFileInfo::IsChecked(void)
-    {
-    return iChecked;
-    }
-
-// ================= OTHER EXPORTED FUNCTIONS =================================
-// None
-
-// End of File