示例#1
0
   STR_String * MSG_Message :: AssembleMessage( )
   {

      // Assemble with existing message string

         STR_String * messageString = new STR_String( idMessage ) ;

         if ( memcmp( STR_ID_NOT_FOUND , messageString->GetString( ) ,
                      strlen( STR_ID_NOT_FOUND )) != 0  )
         {
            DoAssemble( messageString ) ;

            return messageString ;
         } /* end if */

         delete messageString ;
         messageString = NULL ;

      // Assemble with error message string id

         // Assemble with error message string

            messageString = new STR_String( MSG_ErrorIdNotFound ) ;

            if ( vtItems[ INX_LAST_ITEM ] != NULL )
            {
               delete vtItems[ INX_LAST_ITEM ] ;
            } /* if */
            vtItems[ INX_LAST_ITEM ] = new MSG_ItemInteger( idMessage & STR_ID ) ;

            DoAssemble( messageString ) ;

         // Append items to nonexisting message

         char ASCIINum[ BCD_DIM_MAX_ASCII ] ;

            STR_String Separator(    MSG_Separator    ) ;
            STR_String SeparatorEnd( MSG_SeparatorEnd ) ;

            for( int i = 0 ; i < MSG_DIM_ITEMS - 1 ; i ++ )
            {
               if ( vtItems[ i ] != NULL )
               {
                  messageString->Append( Separator ) ;

                  sprintf( ASCIINum , "%d" , i ) ;
                  messageString->Append( ASCIINum ) ;

                  messageString->Append( SeparatorEnd ) ;

                  STR_String * pItemStr = vtItems[ i ]->ToString() ;
                  messageString->Append( pItemStr ) ;
                  delete pItemStr ;

               } /* if */
            } /* for */

            return messageString ;

   } // End of function: MSG  !Assemble the message string
