testexecfw/stf/stffw/testengine/src/TestEngineUtils.cpp
changeset 2 8bb370ba6d1d
equal deleted inserted replaced
1:bbd31066657e 2:8bb370ba6d1d
       
     1 /*
       
     2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 *
       
    16 */
       
    17 #include "TestEngineUtils.h"
       
    18 #include "Logging.h"
       
    19 #include <StifLogger.h>
       
    20 #include <StifParser.h>
       
    21 #include "STIFTestFrameworkSettings.h"
       
    22 
       
    23 #define LOGGER aLogger
       
    24 
       
    25 TInt TTestEngineUtils::ParseLoggerDefaults( CStifParser* aParser, TLoggerSettings& aLoggerSettings, CStifLogger* aLogger )
       
    26     {
       
    27     __TRACE( KInit,( _L( "" ) ) );
       
    28     __TRACE( KInit,( _L( "CLoggerSetting::ReadLoggerDefaults" ) ) );
       
    29     __TRACE( KInit,( _L( "Start reading and parsing Logger defaults" ) ) );
       
    30 
       
    31     TInt ret = KErrNone;
       
    32 
       
    33     CSTIFTestFrameworkSettings* settings = NULL;
       
    34     TRAPD( settings_ret, settings = CSTIFTestFrameworkSettings::NewL() );
       
    35     if ( settings_ret != KErrNone )
       
    36         {
       
    37         __TRACE( KError,( CStifLogger::ERed, _L( "CSTIFTestFrameworkSettings class object creation fails") ) );
       
    38         return settings_ret;
       
    39         }
       
    40 
       
    41     TInt get_ret( KErrNone );
       
    42 
       
    43     CStifSectionParser* sectionParser = NULL;
       
    44     // Parse Logger's overwrite values
       
    45     _LIT( KDefaultsStart, "[Logger_Defaults]" );
       
    46     _LIT( KDefaultsEnd, "[End_Logger_Defaults]" );
       
    47     __TRACE( KInit,( _L( "Starting to search sections" ) ) );
       
    48     
       
    49     TRAPD( r,
       
    50         sectionParser = aParser->SectionL( KDefaultsStart, KDefaultsEnd );
       
    51         );
       
    52     // Get directory settings
       
    53     if ( ( r == KErrNone ) && sectionParser )
       
    54         {
       
    55         __TRACE( KInit,( _L( "Found '%S' and '%S' sections" ), &KDefaultsStart, &KDefaultsEnd ) );
       
    56 
       
    57         __TRACE( KInit,( _L( "Parsing Logger directory indicator" ) ) );
       
    58         TBool createDir( EFalse );
       
    59         TRAP( get_ret,
       
    60             get_ret = settings->GetBooleanSettingsL( sectionParser,
       
    61                                 _L( "CreateLogDirectories=" ), createDir );
       
    62             );
       
    63         if ( get_ret == KErrNone )
       
    64             {
       
    65             __TRACE( KInit,( _L( "Logger directory indicator: %d"), createDir ) );
       
    66             aLoggerSettings.iCreateLogDirectories = createDir;
       
    67             aLoggerSettings.iIsDefined.iCreateLogDir = ETrue;
       
    68             }
       
    69         else
       
    70             {
       
    71             __TRACE( KInit,( _L( "Indicator not found or not given" ) ) );
       
    72             }
       
    73 
       
    74         // Get Logger path settings
       
    75         __TRACE( KInit,( _L( "Parsing Logger path setting (Emulator)" ) ) );
       
    76         TPtrC emulatorPath;
       
    77         get_ret = settings->GetFileSetting( sectionParser,
       
    78                                                _L( "EmulatorBasePath=" ),
       
    79                                                emulatorPath );
       
    80         if ( get_ret == KErrNone )
       
    81             {
       
    82             __TRACE( KInit,( _L( "Logger base path setting: %S"), &emulatorPath ) );
       
    83             aLoggerSettings.iEmulatorPath = emulatorPath;
       
    84             aLoggerSettings.iIsDefined.iPath = ETrue;
       
    85             }
       
    86         else
       
    87             {
       
    88             __TRACE( KInit,( _L( "Path not found or not given (Emulator)" ) ) );
       
    89             }
       
    90 
       
    91         // Get Logger format settings
       
    92         __TRACE( KInit,( _L( "Parsing Logger file type setting (Emulator)" ) ) );
       
    93         CStifLogger::TLoggerType emulatorType = CStifLogger::ETxt;
       
    94         TRAP( get_ret, 
       
    95             get_ret = settings->GetFormatL( sectionParser,
       
    96                                     _L( "EmulatorFormat=" ), emulatorType );
       
    97             );
       
    98         if ( get_ret == KErrNone )
       
    99             {
       
   100             __TRACE( KInit,( _L( "File type setting: %d"), emulatorType ) );
       
   101             aLoggerSettings.iEmulatorFormat = emulatorType;
       
   102             aLoggerSettings.iIsDefined.iFormat = ETrue;
       
   103             }
       
   104         else
       
   105             {
       
   106             __TRACE( KInit,( _L( "File type not found or not given (Emulator)" ) ) );
       
   107             }
       
   108 
       
   109         // Get Logger output settings
       
   110         __TRACE( KInit,( _L( "Parsing Logger output setting (Emulator)" ) ) );
       
   111         CStifLogger::TOutput emulatorOutput = CStifLogger::EFile;
       
   112         TRAP( get_ret,
       
   113             get_ret = settings->GetOutputL( sectionParser,
       
   114                                     _L( "EmulatorOutput=" ), emulatorOutput );
       
   115             );
       
   116         if ( get_ret == KErrNone )
       
   117             {
       
   118             __TRACE( KInit,( _L( "Output setting: %d"), emulatorOutput ) );
       
   119             aLoggerSettings.iEmulatorOutput = emulatorOutput;
       
   120             aLoggerSettings.iIsDefined.iOutput = ETrue;
       
   121             }
       
   122         else
       
   123             {
       
   124             __TRACE( KInit,( _L( "Output not found or not given (Emulator)" ) ) );
       
   125             }
       
   126 
       
   127         // Get Logger HW path settings
       
   128         __TRACE( KInit,( _L( "Parsing Logger path setting (Hardware)" ) ) );
       
   129         TPtrC hwPath;
       
   130         get_ret = settings->GetFileSetting( sectionParser,
       
   131                                                _L( "HardwareBasePath=" ),
       
   132                                                hwPath );
       
   133         if ( get_ret == KErrNone )
       
   134             {
       
   135             __TRACE( KInit,( _L( "Base path setting: %S"), &hwPath ) );
       
   136             aLoggerSettings.iHardwarePath = hwPath;
       
   137             aLoggerSettings.iIsDefined.iHwPath = ETrue;
       
   138             }
       
   139         else
       
   140             {
       
   141             __TRACE( KInit,( _L( "Path not found or not given (Hardware)" ) ) );
       
   142             }
       
   143 
       
   144         // Get Logger HW format settings
       
   145         __TRACE( KInit,( _L( "Parsing Logger file type setting (Hardware)" ) ) );
       
   146         CStifLogger::TLoggerType hwType = CStifLogger::ETxt;
       
   147         TRAP( get_ret,
       
   148             get_ret = settings->GetFormatL( sectionParser,
       
   149                                         _L( "HardwareFormat=" ), hwType );
       
   150             );
       
   151         if ( get_ret == KErrNone )
       
   152             {
       
   153             __TRACE( KInit,( _L( "File type setting: %d"), hwType ) );
       
   154             aLoggerSettings.iHardwareFormat = hwType;
       
   155             aLoggerSettings.iIsDefined.iHwFormat = ETrue;
       
   156             }
       
   157         else
       
   158             {
       
   159             __TRACE( KInit,( _L( "File type not found or not given (Hardware)" ) ) );
       
   160             }
       
   161 
       
   162         // Get Logger HW output settings
       
   163         __TRACE( KInit,( _L( "Parsing Logger output setting (Hardware)" ) ) );
       
   164         CStifLogger::TOutput hwOutput = CStifLogger::EFile;
       
   165         TRAP( get_ret, 
       
   166         get_ret = settings->GetOutputL( sectionParser,
       
   167                                     _L( "HardwareOutput=" ), hwOutput );
       
   168             );
       
   169         if ( get_ret == KErrNone )
       
   170             {
       
   171             __TRACE( KInit,( _L( "Output setting: %d"), hwOutput ) );
       
   172             aLoggerSettings.iHardwareOutput = hwOutput;
       
   173             aLoggerSettings.iIsDefined.iHwOutput = ETrue;
       
   174             }
       
   175         else
       
   176             {
       
   177             __TRACE( KInit,( _L( "Output not found or not given (Hardware)" ) ) );
       
   178             }
       
   179 
       
   180         // Get Logger file creation mode (overwrite settings)
       
   181         __TRACE( KInit,( _L( "Parsing file creation setting" ) ) );
       
   182         TBool overwrite( ETrue );
       
   183         TRAP( get_ret,
       
   184             get_ret = settings->GetOverwriteL( sectionParser,
       
   185                                 _L( "FileCreationMode=" ), overwrite );
       
   186             );
       
   187         if ( get_ret == KErrNone )
       
   188             {
       
   189             __TRACE( KInit,( _L( "File creation mode setting: %d"), overwrite ) );
       
   190             aLoggerSettings.iOverwrite = overwrite;
       
   191             aLoggerSettings.iIsDefined.iOverwrite = ETrue;
       
   192             }
       
   193         else
       
   194             {
       
   195             __TRACE( KInit,( _L( "File creation not found or not given" ) ) );
       
   196             }
       
   197 
       
   198         // Get Time stamp settings
       
   199         __TRACE( KInit,( _L( "Parsing time stamp setting" ) ) );
       
   200         TBool timeStamp( ETrue );
       
   201         TRAP( get_ret,
       
   202             get_ret = settings->GetBooleanSettingsL( sectionParser,
       
   203                                 _L( "WithTimeStamp=" ), timeStamp );
       
   204             );
       
   205         if ( get_ret == KErrNone )
       
   206             {
       
   207             __TRACE( KInit,( _L( "Time stamp setting: %d"), timeStamp ) );
       
   208             aLoggerSettings.iTimeStamp = timeStamp;
       
   209             aLoggerSettings.iIsDefined.iTimeStamp = ETrue;
       
   210             }
       
   211         else
       
   212             {
       
   213             __TRACE( KInit,( _L( "Time stamp not found or not given" ) ) );
       
   214             }
       
   215 
       
   216         // Get Test report line break settings
       
   217         __TRACE( KInit,( _L( "Parsing line break setting" ) ) );
       
   218         TBool lineBreak( ETrue );
       
   219         TRAP( get_ret,
       
   220             get_ret = settings->GetBooleanSettingsL( sectionParser,
       
   221                                 _L( "WithLineBreak=" ), lineBreak );
       
   222             );
       
   223         if ( get_ret == KErrNone )
       
   224             {
       
   225             __TRACE( KInit,( _L( "Line break setting: %d"), lineBreak ) );
       
   226             aLoggerSettings.iLineBreak = lineBreak;
       
   227             aLoggerSettings.iIsDefined.iLineBreak = ETrue;
       
   228             }
       
   229         else
       
   230             {
       
   231             __TRACE( KInit,( _L( "Line break not found or not given" ) ) );
       
   232             }
       
   233 
       
   234         // Get Test report event ranking settings
       
   235         __TRACE( KInit,( _L( "Parsing event ranking setting" ) ) );
       
   236         TBool eventRanking( EFalse );
       
   237         TRAP( get_ret,
       
   238             get_ret = settings->GetBooleanSettingsL( sectionParser,
       
   239                             _L( "WithEventRanking=" ), eventRanking );
       
   240             );
       
   241         if ( get_ret == KErrNone )
       
   242             {
       
   243             __TRACE( KInit,( _L( "Event ranking setting: %d"), eventRanking ) );
       
   244             aLoggerSettings.iEventRanking = eventRanking;
       
   245             aLoggerSettings.iIsDefined.iEventRanking = ETrue;
       
   246             }
       
   247         else
       
   248             {
       
   249             __TRACE( KInit,( _L( "Event ranking not found or not given" ) ) );
       
   250             }
       
   251 
       
   252         // Get Test report thread id settings
       
   253         __TRACE( KInit,( _L( "Parsing thread id setting" ) ) );
       
   254         TBool threadId( EFalse );
       
   255         TRAP( get_ret,
       
   256             get_ret = settings->GetBooleanSettingsL( sectionParser,
       
   257                                     _L( "ThreadIdToLogFile=" ), threadId );
       
   258             );
       
   259         if ( get_ret == KErrNone )
       
   260             {
       
   261             __TRACE( KInit,( _L( "Thread id setting: %d"), threadId ) );
       
   262             aLoggerSettings.iThreadId = threadId;
       
   263             aLoggerSettings.iIsDefined.iThreadId = ETrue;
       
   264             }
       
   265         else
       
   266             {
       
   267             __TRACE( KInit,( _L( "Thread id not found or not given" ) ) );
       
   268             }
       
   269         // Get unicode setting
       
   270         __TRACE( KInit,( _L( "Parsing unicode setting" ) ) );
       
   271         TBool unicode(EFalse);
       
   272         TRAP( get_ret,
       
   273             get_ret = settings->GetBooleanSettingsL( sectionParser,
       
   274                                     _L( "FileUnicode=" ), unicode );
       
   275             );
       
   276         if ( get_ret == KErrNone )
       
   277             {
       
   278             __TRACE( KInit,( _L( "Unicode setting: %d"), unicode ) );
       
   279             aLoggerSettings.iUnicode = unicode;
       
   280             aLoggerSettings.iIsDefined.iUnicode = ETrue;
       
   281             }
       
   282         else
       
   283             {
       
   284             __TRACE( KInit,( _L( "Unicode setting not found or not given" ) ) );
       
   285             }
       
   286 
       
   287         // Check if test case title should be added to log file name
       
   288         __TRACE( KInit,( _L( "Parsing AddTestCaseTitle setting" ) ) );
       
   289         TBool addTestCaseTitle(EFalse);
       
   290         TRAP(get_ret,
       
   291             get_ret = settings->GetBooleanSettingsL(sectionParser,
       
   292                                     _L( "AddTestCaseTitle=" ), addTestCaseTitle);
       
   293             );
       
   294         if(get_ret == KErrNone)
       
   295             {
       
   296             __TRACE( KInit,( _L( "AddTestCaseTitle setting: %d"), addTestCaseTitle));
       
   297             aLoggerSettings.iAddTestCaseTitle = addTestCaseTitle;
       
   298             aLoggerSettings.iIsDefined.iAddTestCaseTitle = ETrue;
       
   299             }
       
   300         else
       
   301             {
       
   302             __TRACE(KInit, (_L("AddTestCaseTitle setting not found or not given")));
       
   303             }
       
   304         }
       
   305     else
       
   306         {
       
   307         __TRACE( KInit,( _L( "Not found '%S' and '%S' sections" ), &KDefaultsStart, &KDefaultsEnd ) );
       
   308         ret = KErrNotFound;
       
   309         }
       
   310     __TRACE( KInit,( _L( "End reading and parsing Logger defaults" ) ) );
       
   311     __TRACE( KInit,( _L( "" ) ) );
       
   312     delete sectionParser;
       
   313     delete settings;
       
   314 
       
   315     return ret;
       
   316     }
       
   317 
       
   318 // End of file