示例#2
0
   TST_tpRetCode TST_TestSpecific ::
             PerformSpecificTest( char * Command )
   {

      // Interpret TMSG Reset
      // AE: Reset

         if ( strcmp( Command , Reset_CMD ) == 0 ) 
         {

            for ( int i = 0 ; i < TMSG_dimVtObj ; i++ )
            {
               delete vtObj[ i ] ;
               vtObj[ i ] = NULL ;
            } /* for */

            return TST_RetCodeOK ;

         } // end selection: Interpret TMSG Reset

      // Test: MSG  Message constructor
      // AE: NewMessage  <inxMsg>  <i idString>

         else if ( strcmp( Command , MSG_CMessage_004_CMD ) == 0 )
         {

            /***** Function
            MSG_Message( const long idMessageParm )
            *****/

            int  inxObj   = -1 ;
            int  idString = -1 ;

            int  numRead  = TST_pReader->ReadCommandLine( "ii" ,
                      &inxObj , &idString ) ;

            if ( ( numRead != 2 )
              || !VerifyInxElem( inxObj  , NO ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            MSG_Message * pMsg ;
            switch ( idString )
            {
               case 1 :
                  pMsg = new MSG_Message( TSTMSG_1_0Fields ) ;
                  break ;
               case 2 :
                  pMsg = new MSG_Message( TSTMSG_2_1FieldBeg ) ;
                  break ;
               case 3 :
                  pMsg = new MSG_Message( TSTMSG_3_1FieldMid ) ;
                  break ;
               case 4 :
                  pMsg = new MSG_Message( TSTMSG_4_1FieldEnd ) ;
                  break ;
               case 5 :
                  pMsg = new MSG_Message( TSTMSG_5_2FieldsBeg ) ;
                  break ;
               case 6 :
                  pMsg = new MSG_Message( TSTMSG_6_2FieldsMid ) ;
                  break ;
               case 7 :
                  pMsg = new MSG_Message( TSTMSG_7_2FieldsEnd ) ;
                  break ;
               case 8 :
                  pMsg = new MSG_Message( TSTMSG_8_3Fields ) ;
                  break ;
               case 9 :
                  pMsg = new MSG_Message( TSTMSG_9_1Field ) ;
                  break ;
               default :
                  pMsg = new MSG_Message( idString | STR_MEM ) ;
                  break ;
            } /* switch */

            vtObj[ inxObj ] = pMsg ;

            return TST_RetCodeOK ;

         } // end selection: Test: MSG  Message constructor

      // Test: MSG  Message destructor
      // AE: DestroyMessage  <inxMsg>

         else if ( strcmp( Command , DeleteMSG_CMessage_005_CMD ) == 0 )
         {

            /***** Function
            ~MSG_Message( )
            *****/

            int  inxObj   = -1 ;

            int  numRead  = TST_pReader->ReadCommandLine( "i" , &inxObj ) ;

            if ( ( numRead != 1 )
              || !VerifyInxElem( inxObj  , ANY ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            delete vtObj[ inxObj ] ;
            vtObj[ inxObj ] = NULL ;

            return TST_RetCodeOK ;

         } // end selection: Test: MSG  Message destructor

      // Test: MSG  Add string item
      // AE: AddStringItem  <inxMsg> <i inxItem> <i idMode> <s String>

         else if ( strcmp( Command , AddItem_006_CMD ) == 0 )
         {

            /***** Function
            void AddItem( const int  Index         ,
                          MSG_MessageItem * pItem  )
            *****/

            int  inxObj   = -1 ;
            int  inxItem  = -1 ;
            int  idMode   = -1 ;
            int  sizStr   = -1 ;
            char Str[ TAL_dimBuffer ] ;

            int  numRead  = TST_pReader->ReadCommandLine( "iiis" ,
                      &inxObj , &inxItem , &idMode , &sizStr , Str ) ;

            if ( ( numRead != 4 )
              || !VerifyInxElem( inxObj  , YES ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            if ( Str[ 0 ] == '.' )
            {
               Str[ 0 ] = 0 ;
               sizStr   = 0 ;
            } /* if */

            STR_String StrVal ;
            MSG_ItemString * pItemString = NULL ;

            STR_String * pStr = NULL ;

            switch ( idMode )
            {
               case 1 :                    // char *
                  pItemString = new MSG_ItemString( Str ) ;
                  break ;
               case 2 :                    // STR_String *
                  pStr = new STR_String( Str ) ;
                  pItemString = new MSG_ItemString( pStr ) ;
                  delete pStr ;
                  pStr = NULL ;
                  break ;
               case 3 :
                  StrVal = Str ;           // STR_String value
                  pItemString = new MSG_ItemString( StrVal ) ;
                  break ;
               case 4 :                    // len , char *
                  pItemString = new MSG_ItemString( sizStr , Str ) ;
                  break ;

               default :
                  return TST_RetCodeParmError ;
            } /* switch */

            vtObj[ inxObj ]->AddItem( inxItem , pItemString ) ;

            return TST_RetCodeOK ;

         } // end selection: Test: MSG  Add string item

      // Test: MSG  Add id string item
      // AE: AddIdStringItem  <inxMsg> <i inxItem> <i idString>

         else if ( strcmp( Command , AddIdItem_106_CMD ) == 0 )
         {

            /***** Function
            void AddItem( const int  Index         ,
                          MSG_MessageItem * pItem  )
            *****/

            int  inxObj   = -1 ;
            int  inxItem  = -1 ;
            int  idStr    = -1 ;

            int  numRead  = TST_pReader->ReadCommandLine( "iii" ,
                      &inxObj , &inxItem , &idStr ) ;

            if ( ( numRead != 3 )
              || !VerifyInxElem( inxObj  , YES ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            vtObj[ inxObj ]->AddItem( inxItem , new MSG_ItemString( idStr )) ;

            return TST_RetCodeOK ;

         } // end selection: Test: MSG  Add id string item

      // Test: MSG  Add integer item
      // AE: AddIntegerItem  <inxMsg> <i inxItem> <i Value>

         else if ( strcmp( Command , AddIntegerItem_CMD ) == 0 )
         {

            /***** Function
            void AddItem( const int  Index         ,
                          MSG_MessageItem * pItem  )
            *****/

            int  inxObj   = -1 ;
            int  inxItem  = -1 ;
            int  Value    = -1 ;

            int  numRead  = TST_pReader->ReadCommandLine( "iii" ,
                      &inxObj , &inxItem , &Value ) ;

            if ( ( numRead != 3 )
              || !VerifyInxElem( inxObj  , YES ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            vtObj[ inxObj ]->AddItem( inxItem , new MSG_ItemInteger( Value )) ;

            return TST_RetCodeOK ;

         } // end selection: Test: MSG  Add integer item

      // Test: MSG  Add BCD item
      // AE: AddBCDItem  <inxMsg> <i inxItem> <i idMode> <s String>

         else if ( strcmp( Command , AddBCDItem_CMD ) == 0 )
         {

            /***** Function
            void AddItem( const int  Index         ,
                          MSG_MessageItem * pItem  )
            *****/

            int  inxObj   = -1 ;
            int  inxItem  = -1 ;
            int  sizBCD   = -1 ;
            char ValueBCD[ TAL_dimBuffer ] ;

            int  numRead  = TST_pReader->ReadCommandLine( "iis" ,
                      &inxObj , &inxItem , &sizBCD , ValueBCD ) ;

            if ( ( numRead != 3 )
              || ( sizBCD >= 12 )
              || !VerifyInxElem( inxObj  , YES ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            vtObj[ inxObj ]->AddItem( inxItem , new MSG_ItemBCD( ValueBCD )) ;

            return TST_RetCodeOK ;

         } // end selection: Test: MSG  Add BCD item

      // Test: MSG  Add time item
      // AE: AddTimeItem  <inxMsg> <i inxItem> <i Mode>
      //         Mode == true  -> current time
      //         Mode == false -> session beginning time

         else if ( strcmp( Command , AddTimeItem_CMD ) == 0 )
         {

            /***** Function
            void AddItem( const int  Index         ,
                          MSG_MessageItem * pItem  )
            *****/

            int  inxObj   = -1 ;
            int  inxItem  = -1 ;
            bool Mode     = false ;

            int  numRead  = TST_pReader->ReadCommandLine( "iib" ,
                      &inxObj , &inxItem , &Mode ) ;

            if ( ( numRead != 3 )
              || !VerifyInxElem( inxObj  , YES ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            if ( Mode )
            {
               vtObj[ inxObj ]->AddItem( inxItem , new  MSG_ItemTime( MSG_TimeCurrent )) ;
            } else
            {
               vtObj[ inxObj ]->AddItem( inxItem , new  MSG_ItemTime( MSG_TimeInitial )) ;
            } /* if */

            return TST_RetCodeOK ;

         } // end selection: Test: MSG  Add time item

      // Test: MSG  Assemble the message string
      // AE: AssembleMessage  <inxMsg> <s expString>

         else if ( strcmp( Command , AssembleMessage_007_CMD ) == 0 )
         {

            /***** Function
            STR_String * AssembleMessage( )
            *****/

            int  inxObj   = -1 ;
            int  expSiz   = -1 ;
            char expStr[ TAL_dimBuffer ] ;

            int  numRead  = TST_pReader->ReadCommandLine( "is" ,
                      &inxObj , &expSiz , expStr ) ;

            if ( ( numRead != 2 )
              || !VerifyInxElem( inxObj  , YES ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            STR_String * isString = vtObj[ inxObj ]->AssembleMessage( ) ;

            TST_tpRetCode retCode = Compare( isString->GetLength( ) ,
                      isString->GetString( ) , expSiz , expStr ,
                      "Incorrect message string." ) ;

            delete isString ;
            return retCode ;

         } // end selection: Test: MSG  Assemble the message string

      // Test: MSG  Get message id
      // AE: GetMessageId  <inxMsg> <i espIdString>

         else if ( strcmp( Command , GetMessageId_008_CMD ) == 0 )
         {

            /***** Function
            long GetMessageId( )
            *****/

            int  inxObj   = -1 ;
            int  inxMsg   = -1 ;
            int  expValue = -1 ;

            int  numRead  = TST_pReader->ReadCommandLine( "ii" ,
                      &inxObj , &inxMsg ) ;

            if ( ( numRead != 2 )
              || !VerifyInxElem( inxObj  , YES ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            switch ( inxMsg )
            {
               case 1 :
                  expValue = TSTMSG_1_0Fields ;
                  break ;
               case 2 :
                  expValue = TSTMSG_2_1FieldBeg ;
                  break ;
               case 3 :
                  expValue = TSTMSG_3_1FieldMid ;
                  break ;
               case 4 :
                  expValue = TSTMSG_4_1FieldEnd ;
                  break ;
               case 5 :
                  expValue = TSTMSG_5_2FieldsBeg ;
                  break ;
               case 6 :
                  expValue = TSTMSG_6_2FieldsMid ;
                  break ;
               case 7 :
                  expValue = TSTMSG_7_2FieldsEnd ;
                  break ;
               case 8 :
                  expValue = TSTMSG_8_3Fields ;
                  break ;
               case 9 :
                  expValue = TSTMSG_9_1Field ;
                  break ;
               default :
                  expValue = 0 ;
                  break ;
            } /* switch */

            return Compare( vtObj[ inxObj ]->GetMessageId( ) , expValue ,
                     "Incorrect message id value." ) ;

         } // end selection: Test: MSG  Get message id

      // Test: MSG  Replace message id
      // AE: ReplaceMessageId  <inxMsg> <i newIdString>

         else if ( strcmp( Command , ReplaceMessageId_009_CMD ) == 0 )
         {

            /***** Function
            void ReplaceMessageId( const long idMessageParm )
            *****/

            int  inxObj   = -1 ;
            int  inxMsg   = -1 ;
            int  newId    = -1 ;

            int  numRead  = TST_pReader->ReadCommandLine( "ii" ,
                      &inxObj , &inxMsg ) ;

            if ( ( numRead != 2 )
              || !VerifyInxElem( inxObj  , YES ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            switch ( inxMsg )
            {
               case 1 :
                  newId = TSTMSG_1_0Fields ;
                  break ;
               case 2 :
                  newId = TSTMSG_2_1FieldBeg ;
                  break ;
               case 3 :
                  newId = TSTMSG_3_1FieldMid ;
                  break ;
               case 4 :
                  newId = TSTMSG_4_1FieldEnd ;
                  break ;
               case 5 :
                  newId = TSTMSG_5_2FieldsBeg ;
                  break ;
               case 6 :
                  newId = TSTMSG_6_2FieldsMid ;
                  break ;
               case 7 :
                  newId = TSTMSG_7_2FieldsEnd ;
                  break ;
               case 8 :
                  newId = TSTMSG_8_3Fields ;
                  break ;
               case 9 :
                  newId = TSTMSG_9_1Field ;
                  break ;
               default :
                  newId = inxMsg | STR_MEM ;
                  break ;
            } /* switch */

            vtObj[ inxObj ]->ReplaceMessageId( newId ) ;

            return TST_RetCodeOK ;

         } // end selection: Test: MSG  Replace message id

      // Test: MSG  !Get message item
      // AE: GetItem  <inxMsg> <i inxItem> <espString>

         else if ( strcmp( Command , GetItem_101_CMD ) == 0 )
         {

            struct PointerEnvelope
            {
               STR_String * pString ;

               PointerEnvelope( )
               {
                  pString = NULL ;
               }

              ~PointerEnvelope( )
               {
                  delete pString ;
               }
            } envelope ; /* struct */

            /***** Function
            MSG_MessageItem * GetItem( int inxItem )
            *****/

            int   inxObj   = -1 ;
            int   inxItem  = -1 ;
            int   expSiz   = -1 ;
            char  expStr[ TAL_dimBuffer ] ;

            int  numRead  = TST_pReader->ReadCommandLine( "iis" ,
                      &inxObj , &inxItem , &expSiz , expStr ) ;

            if ( ( numRead != 3 )
              || !VerifyInxElem( inxObj  , YES ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            MSG_MessageItem * pItem = vtObj[ inxObj ]->GetItem( inxItem ) ;

            if ( pItem != NULL )
            {
               envelope.pString = pItem->ToString( ) ;
               return Compare( envelope.pString->GetLength( ) ,
                      envelope.pString->GetString( ) , expSiz , expStr ,
                      "Incorrect non null item string." ) ;
            } /* if */

            return Compare( 1 , "." , expSiz , expStr ,
                      "Incorrect null item string." ) ;

         } // end selection: Test: MSG  !Get message item

      // Test: MSGI Get item type identifier
      // AE: GetItemTypeId  <inxMsg> <i inxItem> <espIdType>

         else if ( strcmp( Command , GetItemTypeId_100_CMD ) == 0 )
         {

            /***** Function
            MSG_tpItemTypeId GetItemTypeId( )
            *****/

            int  inxObj   = -1 ;
            int  inxItem  = -1 ;
            int  expValue = -1 ;

            int  numRead  = TST_pReader->ReadCommandLine( "iii" ,
                      &inxObj , &inxItem , &expValue ) ;

            if ( ( numRead != 3 )
              || !VerifyInxElem( inxObj  , YES ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            MSG_MessageItem * pItem = vtObj[ inxObj ]->GetItem( inxItem ) ;

            MSG_tpItemTypeId typeId = MSG_ItemTypeIdNull ;

            if ( pItem != NULL )
            {
               typeId = pItem->GetItemTypeId( ) ;
            } /* if */

            return Compare( typeId , expValue , "Incorrect type id value." ) ;

         } // end selection: Test: MSGI Get item type identifier

      return TST_RetCodeUnknown ;

   } // End of function: TMSG !P Perform specific test actions
示例#3
0
   TST_tpRetCode TST_TestSpecific ::
             PerformSpecificTest( char * Command )
   {

      // Interpret TCFG Reset
      // AE: Reset

         if ( strcmp( Command , Reset_CMD ) == 0 ) 
         {

            for ( int i = 0 ; i < TCFG_dimVtObj ; i++ )
            {
               delete vtObj[ i ] ;
               vtObj[ i ] = NULL ;
            } /* for */

            return TST_RetCodeOK ;

         } // end selection: Interpret TCFG Reset

      // Test: CFG  !Construct a configuration list
      // AE: NewParamList  <inxObj>

         else if ( strcmp( Command , CFG_CParameterList_002_CMD ) == 0 )
         {

            /***** Function
            CFG_ConfigurationList( )
            *****/

            int  inxObj   = -1 ;

            int  numRead  = TST_pReader->ReadCommandLine( "i" , &inxObj ) ;

            if ( ( numRead != 1 )
              || !VerifyInxElem( inxObj , NO ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            vtObj[ inxObj ] = new CFG_ConfigurationList( ) ;

            return TST_RetCodeOK ;

         } // end selection: Test: CFG  !Construct a configuration list

      // Test: CFG  !Destroy a parameter list
      // AE: DeleteParamList  <inxObj>

         else if ( strcmp( Command , DeleteCFG_CParameterList_003_CMD ) == 0 )
         {

            /***** Function
            ~CFG_ConfigurationList( )
            *****/

            int  inxObj   = -1 ;

            int  numRead  = TST_pReader->ReadCommandLine( "i" , &inxObj ) ;

            if ( ( numRead != 1 )
              || !VerifyInxElem( inxObj  , ANY ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            delete vtObj[ inxObj ] ;
            vtObj[ inxObj ] = NULL ;

            return TST_RetCodeOK ;

         } // end selection: Test: CFG  !Destroy a parameter list

      // Test: CFG  !Build from given file
      // AE: BuildList   <inxObj> <s EnvName> <s FileName> <s ExtensionName> <b expReturn>
      //                    EnvName  == "."  ==> NULL reads the file identified
      //                                         by the "TALISMAN" environment variable
      //                    FileName == "."  ==> NULL reads the file identified
      //                                         by the environment variable
      //                    ExtName  == "."  ==> NULL uses "config" as deafult extension
      //                                         name

         else if ( strcmp( Command , BuildLineList_006_CMD ) == 0 )
         {

            /***** Function
            bool BuildLineList( char * FileName      ,
                                char * FileExtension  )
            *****/

            int  inxObj   = -1 ;
            bool expRet   = false ;

            int  sizFileName = -1 ;
            char FileName[ TAL_dimBuffer ] ;

            int  sizExtName  = -1 ;
            char ExtName[ TAL_dimBuffer ] ;

            int  numRead  = TST_pReader->ReadCommandLine( "issb" ,
                      &inxObj , &sizFileName , FileName ,
                                &sizExtName  , ExtName  , &expRet ) ;

            if ( ( numRead != 4 )
              || !VerifyInxElem( inxObj  , YES ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            return CompareBool( vtObj[ inxObj ]->BuildLineList(
                                ( strcmp( FileName , "." ) != 0 ? FileName : NULL ) ,
                                ( strcmp( ExtName  , "." ) != 0 ? ExtName  : NULL )) ,
                                expRet , "Incorrect configuration build return." ) ;

         } // end selection: Test: CFG  !Build from given file

      // Test: CFG  !Write configuration file
      // AE: WriteList   <inxObj> <s FileNmae> <s ExtensionName> <b expReturn>
      //                    FileName == "."  ==> NULL
      //                    ExtName  == "."  ==> NULL

         else if ( strcmp( Command , WriteConfigurationList_006_CMD ) == 0 )
         {

            /***** Function
            bool WriteConfigurationList( char * FileName ,
                                         char * ExtensionName = NULL )
            *****/

            int  inxObj   = -1 ;
            bool expRet   = false ;

            int  sizFileName = -1 ;
            char FileName[ TAL_dimBuffer ] ;

            int  sizExtName  = -1 ;
            char ExtName[ TAL_dimBuffer ] ;

            int  numRead  = TST_pReader->ReadCommandLine( "issb" ,
                      &inxObj , &sizFileName , FileName ,
                                &sizExtName  , ExtName  , &expRet ) ;

            if ( ( numRead != 4 )
              || !VerifyInxElem( inxObj  , YES ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            return CompareBool( vtObj[ inxObj ]->WriteConfigurationList(
                                ( strcmp( FileName , "." ) != 0 ? FileName : NULL ) ,
                                ( strcmp( ExtName  , "." ) != 0 ? ExtName  : NULL )) ,
                                expRet , "Incorrect configuration write return." ) ;

         } // end selection: Test: CFG  !Write configuration file

      // Test: CFG  !Get a parameter value
      // AE: GetParameter <inxObj> <s SectionName> <s ParameterName> <s expValue>

         else if ( strcmp( Command , GetParameter_007_CMD ) == 0 )
         {

            /***** Function
            STR_String * GetParameterValue( char * SectionName   ,
                                             char * AttributeName  )
            *****/

            int  inxObj   = -1 ;

            int  sizSecName = -1 ;
            char SecName[ TAL_dimBuffer ] ;

            int  sizParmName  = -1 ;
            char ParmName[ TAL_dimBuffer ] ;

            int  sizexpValue  = -1 ;
            char expValue[ TAL_dimBuffer ] ;

            int  numRead  = TST_pReader->ReadCommandLine( "isss" ,
                      &inxObj , &sizSecName   , SecName  ,
                                &sizParmName  , ParmName , &sizexpValue , expValue ) ;

            if ( ( numRead != 4 )
              || !VerifyInxElem( inxObj  , YES ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            STR_String * pStr = vtObj[ inxObj ]->GetParameterValue( SecName , ParmName ) ;

            if ( pStr == NULL )
            {
               if ( strcmp( expValue , "." ) == 0 )
               {
                  return TST_RetCodeOK ;
               } /* if */
               DisplayErrorMsg( "Expected parameter has not been found." ) ;
               return TST_RetCodeFailure ;
            } /* if */

            TST_tpRetCode retCode = Compare( pStr->GetString( ) , expValue ,
                      sizexpValue , "Incorrect parameter value." ) ;

            delete pStr ;

            return retCode ;

         } // end selection: Test: CFG  !Get a parameter value

      // Test: CFG  !Set a parameter value
      // AE: SetParameter <inxObj> <s SectionName> <s ParameterName> <s newValue> <b expRet>

         else if ( strcmp( Command , SetParameter_013_CMD ) == 0 )
         {

            /***** Function
            bool SetParameterValue( char        * SectionName ,
                                    char        * ParameterName ,
                                    STR_String * ParameterValue )
            *****/

            int  inxObj   = -1 ;
            bool expRet   = false ;

            int  sizSecName = -1 ;
            char SecName[ TAL_dimBuffer ] ;

            int  sizParmName  = -1 ;
            char ParmName[ TAL_dimBuffer ] ;

            int  sizValue  = -1 ;
            char Value[ TAL_dimBuffer ] ;

            int  numRead  = TST_pReader->ReadCommandLine( "isssb" ,
                      &inxObj , &sizSecName   , SecName  ,
                                &sizParmName  , ParmName , &sizValue , Value , &expRet ) ;

            if ( ( numRead != 5 )
              || !VerifyInxElem( inxObj  , YES ))
            {
               return TST_RetCodeParmError ;
            } /* if */

            STR_String * pVal = new STR_String( sizValue , Value ) ;
            bool isRet = vtObj[ inxObj ]->SetParameterValue( SecName , ParmName , pVal ) ;

            return CompareBool( isRet , expRet , "Incorrect set parameter return." );

         } // end selection: Test: CFG  !Set a parameter value

      // Perform compare file
      // AE: CompareFile  <s FileA> <s extFileA> <s FileB> <s extFileB> <b expRet>

         else if ( strcmp( Command , CompareFile_CMD ) == 0 )
         {

            int  lenFileA = -1 ;
            char fileA[ TAL_dimBuffer ] ;
            int  lenExtA  = -1 ;
            char ExtA[  TAL_dimBuffer ] ;
            int  lenFileB = -1 ;
            char fileB[ TAL_dimBuffer ] ;
            int  lenExtB  = -1 ;
            char ExtB[  TAL_dimBuffer ] ;
            bool expBool  = false ;

            int  numRead  = TST_pReader->ReadCommandLine( "ssssb" ,
                      &lenFileA , fileA , &lenExtA , ExtA ,
                      &lenFileB , fileB , &lenExtB , ExtB , &expBool ) ;

            if ( numRead != 5 )
            {
               return TST_RetCodeParmError ;
            } /* if */

            return CompareBool( SIO_CompareFile( fileA , ExtA , fileB , ExtB ) ,
                      expBool , "Incorrect comparison." ) ;

         } // end selection: Perform compare file

      // Test: CFGE !Configuration element constructor
      // AE: CFGE_LineListElem_002_CMD

         else if ( strcmp( Command , CFGE_CLineListElem_002_CMD ) == 0 )
         {

            /***** Function
            CFGE_LineListElem( )
            *****/

            return TST_RetCodeNotImplemented ;

         } // end selection: Test: CFGE !Configuration element constructor

      // Test: CFGE !Configuration element destructor
      // AE: DeleteCFGE_LineListElem_003_CMD

         else if ( strcmp( Command , DeleteCFGE_CLineListElem_003_CMD ) == 0 )
         {

            /***** Function
            ~CFGE_LineListElem( )
            *****/

            return TST_RetCodeNotImplemented ;

         } // end selection: Test: CFGE !Configuration element destructor

      // Test var: Line type
      // AE: LineType_006

         else if ( strcmp( Command , LineType_006 ) == 0 )
         {

            /***** Variable
            tpLineType LineType ;
            *****/

            return TST_RetCodeNotImplemented ;

         } // end selection: Test var: Line type

      // Test var: Next section element
      // AE: proxSection_007

         else if ( strcmp( Command , proxSection_007 ) == 0 )
         {

            /***** Variable
            CFG_ParamenterListElement * proxSection ;
            *****/

            return TST_RetCodeNotImplemented ;

         } // end selection: Test var: Next section element

      // Test var: Next atribute element
      // AE: proxAttribute_008

         else if ( strcmp( Command , proxAttribute_008 ) == 0 )
         {

            /***** Variable
            CFG_ParamenterListElement * proxAttribute ;
            *****/

            return TST_RetCodeNotImplemented ;

         } // end selection: Test var: Next atribute element

      // Test var: Element name
      // AE: pElementName_009

         else if ( strcmp( Command , pElementName_009 ) == 0 )
         {

            /***** Variable
            STR_String * pElementName ;
            *****/

            return TST_RetCodeNotImplemented ;

         } // end selection: Test var: Element name

      // Test var: Element value
      // AE: pElementValue_021

         else if ( strcmp( Command , pElementValue_021 ) == 0 )
         {

            /***** Variable
            STR_String * pElementValue ;
            *****/

            return TST_RetCodeNotImplemented ;

         } // end selection: Test var: Element value

      return TST_RetCodeUnknown ;

   } // End of function: TCFG !P Perform specific test actions