///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// Copyright (c) 2000-2019 Ericsson Telecom AB                               //
//                                                                           //
// All rights reserved. This program and the accompanying materials          //
// are made available under the terms of the Eclipse Public License v2.0     //
// which accompanies this distribution, and is available at                  //
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html                                 //
///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////
//  Module: EPTF_ExecCtrl_Test_Definitions
// 
//  Purpose:
//    This module contains the type definitions of the EPTF ExecCtrl test enviroment.
// 
//  Module depends on:
//   <EPTF_CLL_ExecCtrl_Definitions
//   <EPTF_CLL_ExecCtrlTimeProfile_Definitions>
//   <EPTF_CLL_Base_Definitions 
//   <EPTF_CLL_Common_Definitions>
//   <EPTF_CLL_UIHandler_Definitions>
//   <EPTF_CLL_ExecCtrl_PhaseDefinitions>
//   <EPTF_CLL_ExecCtrlUIHandler_Definitions>
//   <EPTF_CLL_LGenBase_ConfigDefinitions>
//   <EPTF_CLL_LGenBase_PhaseDefinitions>
//   <EPTF_CLL_LoadRegulator_Definitions>
//   <EPTF_CLL_Logging_Definitions>
// 
//  Current Owner:
//    Balazs Barcsik (EBALBAR)
// 
//  Last Review Date:
//    2007-xx-xx
//
//  Detailed Comments:
//    -
//
///////////////////////////////////////////////////////////////
module EPTF_ExecCtrl_Test_Definitions {
//=========================================================================
// Import Part
//=========================================================================
import from EPTF_CLL_ExecCtrl_Definitions all;
import from EPTF_CLL_ExecCtrlTimeProfile_Definitions all;
import from EPTF_CLL_Base_Definitions all;
import from EPTF_CLL_Common_Definitions all;

import from EPTF_CLL_UIHandler_Definitions all;
import from EPTF_CLL_UIHandlerCLI_Definitions all;
import from EPTF_CLL_ExecCtrl_PhaseDefinitions all;
import from EPTF_CLL_ExecCtrl_ScenarioDefinitions all;
import from EPTF_CLL_ExecCtrlUIHandler_Definitions all;
import from EPTF_CLL_LGenBase_ConfigDefinitions all;
import from EPTF_CLL_LGenBase_PhaseDefinitions all;
import from EPTF_CLL_LoadRegulator_Definitions all;
import from EPTF_CLL_LGenBase_Definitions all;
import from EPTF_CLL_StatMeasure_Definitions all;
import from EPTF_CLL_StatHandlerClient_Definitions all;
import from EPTF_CLL_Logging_Definitions all;

modulepar EPTF_ExecCtrl_Test_behaviorTypeList tsp_behaviorTypes := {
  {c_myApplib_bType, 200},
  {c_myApplibB_bType, 250}
}

modulepar EPTF_ExecCtrlTest_EntityList tsp_entityTypes := {
  {"Entity_A",{c_myApplib_bType}},
  {"Entity_B",{c_myApplib_bType, c_myApplibB_bType}},
  {"Entity_AB",{c_myApplib_bType, c_myApplib_bType}}
}
modulepar EPTF_LGenBase_PhaseList_Declarators tsp_EPTF_LGenBase_PhaseList_Declarators := {};

modulepar charstring tsp_ExecCtrl_DS_guiXmlName := "gui.xml";
modulepar float tsp_ExecCtrl_DS_timer := 10.0;

group DefaultLGen {

const charstring c_EPTF_ExecCtrl_Test_defaultBehaviorName := "ExecCtrTestDefaultBehavior";
const charstring c_EPTF_ExecCtrl_Test_defaultETypeName := "ExecCtrTestDefaultETypeName";
const charstring c_EPTF_ExecCtrl_Test_defaultFSMName := "defaultFSM";
const EPTF_LGenBase_FsmTableDeclarator c_EPTF_ExecCtrl_Test_defaultFSM :=  
{
  name := c_EPTF_ExecCtrl_Test_defaultFSMName,
  fsmParams := {
    {stateList := {"idle"}}
  },
  table := {
    classicTable := {
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_startTC,fsm},
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_trafficSuccess, omit}
            }, omit, omit}}
      },        
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_stopTC,fsm},
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_entityStopped, omit}
            }, omit, omit}}
      },        
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_abortTC,fsm},
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_entityAborted, omit}
            }, omit, omit}}
      }        
    }
  }
}



const EPTF_LGenBase_FsmTableDeclarator c_EPTF_ExecCtrl_Test_defaultFSMWithFSMStats :=  
{
  name := c_EPTF_ExecCtrl_Test_defaultFSMName,
  fsmParams := {
    {stateList := {"idle"}},
    {timerList := {{"busyTimer",1.0}}}
    ,{varList :=  {
        {name := "vf_chrono", initValue := {floatVal := 0.0}, scope := TC}
        ,{name := "vf_chrono_free", initValue := {floatVal := 0.0}, scope := TC}
        ,{name := "cf_one", initValue := {intVal := 1}, scope := TC}
        ,{name := "vf_running", initValue := {intVal := 0}, scope := TC}
        ,{name := "vf_starts", initValue := {intVal := 0}, scope := TC}
      }}
    ,{statMeasStatList :=  {
        {name := "mean_rtt", varName := "vf_chrono",statType := mean, scope := TC}
        ,{name := "mean_busy", varName := "vf_running",statType := max, scope := TC}
        //,{name := "chrono_free", varName := "",statType := chrono, scope := FSM}
      }}
    ,{statMeasWithParamsList :=  {
        {
          name := "maxChrono", 
          providerVarName := "vf_chrono",
          targetVarName := "",
          statMeasParams := {
            statType := max}, 
          scope := TC
        },
        {
          name := "chrono_busy", 
          providerVarName := "",
          targetVarName := "vf_chrono",
          statMeasParams := {
            statType := chrono}, 
          scope := FSM
        },
        {
          name := "meanFree", 
          providerVarName := "vf_chrono_free",
          targetVarName := "",
          statMeasParams := {
            statType := mean}, 
          scope := TC
        },
        {
          name := "chrono_free", 
          providerVarName := "",
          targetVarName := "vf_chrono_free",
          statMeasParams := {
            statType := chrono}, 
          scope := FSM
        },
        {
          name := "density_free", 
          providerVarName := "vf_chrono_free",
          targetVarName := "",
          statMeasParams := {
            params := {
              density := {
                scale := {
                  min := 0.0,
                  max := 19.0,
                  n := 20,
                  scale := linear}
              }
            }
          },
          scope := TC
        },
        {
          name := "p95_free", 
          providerVarName := "vf_chrono_free",
          targetVarName := "",
          statMeasParams := {
            params := {
              percentile95 := {
                scale := {
                  min := 0.0,
                  max := 29.0,
                  n := 30,
                  scale := linear}
              }
            }
          },
          scope := TC
        }
      }}
    ,{statHandlerStatList :=  {
        {
          name := "MaxBusyTime",
          providers := {
            {statMeas := "maxChrono"}
          },
          statMethod := c_EPTF_StatHandler_Method_Max,
          statResetValue := {floatVal := 0.0},
          scope := TC 
        },
        {
          name := "MeanFreeTime",
          providers := {
            {statMeas := "meanFree"}
          },
          statMethod := c_EPTF_StatHandler_Method_Mean,
          statResetValue := {floatVal := 0.0},
          scope := TC 
        },
        {
          name := "AvrgFreeTime",
          providers := {
            {varList := {"vf_chrono_free", "cf_one"}}
          },
          statMethod := c_EPTF_StatHandler_Method_GlobalAverage,
          statResetValue := {floatVal := 0.0},
          scope := TC 
        },
        {
          name := "Percentile95FreeTime",
          providers := {
            {statMeas := "p95_free"}
          },
          statMethod := c_EPTF_StatHandler_Method_Percentile95,
          statResetValue := {floatVal := 0.0},
          scope := TC 
        },
        {
          name := "densityFreeTime",
          providers := {
            {statMeas := "density_free"}
          },
          statMethod := c_EPTF_StatHandler_Method_Density,
          statResetValue := {integerlistVal := {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}},
          scope := TC 
        },
        {
          name := "NofBusy",
          providers := {
            {varList := {"vf_running"}}
          },
          statMethod := c_EPTF_StatHandler_Method_Sum,
          statResetValue := {intVal := 0},
          scope := TC 
        },
        {
          name := "NofStarts",
          providers := {
            {varList := {"vf_starts"}}
          },
          statMethod := c_EPTF_StatHandler_Method_Sum,
          statResetValue := {intVal := 0},
          scope := TC 
        }
      }
    }
  },
  table := {
    classicTable := {
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_startTC,fsm},
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_trafficSuccess, omit}
            }, omit, omit}}
      },        
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_stopTC,fsm},
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_entityStopped, omit}
            }, omit, omit}}
      },        
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_abortTC,fsm},
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_entityAborted, omit}
            }, omit, omit}}
      }        
    }
  }
}

const EPTF_LGenBase_FsmTableDeclarator c_EPTF_ExecCtrl_Test_defaultFSMWithFSMStatsLive :=  
{
  name := c_EPTF_ExecCtrl_Test_defaultFSMName,
  fsmParams := {
    {stateList := {"idle"}},
    {timerList := {{"busyTimer",1.0}}}
    ,{varList :=  {
        {name := "vf_chrono", initValue := {floatVal := 0.0}, scope := TC}
        ,{name := "vf_chrono_free", initValue := {floatVal := 0.0}, scope := TC}
        ,{name := "cf_one", initValue := {intVal := 1}, scope := TC}
        ,{name := "vf_running", initValue := {intVal := 0}, scope := TC}
        ,{name := "vf_starts", initValue := {intVal := 0}, scope := TC}
        ,{name := "vf_starts_float", initValue := {floatVal := 0.0}, scope := TC}
      }}
    ,{statMeasStatList :=  {
        {name := "mean_rtt", varName := "vf_chrono",statType := mean, scope := TC}
        ,{name := "mean_busy", varName := "vf_running",statType := max, scope := TC}
        //,{name := "chrono_free", varName := "",statType := chrono, scope := FSM}
      }}
    ,{statMeasWithParamsList :=  {
        {
          name := "maxChrono", 
          providerVarName := "vf_chrono",
          targetVarName := "",
          statMeasParams := {
            statType := max}, 
          scope := TC
        },
        {
          name := "chrono_busy", 
          providerVarName := "",
          targetVarName := "vf_chrono",
          statMeasParams := {
            statType := chrono}, 
          scope := FSM
        },
        {
          name := "meanFree", 
          providerVarName := "vf_chrono_free",
          targetVarName := "",
          statMeasParams := {
            statType := mean}, 
          scope := TC
        },
        {
          name := "chrono_free", 
          providerVarName := "",
          targetVarName := "vf_chrono_free",
          statMeasParams := {
            statType := chrono}, 
          scope := FSM
        },
        {
          name := "density_free", 
          providerVarName := "vf_chrono_free",
          targetVarName := "",
          statMeasParams := {
            params := {
              density := {
                scale := {
                  min := 0.0,
                  max := 19.0,
                  n := 20,
                  scale := linear}
              }
            }
          },
          scope := TC
        },
        {
          name := "p95_free", 
          providerVarName := "vf_chrono_free",
          targetVarName := "",
          statMeasParams := {
            params := {
              percentile95 := {
                scale := {
                  min := 0.0,
                  max := 29.0,
                  n := 30,
                  scale := linear}
              }
            }
          },
          scope := TC
        },
        {
          name := "maxStarts", 
          providerVarName := "vf_starts_float",
          targetVarName := "",
          statMeasParams := {
            statType := max}, 
          scope := TC
        },
        {
          name := "meanStarts", 
          providerVarName := "vf_starts_float",
          targetVarName := "",
          statMeasParams := {
            statType := mean}, 
          scope := TC
        },
        {
          name := "density_starts", 
          providerVarName := "vf_starts_float",
          targetVarName := "",
          statMeasParams := {
            params := {
              density := {
                scale := {
                  min := 1.0,
                  max := 1000000.0,
                  n := 20,
                  scale := logarithmic}
              }
            }
          },
          scope := TC
        },
        {
          name := "p95_starts", 
          providerVarName := "vf_starts_float",
          targetVarName := "",
          statMeasParams := {
            params := {
              percentile95 := {
                scale := {
                  min := 1.0,
                  max := 1000000.0,
                  n := 30,
                  scale := logarithmic}
              }
            }
          },
          scope := TC
        }
      }}
    ,{statHandlerStatList :=  {
        {
          name := "MaxBusyTime",
          providers := {
            {statMeas := "maxChrono"}
          },
          statMethod := c_EPTF_StatHandler_Method_Max,
          statResetValue := {floatVal := 0.0},
          scope := TC 
        },
        {
          name := "MeanFreeTime",
          providers := {
            {statMeas := "meanFree"}
          },
          statMethod := c_EPTF_StatHandler_Method_Mean,
          statResetValue := {floatVal := 0.0},
          scope := TC 
        },
        {
          name := "AvrgFreeTime",
          providers := {
            {varList := {"vf_chrono_free", "cf_one"}}
          },
          statMethod := c_EPTF_StatHandler_Method_GlobalAverage,
          statResetValue := {floatVal := 0.0},
          scope := TC 
        },
        {
          name := "Percentile95FreeTime",
          providers := {
            {statMeas := "p95_free"}
          },
          statMethod := c_EPTF_StatHandler_Method_Percentile95,
          statResetValue := {floatVal := 0.0},
          scope := TC 
        },
        {
          name := "densityFreeTime",
          providers := {
            {statMeas := "density_free"}
          },
          statMethod := c_EPTF_StatHandler_Method_Density,
          statResetValue := {integerlistVal := {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}},
          scope := TC 
        },
        {
          name := "NofBusy",
          providers := {
            {varList := {"vf_running"}}
          },
          statMethod := c_EPTF_StatHandler_Method_Sum,
          statResetValue := {intVal := 0},
          scope := TC 
        },
        {
          name := "NofStarts",
          providers := {
            {varList := {"vf_starts"}}
          },
          statMethod := c_EPTF_StatHandler_Method_Sum,
          statResetValue := {intVal := 0},
          scope := TC 
        },
        {
          name := "MaxStarts",
          providers := {
            {statMeas := "maxStarts"}
          },
          statMethod := c_EPTF_StatHandler_Method_Max,
          statResetValue := {floatVal := 0.0},
          scope := TC 
        },
        {
          name := "MeanStarts",
          providers := {
            {statMeas := "meanStarts"}
          },
          statMethod := c_EPTF_StatHandler_Method_Mean,
          statResetValue := {floatVal := 0.0},
          scope := TC 
        },
        {
          name := "MeanStarts_Mean",
          providers := {
            {statHandler := "MeanStarts"}
          },
          statMethod := c_EPTF_StatHandler_Method_Mean,
          statResetValue := {floatVal := 0.0},
          scope := TC 
        },
        {
          name := "AvrgStarts",
          providers := {
            {varList := {"vf_starts_float", "cf_one"}}
          },
          statMethod := c_EPTF_StatHandler_Method_GlobalAverage,
          statResetValue := {floatVal := 0.0},
          scope := TC 
        },
        {
          name := "Percentile95Starts",
          providers := {
            {statMeas := "p95_starts"}
          },
          statMethod := c_EPTF_StatHandler_Method_Percentile95,
          statResetValue := {floatVal := 0.0},
          scope := TC 
        },
        {
          name := "densityStarts",
          providers := {
            {statMeas := "density_starts"}
          },
          statMethod := c_EPTF_StatHandler_Method_Density,
          statResetValue := {integerlistVal := {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}},
          scope := TC 
        }
      }
    }
  },
  table := {
    classicTable := {
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_startTC,fsm},
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_fsmVarSet, {varParams := {"cf_one", {intVal := 1}}}}, // reset will set it to zero -> restore value (needed for GlobalAberage Stat: n)
              {c_EPTF_LGenBase_stepName_fsmVarInc, {varParams := {"vf_starts", omit}}},
              {c_EPTF_LGenBase_stepName_fsmVarInc, {varParams := {"vf_starts_float", omit}}},
              {c_EPTF_LGenBase_stepName_fsmVarInc, {varParams := {"vf_running", omit}}},
              {c_EPTF_LGenBase_stepName_fsmStartChrono,{statMeasParams := {"chrono_busy", omit}}},
              {c_EPTF_LGenBase_stepName_fsmStopChrono,{statMeasParams := {"chrono_busy", omit}}},
              {c_EPTF_LGenBase_stepName_fsmStartChrono,{statMeasParams := {"chrono_free", omit}}},
              {c_EPTF_LGenBase_stepName_fsmStopChrono,{statMeasParams := {"chrono_free", omit}}},
              {c_EPTF_LGenBase_stepName_trafficSuccess, omit}
            }, omit, omit}}
      },        
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_stopTC,fsm},
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_entityStopped, omit}
            }, omit, omit}}
      },        
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_abortTC,fsm},
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_entityAborted, omit}
            }, omit, omit}}
      }        
    }
  }
}

const charstring c_EPTF_ExecCtrl_Test_defaultLGenPoolName := "LGenDefaultPool";

const EPTF_ExecCtrl_LGenPool_Declarators c_EPTF_ExecCtrl_Test_defaultLGenPool_Declarators := {
  {
    name := c_EPTF_ExecCtrl_Test_defaultLGenPoolName,
    lgenPoolItems := {
      {
        hostname := "localhost",
        num := 2,
        createFunctionName := "EPTF_ExecCtrl_Test_Functions.f_ExecCtrl_Test_createDefaultLGen"
      }
    }
  }
}

const EPTF_ExecCtrl_LGenPool_Declarators c_EPTF_ExecCtrl_Test_defaultLGenPoolWithSpecId_Declarators := {
  {
    name := c_EPTF_ExecCtrl_Test_defaultLGenPoolName,
    lgenPoolItems := {
      {
        hostname := "localhost",
        num := 2,
        createFunctionName := "EPTF_ExecCtrl_Test_Functions.f_ExecCtrl_Test_createDefaultLGenWithSpecId"
      }
    }
  }
}

const EPTF_ExecCtrl_LGenPool_Declarators c_EPTF_ExecCtrl_Test_defaultLGenPoolWithSpecId_DeclaratorsWithFSMStats := {
  {
    name := c_EPTF_ExecCtrl_Test_defaultLGenPoolName,
    lgenPoolItems := {
      {
        hostname := "localhost",
        num := 2,
        createFunctionName := "EPTF_ExecCtrl_Test_Functions.f_ExecCtrl_Test_createDefaultLGenWithSpecIdWithFSMStats"
      }
    }
  }
}

const EPTF_ExecCtrl_LGenPool_Declarators c_EPTF_ExecCtrl_Test_defaultLGenPoolWithSpecId_DeclaratorsWithFSMStatsLive := {
  {
    name := c_EPTF_ExecCtrl_Test_defaultLGenPoolName,
    lgenPoolItems := {
      {
        hostname := "localhost",
        num := 2,
        createFunctionName := "EPTF_ExecCtrl_Test_Functions.f_ExecCtrl_Test_createDefaultLGenWithSpecIdWithFSMStatsLive"
      }
    }
  }
}

const EPTF_ExecCtrl_LGenPool_Declarators c_EPTF_ExecCtrl_Test_slowLGenPool_Declarators := {
  {
    name := c_EPTF_ExecCtrl_Test_defaultLGenPoolName,
    lgenPoolItems := {
      {
        hostname := "localhost",
        num := 5,
        createFunctionName := "EPTF_ExecCtrl_Test_Functions.f_ExecCtrl_Test_createDefaultLGenWithSpeed"
      }
    }
  }
}

// {Delta statistics}: 
const EPTF_ExecCtrl_LGenPool_Declarators c_EPTF_ExecCtrl_Test_DeltaStatLGenPool_Declarators := {
  {
    name := c_EPTF_ExecCtrl_Test_defaultLGenPoolName,
    lgenPoolItems := {
      {
        hostname := "localhost",
        num := 5,
        createFunctionName := "EPTF_ExecCtrl_Test_Functions.f_ExecCtrl_Test_createDefaultLGenDeltaStat"
      }
    }
  }
}


const charstring c_EPTF_ExecCtrl_Test_defaultMainWindow_str:= "<Widgets xmlns='http://ttcn.ericsson.se/protocolModules/xtdp/xtdl'>\n\t<window height='800.000000' id='EPTF_Main_Window' orientation='vertical' title='TTCN constructed window' width='800.000000'>\n\t\t<hbox orientation='vertical'>\n\t\t\t<tabpages id='EPTF_Main_tabbox'/>\n\t\t</hbox>\n\t</window>\n</Widgets>\n\n";

} //~group DefaultLGen


//=========================================================================
//Data Types
//=========================================================================
type record EPTF_ExecCtrl_Test_behaviorType {
  charstring bName,
  integer eCount
}

type record of EPTF_ExecCtrl_Test_behaviorType EPTF_ExecCtrl_Test_behaviorTypeList;

type record EPTF_ExecCtrl_Test_Entity {
  charstring eType,
  EPTF_CharstringList behaviors
}

type record of EPTF_ExecCtrl_Test_Entity EPTF_ExecCtrlTest_EntityList;
type set of EPTF_ExecCtrlClient_Test_CT EPTF_ExecCtrlClient_Test_CT_List;
type set of EPTF_ExecCtrlClient_UIHandler_Test_CT EPTF_ExecCtrlClient_UIHandler_CT_List;

type function EPTF_ExecCtrl_Test_Option() runs on EPTF_ExecCtrl_Test_CT;
//=========================================================================
//Component Types
//=========================================================================
type component myMTC extends EPTF_Base_CT
{
  timer t;
  var  EPTF_ExecCtrlClient_Test_CT_List  v_clients;
  var  EPTF_ExecCtrl_Test_CT             v_execCtrl;
  var  EPTF_ExecCtrl_Test_SCDataList     v_scens;
  var  EPTF_ExecCtrl_Test_SCDataList     v_scensClient;
}

type component myMTC_UI extends EPTF_UIHandler_CT, EPTF_ExecCtrl_CT, myMTC {
  var EPTF_ExecCtrl_UIHandler_Test_CT v_execCtrlUI;
  var EPTF_ExecCtrlClient_UIHandler_CT_List v_clientsUI;
  var boolean v_ready := false; 
}

type record EPTF_ExecCtrl_Test_SCData {
  charstring eGrpName,
  charstring scenName,
  charstring tcName,
  integer state,
  EPTF_ExecCtrl_TimeProfileItemList timeProfile
}

type record of EPTF_ExecCtrl_Test_SCData EPTF_ExecCtrl_Test_SCDataList;

type record EPTF_ExecCtrl_Test_Resource {
  charstring eType,
  integer available,
  integer allocated,
  integer maxAvailable,
  integer bAllocated
}

const EPTF_ExecCtrl_Test_Resource c_empty_EPTF_ExecCtrl_Test_Resource := {
  eType := "",
  available := 0,
  allocated := 0,
  maxAvailable := 0,
  bAllocated := 0
}

type record of EPTF_ExecCtrl_Test_Resource EPTF_ExecCtrl_Test_ResourceList;


type component EPTF_ExecCtrl_Test_CT extends EPTF_ExecCtrl_CT
{
  var boolean v_EPTF_ExecCtrl_Test_initialized := false;
  var integer v_EPTF_ExecCtrl_Test_statError := 0;
  // var integer v_EPTF_ExecCtrl_Test_scanState := -1;  //0: Idle, 1: Running
  timer t_test;

  var EPTF_ExecCtrl_Test_SCDataList v_EPTF_ExecCtrl_Test_scenarios := {};
  var integer v_steps := 0;
  var boolean v_EPTF_ExecCtrl_Test_CPSChangedCallback_Called := false;
  var EPTF_IntegerList v_EPTF_ExecCtrl_Test_counters :={};
  var integer v_EPTF_ExecCtrl_Test_counter := 0;
}

type component EPTF_ExecCtrlClient_Test_CT extends EPTF_ExecCtrlClient_CT
{
  var boolean v_EPTF_ExecCtrlClient_Test_initialized := false;
  var integer v_myBIdx;
  var EPTF_ExecCtrl_Test_SCDataList v_EPTF_ExecCtrlClient_Test_scenarios;
  var EPTF_ExecCtrl_TimeProfileItemList v_timeProfile;
  var integer v_trafficCount := 0;
  var boolean v_EPTF_ExecCtrlClient_Test_CPSChangedCallback_Called := false;
}

type component EPTF_ExecCtrl_UIHandler_Test_CT  extends EPTF_ExecCtrl_UIHandler_CT, EPTF_ExecCtrl_Test_CT, myMTC_UI {

}

type component EPTF_ExecCtrlClient_UIHandler_Test_CT  extends EPTF_ExecCtrlClient_UIHandler_CT, EPTF_ExecCtrlClient_Test_CT {

}

// functions and component that is needed to check expected warning messages
group CheckExpectedWarning {

  type component EPTF_CLL_ExecCtrl_Test_ExpectedWarning_CT extends EPTF_Logging_CT {
    var boolean v_ExecCtrl_Test_expectedWarningInitialized:=false;
    var boolean v_ExecCtrl_Test_expectedWarningArrived := false;
    var charstring v_ExecCtrl_Test_expectedWarningMsg:="";
  }

} // group CheckExpectedWarning

type component ExecCtrlDSClient_Test_CT extends EPTF_UIHandler_CLI_CT, EPTF_ExecCtrl_UIHandler_CT,EPTF_CLL_ExecCtrl_Test_ExpectedWarning_CT, myMTC_UI {
  var integer v_lgenId := 0;
}

type component ExecCtrlExpWarning_Test_CT extends EPTF_ExecCtrl_CT,EPTF_CLL_ExecCtrl_Test_ExpectedWarning_CT {

}


group PhaseRegulation {

  modulepar EPTF_ExecCtrl_Test_PhaseRegulationConfig tsp_ExecCtrl_Test_phaseRegulationConfig;

  type component PhaseRegulator_CT extends EPTF_LoadRegulator_CT {}
  type record of PhaseRegulator_CT PhaseRegulator_CTList;

  type component EPTF_ExecCtrlClient_TestPhaseRegulation_CT extends EPTF_ExecCtrlClient_Test_CT
  {
    var integer v_phaseRegulatedItemHash := -1;
    var EPTF_ExecCtrl_Test_PhaseRegulatedItemList v_phaseRegulatedItems := {};
  }

  type record EPTF_ExecCtrl_Test_PhaseRegulatedItem {
    charstring name,
    float expectedCps,
    float lastCps,
    boolean doCheck
  }
  type record of EPTF_ExecCtrl_Test_PhaseRegulatedItem EPTF_ExecCtrl_Test_PhaseRegulatedItemList;

  type record EPTF_ExecCtrl_Test_PhaseRegCfg {
    charstring regulatorName,
    float targetValue
  }
  type record of EPTF_ExecCtrl_Test_PhaseRegCfg EPTF_ExecCtrl_Test_PhaseRegCfgList;

  type set EPTF_ExecCtrl_Test_PhaseRegulationConfig {
    EPTF_LGenBase_TcMgmt_EntityGrpDeclaratorList eGroups,
    EPTF_LGenBase_TcMgmt_Scenarios2GrpList sc2eGroups,
    EPTF_LGenBase_TcMgmt_tcTypeDeclaratorList tcTypes,
    EPTF_LGenBase_ScenarioTypeDeclaratorList scTypes,
    EPTF_LGenBase_PhaseList_Declarators phases,
    EPTF_ExecCtrl_ScenarioGroup_Declarators scGroups,
    EPTF_ExecCtrl_Test_PhaseRegCfgList phaseRegulators,
    EPTF_ExecCtrl_RegulatedItems regulatedItems
  }

  const charstring c_EPTF_ExecCtrl_Test_itemHashName := "itemHash";
  const EPTF_ExecCtrl_Test_PhaseRegulatedItem c_EPTF_ExecCtrl_Test_PhaseRegulatedItem_init := {
    name := "",
    expectedCps := 0.0,
    lastCps := 0.0,
    doCheck := false
  }

} // group PhaseRegulation

group TR_HL20955 {

  modulepar EPTF_ExecCtrl_Test_HL20955Config tsp_ExecCtrl_Test_HL20955Config;

  type set EPTF_ExecCtrl_Test_HL20955Config {
    EPTF_LGenBase_TcMgmt_EntityGrpDeclaratorList eGroups,
    EPTF_LGenBase_TcMgmt_Scenarios2GrpList sc2eGroups,
    EPTF_LGenBase_TcMgmt_tcTypeDeclaratorList tcTypes,
    EPTF_LGenBase_ScenarioTypeDeclaratorList scTypes,
    EPTF_ExecCtrl_TimeProfileDescrList timeProfileDescrList,
    EPTF_ExecCtrl_TimeProfileList timeProfileList,
    EPTF_ExecCtrl_TimeProfile2TcList timeProfile2TcList
  }

} // group TR_HL20955

group ExecTimeForSmallCPS {
  modulepar EPTF_ExecCtrl_Test_HL20955Config tsp_ExecCtrl_Test_ExecTimeForSmallCPSConfig;
  modulepar EPTF_ExecCtrl_Test_HL20955Config tsp_ExecCtrl_Test_ExecTimeForZeroCPSConfig;
} // group ExecTimeForSmallCPS

// group GroupFinishAction{
//   type set EPTF_ExecCtrl_Test_LoadConfig {
//     EPTF_LGenBase_TcMgmt_EntityGrpDeclaratorList eGroups,
//     EPTF_LGenBase_TcMgmt_Scenarios2GrpList sc2eGroups,
//     EPTF_LGenBase_TcMgmt_tcTypeDeclaratorList tcTypes,
//     EPTF_LGenBase_ScenarioTypeDeclaratorList scTypes,
//     EPTF_ExecCtrl_TimeProfileDescrList timeProfileDescrList optional,
//     EPTF_ExecCtrl_TimeProfileList timeProfileList optional,
//     EPTF_ExecCtrl_TimeProfile2TcList timeProfile2TcList optional
//   }
// }

group DefaultScenarios {

const charstring c_EPTF_ExecCtrl_DefaultScenarios_eGrpName := "DefaultEGrp";
const charstring c_EPTF_ExecCtrl_DefaultScenarios_scNameNormal := "DefaultSc";
const charstring c_EPTF_ExecCtrl_DefaultScenarios_scNameWeighted := "DefaultWSc";
const charstring c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName := "DefaultTcType";
const charstring c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 := "DefaultTC1";
const charstring c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2 := "DefaultTC2";
const charstring c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc3 := "DefaultTC3";
const charstring c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc4 := "DefaultTC4";
const charstring c_EPTF_ExecCtrl_DefaultScenarios_scGrpName := "DefaultScGroup";
const charstring c_EPTF_ExecCtrl_DefaultScenarios_scGrpName_IMS := "DefaultScGroup_IMS";
const integer c_EPTF_ExecCtrl_DefaultScenarios_eGrpSize := 100;

const EPTF_LGenBase_TcMgmt_EntityGrpDeclaratorList c_EPTF_ExecCtrl_DefaultScenarios_EGrpList :={{
    name := c_EPTF_ExecCtrl_DefaultScenarios_eGrpName,
    eType := c_EPTF_ExecCtrl_Test_defaultETypeName,
    eCount := c_EPTF_ExecCtrl_DefaultScenarios_eGrpSize
  }}

const EPTF_LGenBase_TcMgmt_Scenarios2GrpList c_EPTF_ExecCtrl_DefaultScenarios_Scenarios2GrpList := {
  {
    eGrpName := c_EPTF_ExecCtrl_DefaultScenarios_eGrpName,
    scenarioNames := {
      c_EPTF_ExecCtrl_DefaultScenarios_scNameNormal
    }
  },
  {
    eGrpName := c_EPTF_ExecCtrl_DefaultScenarios_eGrpName,
    scenarioNames := {
      c_EPTF_ExecCtrl_DefaultScenarios_scNameWeighted
    }
  }
}

// const EPTF_ExecCtrl_ScenarioInstanceTypeList c_EPTF_ExecCtrl_DefaultScenarios_ScenarioInstanceTypeList := {
//   {c_EPTF_ExecCtrl_DefaultScenarios_scNameNormal, c_EPTF_ExecCtrl_DefaultScenarios_eGrpName, c_EPTF_ExecCtrl_DefaultScenarios_scNameNormal},
//   {c_EPTF_ExecCtrl_DefaultScenarios_scNameWeighted, c_EPTF_ExecCtrl_DefaultScenarios_eGrpName, c_EPTF_ExecCtrl_DefaultScenarios_scNameWeighted}
// }

const EPTF_LGenBase_TcMgmt_tcTypeDeclarator2 c_EPTF_ExecCtrl_DefaultScenarios_defaultTCType := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName,
  fsmName := c_EPTF_ExecCtrl_Test_defaultFSMName,
  entityType := c_EPTF_ExecCtrl_Test_defaultETypeName,
  customEntitySucc := ""
}

const EPTF_LGenBase_ScenarioTypeDeclarator c_EPTF_ExecCtrl_DefaultScenarios_normalScenario := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_scNameNormal,
  tcList := {
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := false},
        {target := {cpsToReach := 10.0} }
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {cpsToReach := 10.0} }
      }
    }
  },
  scParamsList := {
    {enabled := true}
  }
}

const EPTF_LGenBase_ScenarioTypeDeclarator c_EPTF_ExecCtrl_DefaultScenarios_weightedScenario := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_scNameWeighted,
  tcList := {
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := false},
        {target := {trafficWeight := 1.0} }
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {trafficWeight := 3.0} }
      }
    }
  },
  scParamsList := {
    {weightedScData := {
        cpsToReach := 10.0,
        lockCPS := false,
        deterministicMix := false,
        scheduler := omit
      }
    },
    {enabled := true}
  }
}

// phases:

const charstring c_EPTF_ExecCtrl_DefaultScenarios_scInScGrpNameNormal := "DefaultScInScGrp";
const charstring c_EPTF_ExecCtrl_DefaultScenarios_scInScGrpNameWeighted := "DefaultWScInScGrp";
const charstring c_EPTF_ExecCtrl_DefaultScenarios_scInScGrpNameNormal_IMS := "DefaultScInScGrp_IMS";

const EPTF_LGenBase_TcMgmt_Scenarios2GrpList c_EPTF_ExecCtrl_DefaultScenarios_Scenarios2GrpList_scGroups := {
  {
    eGrpName := c_EPTF_ExecCtrl_DefaultScenarios_eGrpName,
    scenarioNames := {
      c_EPTF_ExecCtrl_DefaultScenarios_scInScGrpNameNormal
    }
  },
  {
    eGrpName := c_EPTF_ExecCtrl_DefaultScenarios_eGrpName,
    scenarioNames := {
      c_EPTF_ExecCtrl_DefaultScenarios_scInScGrpNameWeighted
    }
  }
}

const EPTF_LGenBase_TcMgmt_Scenarios2GrpList c_EPTF_ExecCtrl_DefaultScenarios_Scenarios2GrpList_scGroups_IMS := {
  {
    eGrpName := c_EPTF_ExecCtrl_DefaultScenarios_eGrpName,
    scenarioNames := {
      c_EPTF_ExecCtrl_DefaultScenarios_scInScGrpNameNormal_IMS
    }
  }
}

const EPTF_LGenBase_PhaseList_Declarators c_EPTF_ExecCtrl_DefaultScenarios_phases := {
  {
    name := "DefaultPhases",
    phases :=
    {
      { name := "phase1", enabled := true },
      { name := "phase2" , enabled := true },
      { name := "phase3",enabled := true }
    }
  }
}

const EPTF_ExecCtrl_ScenarioGroup_Declarators c_EPTF_ExecCtrl_DefaultScenarios_scGroups := {
      {
        name := c_EPTF_ExecCtrl_DefaultScenarios_scGrpName,
        execMode := AUTOMATIC,
        scenarioNames := {
          c_EPTF_ExecCtrl_DefaultScenarios_eGrpName&"."&c_EPTF_ExecCtrl_DefaultScenarios_scInScGrpNameNormal,
          c_EPTF_ExecCtrl_DefaultScenarios_eGrpName&"."&c_EPTF_ExecCtrl_DefaultScenarios_scInScGrpNameWeighted
        },
        phaseListName := "DefaultPhases"
      }
    }

const EPTF_LGenBase_ScenarioTypeDeclarator c_EPTF_ExecCtrl_DefaultScenarios_normalScenarioInScGrp := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_scInScGrpNameNormal,
  tcList := {
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {cpsToReach := 10.0} },
        {trafficStartFinish := {
            {nrOfExecStart := {count := 200,actions := {}}}
          }
        }
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {cpsToReach := 10.0} },
        {trafficStartFinish := {
            {execTime := {time := 30.0,actions := {}}}
          }
        }
      }
    }
  },
  scParamsList := {
    {enabled := true},
    {phaseListName := "DefaultPhases"},
    {phaseFinishConditions := {
        {
          phase := "phase1",
          conditions := {
            { tcFinished := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 }
          }
        },
        {
          phase := "phase2",
          conditions := {
            { tcFinished := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2 }
          }
        },
        {
          phase := "phase3",
          conditions := {
            { tcFinished := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 }
          }
        }
      }
    },
    {phaseStateChangeActions := {
        {
          phase := "phase1",
          state := RUNNING,
          actions := {
            { startScenario:="Sc" }
          }
        },
        {
          phase := "phase2",
          state := RUNNING,
          actions := {
            { stopTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 }
          }
        },
        {
          phase := "phase3",
          state := RUNNING,
          actions := {
            { startTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 }
          }
        },
        {
          phase := "phase1",
          state := STOPPING,
          actions := {
            { stopScenario:="Sc" }
          }
        },
        {
          phase := "phase2",
          state := STOPPING,
          actions := {
            { stopScenario:="Sc" }
          }
        },
        {
          phase := "phase3",
          state := STOPPING,
          actions := {
            { stopScenario:="Sc" }
          }
        }
      }
    }
  }
}

// This config is based on the IMS CallTerm_ReINVITE config
// TC1: Registration, TC2: reRegistration, TC3: deRegistration, TC4: CallTerm
// phase1: preamble, phase2: loadgen, phase3: postamble
const EPTF_LGenBase_ScenarioTypeDeclarator c_EPTF_ExecCtrl_DefaultScenarios_normalScenarioInScGrp_IMS := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_scInScGrpNameNormal_IMS,
  tcList := {
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := false},
        {target := {cpsToReach := 10.0} },
        {trafficStartFinish := {
            {availableEntitiesFinished := {actions := {}}}
          }
        },
        {entityFinishConditions := {
          {nrOfSuccesses := 1},
          {nrOfFails := 1}
        }},
        {entityFinishActions := {
          {
             enableEntity4Tc := {
                             tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2,
                             aMode := enableIfPreviousSuccess 
                            } 
          },
          {
             enableEntity4Tc := {
                             tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc3,
                             aMode := enableIfPreviousSuccess
                            } 
          },
          {
             enableEntity4Tc := {
                             tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc4,
                             aMode := enableIfPreviousSuccess
                            } 
          } 
        }}
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {startDelay := 0.1},
        {enableEntitiesAtStart := false},
        {enabledAtStart := false},
        {target := {cpsToReach := 10.0} },
        {trafficStartFinish := {
            //{execTime := {time := 60.0,actions := {}}}
          }
        }
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc3,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := false},
        {enabledAtStart := false},
        {target := {cpsToReach := 10.0} },
        {trafficStartFinish := {
            {availableEntitiesFinished := {actions := {}}}
          }
        },
        {entityFinishConditions := {
          {nrOfSuccesses := 1},
          {nrOfFails := 3}
        }}
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc4,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := false},
        {enabledAtStart := false},
        {target := {cpsToReach := 10.0} },
        {trafficStartFinish := {
            {execTime := {time := 60.0,actions := {}}}
          }
        }
      }
    }
  },
  scParamsList := {
    {enabled := true},
    {phaseListName := "DefaultPhases"},
    {phaseFinishConditions := {
        {
          phase := "phase1",
          conditions := {
            { tcFinished := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 }
          }
        },
        {
          phase := "phase2",
          conditions := {
            { tcFinished := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc4 }
          }
        },
        {
          phase := "phase3",
          conditions := {
            { tcFinished := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc3 }
          }
        }
      }
    },
    {phaseStateChangeActions := {
        {
          phase := "phase1",
          state := RUNNING,
          actions := {
            { startTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 },
            { startTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2 }
          }
        },
        {
          phase := "phase1",
          state := STOPPING,
          actions := {
            { stopTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 },
            { startTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc3 },
            { disableTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2 }
          }
        },
        {
          phase := "phase1",
          state := SKIPPING,
          actions := {
            { reportActualPhaseFinished := "" }
          }
        },
        {
          phase := "phase2",
          state := RUNNING,
          actions := {
            { startTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc4 }
          }
        },
        {
          phase := "phase2",
          state := STOPPING,
          actions := {
            { disableTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc4 }
          }
        },
        {
          phase := "phase2",
          state := SKIPPING,
          actions := {
            { reportActualPhaseFinished := "" }
          }
        },
        {
          phase := "phase3",
          state := RUNNING,
          actions := {
            { startTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc3 }
          }
        },
        {
          phase := "phase3",
          state := STOPPING,
          actions := {
            { disableTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc3 }
          }
        },
        {
          phase := "phase2",
          state := SKIPPING,
          actions := {
            { reportActualPhaseFinished := "" }
          }
        },
        {
          phase := "phase3",
          state := FINISHED,
          actions := {
            { disableTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc3 },
            { disableTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2 },
            { stopScenario := "" } 
          }
        }
      }
    }
  }
}

const EPTF_ExecCtrl_ScenarioGroup_Declarators c_EPTF_ExecCtrl_DefaultScenarios_scGroups_IMS := {
      {
        name := c_EPTF_ExecCtrl_DefaultScenarios_scGrpName_IMS,
        execMode := AUTOMATIC,
        scenarioNames := {
          c_EPTF_ExecCtrl_DefaultScenarios_eGrpName&"."&c_EPTF_ExecCtrl_DefaultScenarios_scInScGrpNameNormal_IMS
        },
        phaseListName := "DefaultPhases"
      }
    }

const EPTF_LGenBase_ScenarioTypeDeclarator c_EPTF_ExecCtrl_DefaultScenarios_weightedScenarioInScGrp := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_scInScGrpNameWeighted,
  tcList := {
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {trafficWeight := 1.0} },
        {trafficStartFinish := {
            {nrOfExecStart := {count := 200,actions := {}}}
          }
        }
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {trafficWeight := 3.0} },
        {trafficStartFinish := {
            {execTime := {time := 20.0,actions := {}}}
          }
        }
      }
    }
  },
  scParamsList := {
    {weightedScData := {
        cpsToReach := 10.0,
        lockCPS := false,
        deterministicMix := false,
        scheduler := omit
      }
    },
    {enabled := true},
    {phaseListName := "DefaultPhases"},
    {phaseFinishConditions := {
        {
          phase := "phase1",
          conditions := {
            { tcFinished := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2 }
          }
        },
        {
          phase := "phase2",
          conditions := {
            //{ scenarioFinished := "" }
            { tcFinished := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 }
          }
        },
        {
          phase := "phase3",
          conditions := {
            //{ scenarioFinished := "" }
            { tcFinished := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 }
          }
        }
      }
    },
    {phaseStateChangeActions := {
        {
          phase := "phase1",
          state := RUNNING,
          actions := {
            { startScenario:="Sc" }
          }
        },
        {
          phase := "phase2",
          state := RUNNING,
          actions := {
            //{ startScenario:="Sc" }
            //{ stopTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 },
            //{ startTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2 }
          }
        },
        {
          phase := "phase3",
          state := RUNNING,
          actions := {
            //{ startScenario:="Sc" }
            { startTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 }
          }
        },
        {
          phase := "phase1",
          state := STOPPING,
          actions := {
            { stopScenario:="Sc" }
          }
        },
        {
          phase := "phase2",
          state := STOPPING,
          actions := {
            { stopScenario:="Sc" }
          }
        },
        {
          phase := "phase3",
          state := STOPPING,
          actions := {
            { stopScenario:="Sc" }
          }
        }
      }
    }
  }
}

const EPTF_ExecCtrl_EntityGroup2LGenPool_List c_EPTF_ExecCtrl_DefaultScenarios_EntityGroup2LGenPool_List := {
  {
    eGrpName := c_EPTF_ExecCtrl_DefaultScenarios_eGrpName,
    lgenPoolName := c_EPTF_ExecCtrl_Test_defaultLGenPoolName
  }
}

const charstring c_EPTF_ExecCtrl_DefaultRegulatorName := "DefaultRegulator";

const EPTF_ExecCtrl_RegulatedItems c_EPTF_ExecCtrl_DefaultRegulatedItems := {
  {
    idName := {
      cps_TC := {
        eGrpName := c_EPTF_ExecCtrl_DefaultScenarios_eGrpName,
        scName := c_EPTF_ExecCtrl_DefaultScenarios_scNameNormal,
        tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2
      }
    },
    weight := 1.0,
    enabled := true,
    regulatorName := c_EPTF_ExecCtrl_DefaultRegulatorName
  },
  {
    idName := {
      cps_SC := {
        eGrpName := c_EPTF_ExecCtrl_DefaultScenarios_eGrpName,
        scName := c_EPTF_ExecCtrl_DefaultScenarios_scNameWeighted
      }
    },
    weight := 1.0,
    enabled := true,
    regulatorName := c_EPTF_ExecCtrl_DefaultRegulatorName
  }
}

} //~group DefaultScenarios

group ScenarioWithFSM_HN12034 {
// tcTypeName is not declared, FSM is given in the Scenario declarator/TCParams/fsmList:
const EPTF_LGenBase_ScenarioTypeDeclarator c_EPTF_ExecCtrl_DefaultScenarios_normalScenarioWithFSM := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_scNameNormal,
  tcList := {
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1,
      tcParamsList := {
        //{tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {fsmList := {c_EPTF_ExecCtrl_Test_defaultFSMName}},
        {enableEntitiesAtStart := true},
        {enabledAtStart := false},
        {target := {cpsToReach := 10.0} }
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2,
      tcParamsList := {
        //{tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {fsmList := {c_EPTF_ExecCtrl_Test_defaultFSMName}},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {cpsToReach := 10.0} }
      }
    }
  },
  scParamsList := {
    {enabled := true}
  }
}

const EPTF_LGenBase_ScenarioTypeDeclarator c_EPTF_ExecCtrl_DefaultScenarios_weightedScenarioWithFSM := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_scNameWeighted,
  tcList := {
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1,
      tcParamsList := {
        //{tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {fsmList := {c_EPTF_ExecCtrl_Test_defaultFSMName}},
        {enableEntitiesAtStart := true},
        {enabledAtStart := false},
        {target := {trafficWeight := 1.0} }
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2,
      tcParamsList := {
        //{tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {fsmList := {c_EPTF_ExecCtrl_Test_defaultFSMName}},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {trafficWeight := 3.0} }
      }
    }
  },
  scParamsList := {
    {weightedScData := {
        cpsToReach := 10.0,
        lockCPS := false,
        deterministicMix := false,
        scheduler := omit
      }
    },
    {enabled := true}
  }
}

const EPTF_LGenBase_ScenarioTypeDeclarator c_EPTF_ExecCtrl_DefaultScenarios_normalScenarioInScGrpWithFSM := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_scInScGrpNameNormal,
  tcList := {
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1,
      tcParamsList := {
        //{tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {fsmList := {c_EPTF_ExecCtrl_Test_defaultFSMName}},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {cpsToReach := 10.0} },
        {trafficStartFinish := {
            {nrOfExecStart := {count := 200,actions := {}}}
          }
        }
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2,
      tcParamsList := {
        //{tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {fsmList := {c_EPTF_ExecCtrl_Test_defaultFSMName}},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {cpsToReach := 10.0} },
        {trafficStartFinish := {
            {execTime := {time := 30.0,actions := {}}}
          }
        }
      }
    }
  },
  scParamsList := {
    {enabled := true},
    {phaseListName := "DefaultPhases"},
    {phaseFinishConditions := {
        {
          phase := "phase1",
          conditions := {
            { tcFinished := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 }
          }
        },
        {
          phase := "phase2",
          conditions := {
            { tcFinished := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2 }
          }
        },
        {
          phase := "phase3",
          conditions := {
            { tcFinished := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 }
          }
        }
      }
    },
    {phaseStateChangeActions := {
        {
          phase := "phase1",
          state := RUNNING,
          actions := {
            { startScenario:="Sc" }
          }
        },
        {
          phase := "phase2",
          state := RUNNING,
          actions := {
            { stopTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 }
          }
        },
        {
          phase := "phase3",
          state := RUNNING,
          actions := {
            { startTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 }
          }
        },
        {
          phase := "phase1",
          state := STOPPING,
          actions := {
            { stopScenario:="Sc" }
          }
        },
        {
          phase := "phase2",
          state := STOPPING,
          actions := {
            { stopScenario:="Sc" }
          }
        },
        {
          phase := "phase3",
          state := STOPPING,
          actions := {
            { stopScenario:="Sc" }
          }
        }
      }
    }
  }
}

const EPTF_LGenBase_ScenarioTypeDeclarator c_EPTF_ExecCtrl_DefaultScenarios_weightedScenarioInScGrpWithFSM := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_scInScGrpNameWeighted,
  tcList := {
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1,
      tcParamsList := {
        //{tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {fsmList := {c_EPTF_ExecCtrl_Test_defaultFSMName}},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {trafficWeight := 1.0} },
        {trafficStartFinish := {
            {nrOfExecStart := {count := 200,actions := {}}}
          }
        }
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2,
      tcParamsList := {
        //{tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {fsmList := {c_EPTF_ExecCtrl_Test_defaultFSMName}},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {trafficWeight := 3.0} },
        {trafficStartFinish := {
            {execTime := {time := 20.0,actions := {}}}
          }
        }
      }
    }
  },
  scParamsList := {
    {weightedScData := {
        cpsToReach := 10.0,
        lockCPS := false,
        deterministicMix := false,
        scheduler := omit
      }
    },
    {enabled := true},
    {phaseListName := "DefaultPhases"},
    {phaseFinishConditions := {
        {
          phase := "phase1",
          conditions := {
            { tcFinished := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2 }
          }
        },
        {
          phase := "phase2",
          conditions := {
            //{ scenarioFinished := "" }
            { tcFinished := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 }
          }
        },
        {
          phase := "phase3",
          conditions := {
            //{ scenarioFinished := "" }
            { tcFinished := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 }
          }
        }
      }
    },
    {phaseStateChangeActions := {
        {
          phase := "phase1",
          state := RUNNING,
          actions := {
            { startScenario:="Sc" }
          }
        },
        {
          phase := "phase2",
          state := RUNNING,
          actions := {
            //{ startScenario:="Sc" }
            //{ stopTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 },
            //{ startTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2 }
          }
        },
        {
          phase := "phase3",
          state := RUNNING,
          actions := {
            //{ startScenario:="Sc" }
            { startTc := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1 }
          }
        },
        {
          phase := "phase1",
          state := STOPPING,
          actions := {
            { stopScenario:="Sc" }
          }
        },
        {
          phase := "phase2",
          state := STOPPING,
          actions := {
            { stopScenario:="Sc" }
          }
        },
        {
          phase := "phase3",
          state := STOPPING,
          actions := {
            { stopScenario:="Sc" }
          }
        }
      }
    }
  }
}

} // group ScenarioWithFSM_HN12034

group EPTF_ExecCtrl_Test_SmallCPSDistribution {

type component ExecCtrl_Test_SmallCPSDistribution_CT extends EPTF_UIHandler_CLI_CT, EPTF_ExecCtrl_UIHandler_CT, EPTF_StatMeasure_CT {
  var boolean vl_startTest := false;
  var float v_expectedCPSPerLGen := 0.0;  
}

type component ExecCtrl_Test_SmallCPSDistribution_LGen_CT extends EPTF_ExecCtrlClient_CT {
  var EPTF_FloatList v_startTimes := {};
  var float v_expectedCPS := 0.0;
}

const integer c_EPTF_ExecCtrl_Test_SmallCPSDistribution_nofVarRefresh := 10;
const integer c_EPTF_ExecCtrl_Test_SmallCPSDistribution_nofLGenRefresh := 2;
const float c_EPTF_ExecCtrl_Test_SmallCPSDistribution_expected_devDeltaStarts := 0.0;
const float c_EPTF_ExecCtrl_Test_SmallCPSDistribution_expected_devEpsDeltaStarts := 0.0;
const charstring c_EPTF_ExecCtrl_Test_SmallCPSDistribution_startTimeMeasure_stepName := "c_EPTF_ExecCtrl_Test_SmallCPSDistribution_startTimeMeasure_stepName";

const EPTF_LGenBase_FsmTableDeclarator c_EPTF_ExecCtrl_Test_startTimeMeasurementFSM :=  
{
  name := c_EPTF_ExecCtrl_Test_defaultFSMName,
  fsmParams := {
    {stateList := {"idle"}}
  },
  table := {
    classicTable := {
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_startTC,fsm},
        cellRow := {{{
              {c_EPTF_ExecCtrl_Test_SmallCPSDistribution_startTimeMeasure_stepName, omit},
              {c_EPTF_LGenBase_stepName_trafficSuccess, omit}
            }, omit, omit}}
      },        
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_stopTC,fsm},
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_entityStopped, omit}
            }, omit, omit}}
      },        
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_abortTC,fsm},
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_entityAborted, omit}
            }, omit, omit}}
      }        
    }
  }
}

} // group EPTF_ExecCtrl_Test_SmallCPSDistribution


// {Delta statistics}: 
group EPTF_ExecCtrl_Test_DeltaStatFSM {

type record of integer EPTF_ExecCtrl_Test_deltaValueList;
type record of EPTF_ExecCtrl_Test_deltaValueList EPTF_ExecCtrl_Test_deltaValueListList;

const charstring c_EPTF_ExecCtrl_Test_deltaStatFSMName := "deltaStatFSM";
const EPTF_LGenBase_FsmTableDeclarator c_EPTF_ExecCtrl_Test_deltaStatFSM :=  
{
  name := c_EPTF_ExecCtrl_Test_deltaStatFSMName,
  fsmParams := {
    {stateList := {"idle", "sleep", "busy"}},
    {timerList := {{"fsm_succesTimer",0.5}, {"fsm_failTimer",0.4}, {"fsm_timeoutTimer",0.3}, {"fsm_errorTimer",0.2}}}
  },
  table := {
    classicTable := {
      // --------------------------------------------------
      // Success [0]
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_startTC,fsm},
        cellRow := {
          // idle[0]
          {{
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_succesTimer"}},
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_failTimer"}},
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_timeoutTimer"}},
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_errorTimer"}}
          }, omit, "busy" },
          // sleep[1]
          { omit, omit, "busy"}  ,
          // busy[2]
          { omit, omit, "idle"}
        }
      },         
      // [1]           
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_stopTC,fsm},
        cellRow := {
            // idle[0]
            {{
              {c_EPTF_LGenBase_stepName_entityStopped, omit}
            }, omit, omit},
            // sleep[1]
            {{
              {c_EPTF_LGenBase_stepName_entityStopped, omit}
            }, omit, "idle"} ,
            // busy[2]
            {{
              {c_EPTF_LGenBase_stepName_entityStopped, omit}
            }, omit, "idle"}            
        }
      },   
      // [2]     
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_abortTC,fsm},
        cellRow := {
            // idle[0]
            {{
              {c_EPTF_LGenBase_stepName_entityAborted, omit}
            }, omit, omit},
            // sleep[1]
            {{
              {c_EPTF_LGenBase_stepName_entityAborted, omit}
            }, omit, "idle"} ,
            // busy[2]
            {{
              {c_EPTF_LGenBase_stepName_entityAborted, omit}
            }, omit, "idle"}            
        }
      },
      // [3]
      { eventToListen := {c_EPTF_LGenBase_specialBName_timerTimeout,"fsm_succesTimer",fsm},
        cellRow := {
          // idle[0]
          {{
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_succesTimer"}}
          }, omit, omit },
          // sleep[1]
          { {
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_succesTimer"}}
          }, omit, omit},
          // busy[2]
          { {
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_succesTimer"}},
              {c_EPTF_LGenBase_stepName_trafficSuccess, omit}
          }, omit, "sleep"}  
        }
      },    
      // --------------------------------------------------
      // Fail [4]
      { eventToListen := {c_EPTF_LGenBase_specialBName_timerTimeout,"fsm_failTimer",fsm},
        cellRow := {
          // idle[0]
          {{
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_failTimer"}}
          }, omit, omit },
          // sleep[1]
          { {
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_failTimer"}}
          }, omit, omit},
          // busy[2]
          { {
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_failTimer"}},
              {c_EPTF_LGenBase_stepName_trafficFailed, omit}
          }, omit, "sleep"}  
        }
      },    
      // --------------------------------------------------
      // Timeout [5]
      { eventToListen := {c_EPTF_LGenBase_specialBName_timerTimeout,"fsm_timeoutTimer",fsm},
        cellRow := {
          // idle[0]
          {{
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_timeoutTimer"}}
          }, omit, omit },
          // sleep[1]
          { {
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_timeoutTimer"}}
          }, omit, omit},
          // busy[2]
          { {
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_timeoutTimer"}},
              {c_EPTF_LGenBase_stepName_trafficTimeout, omit}
          }, omit, "sleep"}  
        }
      },    
      // --------------------------------------------------
      // Error [6]    
      { eventToListen := {c_EPTF_LGenBase_specialBName_timerTimeout,"fsm_errorTimer",fsm},
        cellRow := {
          // idle[0]
          {{
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_errorTimer"}}
          }, omit, omit },
          // sleep[1]
          { {
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_errorTimer"}}
          }, omit, omit},
          // busy[2]
          { {
              {c_EPTF_LGenBase_stepName_timerStart,{timerName := "fsm_errorTimer"}},
              {c_EPTF_LGenBase_stepName_trafficError, omit}
          }, omit, "sleep"}  
        }
      }       
    }
  }
}

const EPTF_LGenBase_TcMgmt_tcTypeDeclarator2 c_EPTF_ExecCtrl_DeltaStatScenarios_defaultTCType := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName,
  fsmName := c_EPTF_ExecCtrl_Test_deltaStatFSMName,
  entityType := c_EPTF_ExecCtrl_Test_defaultETypeName,
  customEntitySucc := ""
}

const charstring c_EPTF_ExecCtrl_Test_deltaStatVarBase := "EPTF_ExecCtrl.Statistics.EG.DefaultEGrp.SC.DefaultSc.TC.DefaultTC2";

} // group EPTF_ExecCtrl_Test_DeltaStatFSM

//=========================================================================
//Constants
//=========================================================================
const charstring  c_myApplib_bType := "DUMMY_applib"
const charstring c_myApplibB_bType := "moreDUMMY_applib"
//steps
const integer c_myApplib_stepIdx_action1 := 0
const charstring c_myApplib_stepName_action1 := "TEST_STEP1"
const integer c_myApplib_stepIdx_action2 := 1
const charstring c_myApplib_stepName_action2 := "TEST_STEP2"
//inputs
const integer  c_myApplib_inputIdx_doAction1 := 0
const charstring c_myApplib_inputName_doAction1 := "TEST_INPUTS"
//fsms
const integer c_myApplib_fsmIdx_basicFSM := 0
const integer c_myApplib_fsmIdx_basicFSM2 := 1


const EPTF_LGenBase_ScenarioTypeDeclarator c_EPTF_ExecCtrl_DefaultScenarios_normalScenario_smallCPS_FirstCallTime := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_scNameNormal,
  tcList := {
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {cpsToReach := 1e-4} }
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {cpsToReach := 1e-5} }
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2&"_6",
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {cpsToReach := 1e-6} }
      }
    }
  },
  scParamsList := {
    {enabled := true}
  }
}

const EPTF_LGenBase_ScenarioTypeDeclarator c_EPTF_ExecCtrl_DefaultScenarios_normalScenario_smallCPS_FirstCallTime_withGroupFinishCondition := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_scNameNormal,
  tcList := {
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {cpsToReach := 1e-4} },
        {trafficStartFinish := {
            {nrOfExecStart := {count := 1,actions := {}}}
          }
        }
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {cpsToReach := 1e-5} },
        {trafficStartFinish := {
            {nrOfExecStart := {count := 1,actions := {}}}
          }
        }
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2&"_6",
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {cpsToReach := 1e-6} },
        {trafficStartFinish := {
            {nrOfExecStart := {count := 1,actions := {}}}
          }
        }
      }
    }
  },
  scParamsList := {
    {enabled := true}
  }
}

const EPTF_ExecCtrl_LGenPool_Declarators c_EPTF_ExecCtrl_Test_defaultLGenPoolWithSpecId_Declarators_withGroupFinishCondition := {
  {
    name := c_EPTF_ExecCtrl_Test_defaultLGenPoolName,
    lgenPoolItems := {
      {
        hostname := "localhost",
        num := 4,
        createFunctionName := "EPTF_ExecCtrl_Test_Functions.f_ExecCtrl_Test_createDefaultLGenWithSpecId"
      }
    }
  }
}


group EPTF_ExecCtrl_Test_tcFailForNotRunning {

const charstring c_EPTF_ExecCtrl_Test_tcFailForNotRunningFSMName := "tcFailForNotRunningFSM";
const EPTF_LGenBase_FsmTableDeclarator c_EPTF_ExecCtrl_Test_tcFailForNotRunning_FSM :=  
{
  name := c_EPTF_ExecCtrl_Test_tcFailForNotRunningFSMName,
  fsmParams := {
    {stateList := {"idle"}},
    {timerList := {
      {name := "successTimer",startValue := 2.0}, //success event is reported after this time, traffic finished
      {name := "failTimer",startValue := 3.0} //fail event is reported after this time
    }}
  },
  table := {
    classicTable := {
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_startTC,general},
        cellRow := {{{
              {stepOrFunctionName := "LGenBase: StepFunction_timerStart", contextArgs := {timerName := "successTimer"}} //f_EPTF_LGenBase_step_timerStart
            }, omit, omit}}
      },        
      { eventToListen := { bName := "Special behavior for timeout reporting", iName := "successTimer", eventType := fsm },
        cellRow := {{{
              {stepOrFunctionName := "LGenBase: StepFunction_timerStart", contextArgs := {timerName := "failTimer"}}, //f_EPTF_LGenBase_step_timerStart
              {c_EPTF_LGenBase_stepName_trafficSuccess, omit}
            }, omit, omit}}
      },
      { eventToListen := { bName := "Special behavior for timeout reporting", iName := "failTimer", eventType := fsm },
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_trafficFailed, omit}
            }, omit, omit}}
      },
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_stopTC,fsm},
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_entityStopped, omit}
            }, omit, omit}}
      },        
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_abortTC,fsm},
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_entityAborted, omit}
            }, omit, omit}}
      }        
    }
  }
}

const EPTF_LGenBase_TcMgmt_tcTypeDeclarator2 c_EPTF_ExecCtrl_DefaultScenarios_tcFailForNotRunningTCType := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName,
  fsmName := c_EPTF_ExecCtrl_Test_tcFailForNotRunningFSMName,
  entityType := c_EPTF_ExecCtrl_Test_defaultETypeName,
  customEntitySucc := ""
}

const EPTF_ExecCtrl_LGenPool_Declarators c_EPTF_ExecCtrl_Test_tcFailForNotRunningLGenPool_Declarators := {
  {
    name := c_EPTF_ExecCtrl_Test_defaultLGenPoolName,
    lgenPoolItems := {
      {
        hostname := "localhost",
        num := 2,
        createFunctionName := "EPTF_ExecCtrl_Test_Functions.f_ExecCtrl_Test_createTcFailForNotRunningLGen"
      }
    }
  }
}

} // group EPTF_ExecCtrl_Test_tcFailForNotRunning

group EPTF_ExecCtrl_Test_cpsProblem {

const charstring c_EPTF_ExecCtrl_Test_cpsProblemFSMName := "cpsProblemFSM";
const EPTF_LGenBase_FsmTableDeclarator c_EPTF_ExecCtrl_Test_cpsProblem_FSM :=  
{
  name := c_EPTF_ExecCtrl_Test_cpsProblemFSMName,
  fsmParams := {
    {stateList := {"idle"}},
    {timerList := {
      {name := "successTimer",startValue := 0.0} //success event is reported after this time, traffic finished
    }}
  },
  table := {
    classicTable := {
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_startTC,fsm},
        cellRow := {{{
              {stepOrFunctionName := "LGenBase: StepFunction_timerStart", contextArgs := {timerName := "successTimer"}} //f_EPTF_LGenBase_step_timerStart
            }, omit, omit}}
      },        
      { eventToListen := { bName := "Special behavior for timeout reporting", iName := "successTimer", eventType := fsm },
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_trafficSuccess, omit}
            }, omit, omit}}
      },

      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_stopTC,fsm},
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_entityStopped, omit}
            }, omit, omit}}
      },        
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_abortTC,fsm},
        cellRow := {{{
              {c_EPTF_LGenBase_stepName_entityAborted, omit}
            }, omit, omit}}
      }        
    }
  }
}

const EPTF_LGenBase_TcMgmt_tcTypeDeclarator2 c_EPTF_ExecCtrl_DefaultScenarios_cpsProblemTCType := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName,
  fsmName := c_EPTF_ExecCtrl_Test_cpsProblemFSMName,
  entityType := c_EPTF_ExecCtrl_Test_defaultETypeName,
  customEntitySucc := ""
}

const EPTF_ExecCtrl_LGenPool_Declarators c_EPTF_ExecCtrl_Test_cpsProblemLGenPool_Declarators := {
  {
    name := c_EPTF_ExecCtrl_Test_defaultLGenPoolName,
    lgenPoolItems := {
      {
        hostname := "localhost",
        num := 2,
        createFunctionName := "EPTF_ExecCtrl_Test_Functions.f_ExecCtrl_Test_createcpsProblemLGen"
      }
    }
  }
}

} //group EPTF_ExecCtrl_Test_cpsProblem

group EPTF_ExecCtrl_ExitDuringTrafficRun_Test {
  

  type component EPTF_ExecCtrl_ExitDuringTrafficRun_CT extends EPTF_ExecCtrlClient_CT {
    var integer v_idxBCTExitDuringTrafficRun := 0;
    var integer v_idxFSMEventExitDuringTrafficRun := 0;
  }   
  
  const charstring c_EPTF_ExecCtrl_ExitDuringTrafficRun_Test_detectCleanup := "detectCleanup"; 
  const charstring c_EPTF_ExecCtrl_ExitDuringTrafficRun_Test_detectTimeoutCleanup := "detectTimeoutCleanup"; 
  const charstring c_EPTF_ExecCtrl_ExitDuringTrafficRun_Test_detectDispatchCleanup := "detectDispatchCleanup";   
  const charstring c_EPTF_ExecCtrl_ExitDuringTrafficRun_eventName := "Test_ExitDuringTrafficRunLGen";

  const EPTF_ExecCtrl_LGenPool_Declarators c_EPTF_ExecCtrl_Test_ExitDuringTrafficRunLGen_Declarators := {
    {
      name := c_EPTF_ExecCtrl_Test_defaultLGenPoolName,
      lgenPoolItems := {
        {
          hostname := "localhost",
          num := 2,
          createFunctionName := "EPTF_ExecCtrl_Test_Functions.f_ExecCtrl_Test_createExitDuringTrafficRunLGen"
        }
      }
    }
  }  
  
  const EPTF_LGenBase_FsmTableDeclarator c_EPTF_ExecCtrl_Test_FSMExitDuringTrafficRunLGen :=  
  {
    name := c_EPTF_ExecCtrl_Test_defaultFSMName,
    fsmParams := {
      {stateList := {"idle"}},
      {timerList := { {name := "checkTimer",startValue := 1.0} } }
    },
    table := {
      classicTable := {
        { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_startTC,fsm},
          cellRow := {{{
                {c_EPTF_ExecCtrl_ExitDuringTrafficRun_Test_detectCleanup, omit},
                {stepOrFunctionName := c_EPTF_LGenBase_stepName_timerStartOrRestart, contextArgs := {timerName := "checkTimer"}},
                {c_EPTF_LGenBase_stepName_trafficSuccess, omit}
              }, omit, omit}}
        },        
        { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_stopTC,fsm},
          cellRow := {{{
                {c_EPTF_LGenBase_stepName_entityStopped, omit}
              }, omit, omit}}
        },        
        { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_abortTC,fsm},
          cellRow := {{{
                {c_EPTF_LGenBase_stepName_entityAborted, omit}
              }, omit, omit}}
        },
        { eventToListen := { bName := c_EPTF_LGenBase_specialBName_timerTimeout, iName := "checkTimer", eventType := fsm },
          cellRow := {{{
              {c_EPTF_ExecCtrl_ExitDuringTrafficRun_Test_detectTimeoutCleanup, omit},
              {stepOrFunctionName := c_EPTF_LGenBase_stepName_timerStartOrRestart, contextArgs := {timerName := "checkTimer"}}
            }, omit, omit}}
       },{ eventToListen := { bName := c_EPTF_ExecCtrl_Test_defaultBehaviorName, iName := c_EPTF_ExecCtrl_ExitDuringTrafficRun_eventName, eventType := fsm },
          cellRow := {{{
                {c_EPTF_ExecCtrl_ExitDuringTrafficRun_Test_detectDispatchCleanup, omit}
              }, omit, omit}}
        }
      }
    }
  }

} // group EPTF_ExecCtrl_ExitDuringTrafficRun_Test

group EPTF_ExecCtrl_Test_CatchDTEInTestStep {

  type component EPTF_ExecCtrl_Test_CatchDTEInTestStep_CT extends myMTC_UI,ExecCtrlDSClient_Test_CT {
  }
  
  type component EPTF_ExecCtrl_Test_CatchDTEInTestStep_LGen_CT extends EPTF_ExecCtrlClient_CT {
    var boolean vl_LGenBase_DTE_Event_wasHandled := false;
  }

  const charstring c_EPTF_ExecCtrl_Test_CatchDTEInTestStep_stepName := "CatchDTEInTestStep: generate DTE";
  const charstring c_EPTF_ExecCtrl_Test_checkEventAfterDTEInTestStep_stepName := "CatchDTEInTestStep: checkEventAfter DTE";
  const charstring c_EPTF_ExecCtrl_Test_checkStepAfterDTEInTestStep_stepName := "CatchDTEInTestStep: checkStepAfter DTE";
  const charstring c_EPTF_ExecCtrl_Test_checkStepHandleDTEEvent_stepName := "CatchDTEInTestStep: checkStepHandleDTEEvent";
  
  const EPTF_LGenBase_FsmTableDeclarator c_EPTF_ExecCtrl_Test_CatchDTEInTestStep_FSM := {
    name := "CatchDTEInTestStep_FSM",
    fsmParams := {
      {stateList := { "Idle" }},
      {timerList := {
        {name := "successTimer", startValue := 1.0},
        {name := "guardTimer", startValue := 1.10}
      }}
    },
    table := {
      extendedTable := { 
        { events2Listen := { events := { { singleEvent := { bName := "EPTF_CLL_LGenBase", iName:= "LGenBase: Start_the_traffic_case!", eventType := fsm } } } },
          cellRow := {
            statedCellRow := { 
              { inState := { state := "Idle" },
                cell := {
                  actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerStart",    contextArgs := { timerName := "guardTimer" }},
                    { stepOrFunctionName := "CatchDTEInTestStep: generate DTE",     contextArgs := { stepContextArgs := { } } },
                      
                    { stepOrFunctionName := "CatchDTEInTestStep: checkStepAfter DTE", contextArgs := { stepContextArgs := { } } },
                    { stepOrFunctionName := "LGenBase: StepFunction_timerStart",    contextArgs := { timerName := "successTimer" }}
                  },
                  nextStateCalculation := omit,
                  nextState := omit
                }  
              }             
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "Special behavior for timeout reporting", iName := "successTimer", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell := 
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancel",            contextArgs := { timerName := "guardTimer"} },
                    { stepOrFunctionName := c_EPTF_LGenBase_stepName_trafficSuccess,         contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := omit
                }
              }
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "Special behavior for timeout reporting", iName := "guardTimer", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell := 
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
                    { stepOrFunctionName := "CatchDTEInTestStep: checkEventAfter DTE",       contextArgs := { stepContextArgs := { } } },
                    { stepOrFunctionName := c_EPTF_LGenBase_stepName_trafficFailed,          contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := omit
                }
              }
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "EPTF_CLL_LGenBase", iName := "LGenBase: Dynamic_test_case_error_occured!", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell :=
                  {actionList := {
                    //{ stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
                    //{ stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "guardTimer"} },
                    { stepOrFunctionName := "CatchDTEInTestStep: checkStepHandleDTEEvent",   contextArgs := { stepContextArgs := { } } },
                    { stepOrFunctionName := "LGenBase: StepFunction_trafficTimeout",          contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := "Idle"
                }
              }
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "EPTF_CLL_LGenBase", iName := "LGenBase: Stop_the_traffic_case!", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell :=
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "guardTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_entityStopped",          contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := "Idle"
                }
              }
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "EPTF_CLL_LGenBase", iName := "LGenBase: Aborts_traffic_case!", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell :=
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "guardTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_entityAborted",          contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := "Idle"
                }
              }
            }
          }
        }
      }
    }
  }

const EPTF_ExecCtrl_LGenPool_Declarators c_EPTF_ExecCtrl_Test_CatchDTEInTestStep_LGenPool_Declarators := {
  {
    name := c_EPTF_ExecCtrl_Test_defaultLGenPoolName,
    lgenPoolItems := {
      {
        hostname := "localhost",
        num := 2,
        createFunctionName := "EPTF_ExecCtrl_Test_Functions.f_ExecCtrl_Test_catchDTEInTestStep_createLGen"
      }
    }
  }
}


////////////// DO not handle LGenBase DTE Event in FSM:

  const EPTF_LGenBase_FsmTableDeclarator c_EPTF_ExecCtrl_Test_CatchDTEInTestStep_FSM_DoNotHandleDTEEvent := {
    name := "CatchDTEInTestStep_FSM_DoNotHandleDTE",
    fsmParams := {
      {stateList := { "Idle" }},
      {timerList := {
        {name := "successTimer", startValue := 1.0},
        {name := "guardTimer", startValue := 1.10}
      }}
    },
    table := {
      extendedTable := { 
        { events2Listen := { events := { { singleEvent := { bName := "EPTF_CLL_LGenBase", iName:= "LGenBase: Start_the_traffic_case!", eventType := fsm } } } },
          cellRow := {
            statedCellRow := { 
              { inState := { state := "Idle" },
                cell := {
                  actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerStart",    contextArgs := { timerName := "guardTimer" }},
                    { stepOrFunctionName := "CatchDTEInTestStep: generate DTE",     contextArgs := { stepContextArgs := { } } },
                      
                    { stepOrFunctionName := "CatchDTEInTestStep: checkStepAfter DTE", contextArgs := { stepContextArgs := { } } },
                    { stepOrFunctionName := "LGenBase: StepFunction_timerStart",    contextArgs := { timerName := "successTimer" }}
                  },
                  nextStateCalculation := omit,
                  nextState := omit
                }  
              }             
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "Special behavior for timeout reporting", iName := "successTimer", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell := 
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancel",            contextArgs := { timerName := "guardTimer"} },
                    { stepOrFunctionName := c_EPTF_LGenBase_stepName_trafficSuccess,         contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := omit
                }
              }
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "Special behavior for timeout reporting", iName := "guardTimer", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell := 
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
                    { stepOrFunctionName := "CatchDTEInTestStep: checkEventAfter DTE",       contextArgs := { stepContextArgs := { } } },
                    { stepOrFunctionName := c_EPTF_LGenBase_stepName_trafficFailed,          contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := omit
                }
              }
            }
          }
        },
//      // LGenBase DTE event is not catched!!
//         { events2Listen := {events := {{ singleEvent := { bName := "EPTF_CLL_LGenBase", iName := "LGenBase: Dynamic_test_case_error_occured!", eventType := fsm }}}},
//           cellRow := {
//             statedCellRow := {
//               { inState:={ state := "Idle" },
//                 cell :=
//                   {actionList := {
//                     //{ stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
//                     //{ stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "guardTimer"} },
//                     { stepOrFunctionName := "CatchDTEInTestStep: checkStepHandleDTEEvent",   contextArgs := { stepContextArgs := { } } },
//                     { stepOrFunctionName := "LGenBase: StepFunction_trafficTimeout",          contextArgs := { stepContextArgs := { } } }
//                   },
//                   nextStateCalculation := omit,
//                   nextState := "Idle"
//                 }
//               }
//             }
//           }
//         },
        { events2Listen := {events := {{ singleEvent := { bName := "EPTF_CLL_LGenBase", iName := "LGenBase: Stop_the_traffic_case!", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell :=
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "guardTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_entityStopped",          contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := "Idle"
                }
              }
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "EPTF_CLL_LGenBase", iName := "LGenBase: Aborts_traffic_case!", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell :=
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "guardTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_entityAborted",          contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := "Idle"
                }
              }
            }
          }
        }
      }
    }
  }

const EPTF_ExecCtrl_LGenPool_Declarators c_EPTF_ExecCtrl_Test_CatchDTEInTestStep_LGenPool_Declarators_DoNotHandleDTEEvent := {
  {
    name := c_EPTF_ExecCtrl_Test_defaultLGenPoolName,
    lgenPoolItems := {
      {
        hostname := "localhost",
        num := 2,
        createFunctionName := "EPTF_ExecCtrl_Test_Functions.f_ExecCtrl_Test_catchDTEInTestStep_DoNotHandleDTE_createLGen"
      }
    }
  }
}

////////////// Generate DTE Event in DTE Handler in FSM:

  const EPTF_LGenBase_FsmTableDeclarator c_EPTF_ExecCtrl_Test_CatchDTEInTestStep_FSM_GenerateDTEInDTEHandlerEvent := {
    name := "CatchDTEInTestStep_FSM_GenerateDTEInDTEHandler",
    fsmParams := {
      {stateList := { "Idle" }},
      {timerList := {
        {name := "successTimer", startValue := 1.0},
        {name := "guardTimer", startValue := 1.10}
      }}
    },
    table := {
      extendedTable := { 
        { events2Listen := { events := { { singleEvent := { bName := "EPTF_CLL_LGenBase", iName:= "LGenBase: Start_the_traffic_case!", eventType := fsm } } } },
          cellRow := {
            statedCellRow := { 
              { inState := { state := "Idle" },
                cell := {
                  actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerStart",    contextArgs := { timerName := "guardTimer" }},
                    { stepOrFunctionName := "CatchDTEInTestStep: generate DTE",     contextArgs := { stepContextArgs := { } } },
                      
                    { stepOrFunctionName := "CatchDTEInTestStep: checkStepAfter DTE", contextArgs := { stepContextArgs := { } } },
                    { stepOrFunctionName := "LGenBase: StepFunction_timerStart",    contextArgs := { timerName := "successTimer" }}
                  },
                  nextStateCalculation := omit,
                  nextState := omit
                }  
              }             
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "Special behavior for timeout reporting", iName := "successTimer", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell := 
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancel",            contextArgs := { timerName := "guardTimer"} },
                    { stepOrFunctionName := c_EPTF_LGenBase_stepName_trafficSuccess,         contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := omit
                }
              }
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "Special behavior for timeout reporting", iName := "guardTimer", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell := 
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
                    { stepOrFunctionName := "CatchDTEInTestStep: checkEventAfter DTE",       contextArgs := { stepContextArgs := { } } },
                    { stepOrFunctionName := c_EPTF_LGenBase_stepName_trafficFailed,          contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := omit
                }
              }
            }
          }
        },
        // LGenBase DTE event is catched, and DTE is generated here!!
        { events2Listen := {events := {{ singleEvent := { bName := "EPTF_CLL_LGenBase", iName := "LGenBase: Dynamic_test_case_error_occured!", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell :=
                  {actionList := {
                    //{ stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
                    //{ stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "guardTimer"} },
                    { stepOrFunctionName := "CatchDTEInTestStep: checkStepHandleDTEEvent",   contextArgs := { stepContextArgs := { } } },
                    { stepOrFunctionName := "LGenBase: StepFunction_trafficTimeout",          contextArgs := { stepContextArgs := { } } },
                    { stepOrFunctionName := "CatchDTEInTestStep: generate DTE",     contextArgs := { stepContextArgs := { } } },
                    { stepOrFunctionName := "CatchDTEInTestStep: checkStepAfter DTE", contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := "Idle"
                }
              }
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "EPTF_CLL_LGenBase", iName := "LGenBase: Stop_the_traffic_case!", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell :=
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "guardTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_entityStopped",          contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := "Idle"
                }
              }
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "EPTF_CLL_LGenBase", iName := "LGenBase: Aborts_traffic_case!", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell :=
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "guardTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_entityAborted",          contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := "Idle"
                }
              }
            }
          }
        }
      }
    }
  }

const EPTF_ExecCtrl_LGenPool_Declarators c_EPTF_ExecCtrl_Test_CatchDTEInTestStep_LGenPool_Declarators_GenerateDTEInDTEHandlerEvent := {
  {
    name := c_EPTF_ExecCtrl_Test_defaultLGenPoolName,
    lgenPoolItems := {
      {
        hostname := "localhost",
        num := 2,
        createFunctionName := "EPTF_ExecCtrl_Test_Functions.f_ExecCtrl_Test_catchDTEInTestStep_GenerateDTEInDTEHandler_createLGen"
      }
    }
  }
}

////////////// Generate DTE Event in DTE Handler in FSM, no traffic failed is reported:

  const EPTF_LGenBase_FsmTableDeclarator c_EPTF_ExecCtrl_Test_CatchDTEInTestStep_FSM_GenerateDTEInDTEHandler2Event := {
    name := "CatchDTEInTestStep_FSM_GenerateDTEInDTEHandler2",
    fsmParams := {
      {stateList := { "Idle" }},
      {timerList := {
        {name := "successTimer", startValue := 1.0},
        {name := "guardTimer", startValue := 1.10}
      }}
    },
    table := {
      extendedTable := { 
        { events2Listen := { events := { { singleEvent := { bName := "EPTF_CLL_LGenBase", iName:= "LGenBase: Start_the_traffic_case!", eventType := fsm } } } },
          cellRow := {
            statedCellRow := { 
              { inState := { state := "Idle" },
                cell := {
                  actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerStart",    contextArgs := { timerName := "guardTimer" }},
                    { stepOrFunctionName := "CatchDTEInTestStep: generate DTE",     contextArgs := { stepContextArgs := { } } },
                      
                    { stepOrFunctionName := "CatchDTEInTestStep: checkStepAfter DTE", contextArgs := { stepContextArgs := { } } },
                    { stepOrFunctionName := "LGenBase: StepFunction_timerStart",    contextArgs := { timerName := "successTimer" }}
                  },
                  nextStateCalculation := omit,
                  nextState := omit
                }  
              }             
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "Special behavior for timeout reporting", iName := "successTimer", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell := 
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancel",            contextArgs := { timerName := "guardTimer"} },
                    { stepOrFunctionName := c_EPTF_LGenBase_stepName_trafficSuccess,         contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := omit
                }
              }
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "Special behavior for timeout reporting", iName := "guardTimer", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell := 
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
                    { stepOrFunctionName := "CatchDTEInTestStep: checkEventAfter DTE",       contextArgs := { stepContextArgs := { } } },
                    { stepOrFunctionName := c_EPTF_LGenBase_stepName_trafficFailed,          contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := omit
                }
              }
            }
          }
        },
        // LGenBase DTE event is catched, and DTE is generated here!!
        { events2Listen := {events := {{ singleEvent := { bName := "EPTF_CLL_LGenBase", iName := "LGenBase: Dynamic_test_case_error_occured!", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell :=
                  {actionList := {
                    //{ stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
                    //{ stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "guardTimer"} },
                    { stepOrFunctionName := "CatchDTEInTestStep: checkStepHandleDTEEvent",   contextArgs := { stepContextArgs := { } } },
                    { stepOrFunctionName := "CatchDTEInTestStep: generate DTE",     contextArgs := { stepContextArgs := { } } },
                    { stepOrFunctionName := "LGenBase: StepFunction_trafficTimeout",          contextArgs := { stepContextArgs := { } } },
                    { stepOrFunctionName := "CatchDTEInTestStep: checkStepAfter DTE", contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := "Idle"
                }
              }
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "EPTF_CLL_LGenBase", iName := "LGenBase: Stop_the_traffic_case!", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell :=
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "guardTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_entityStopped",          contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := "Idle"
                }
              }
            }
          }
        },
        { events2Listen := {events := {{ singleEvent := { bName := "EPTF_CLL_LGenBase", iName := "LGenBase: Aborts_traffic_case!", eventType := fsm }}}},
          cellRow := {
            statedCellRow := {
              { inState:={ state := "Idle" },
                cell :=
                  {actionList := {
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "successTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_timerCancelIfRunning",   contextArgs := { timerName := "guardTimer"} },
                    { stepOrFunctionName := "LGenBase: StepFunction_entityAborted",          contextArgs := { stepContextArgs := { } } }
                  },
                  nextStateCalculation := omit,
                  nextState := "Idle"
                }
              }
            }
          }
        }
      }
    }
  }

const EPTF_ExecCtrl_LGenPool_Declarators c_EPTF_ExecCtrl_Test_CatchDTEInTestStep_LGenPool_Declarators_GenerateDTEInDTEHandler2Event := {
  {
    name := c_EPTF_ExecCtrl_Test_defaultLGenPoolName,
    lgenPoolItems := {
      {
        hostname := "localhost",
        num := 2,
        createFunctionName := "EPTF_ExecCtrl_Test_Functions.f_ExecCtrl_Test_catchDTEInTestStep_GenerateDTEInDTEHandler2_createLGen"
      }
    }
  }
}


} // group EPTF_ExecCtrl_Test_CatchDTEInTestStep

// test total counters:
group EPTF_ExecCtrl_Test_TotalCounter {

type component ExecCtrl_Test_TotalCounter_LGen_CT extends EPTF_ExecCtrlClient_CT{
  var EPTF_IntegerList v_Counter;
}
const charstring c_EPTF_ExecCtrl_Test_TotalCounter_stepName_trafficHandler := "stepName_trafficHandler";
const charstring c_EPTF_ExecCtrl_Test_totalCounterFSMName := "totalCounterFSM";
const EPTF_LGenBase_FsmTableDeclarator c_EPTF_ExecCtrl_Test_totalCounterFSM :=
{
  name := c_EPTF_ExecCtrl_Test_totalCounterFSMName,
  fsmParams := {
    {stateList := {"idle", "busy"}}
  },
  table := {
    classicTable := {
      // --------------------------------------------------
      // Start [0]
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_startTC,fsm},
        cellRow := {
          // idle[0]
          {{
              {c_EPTF_ExecCtrl_Test_TotalCounter_stepName_trafficHandler}
          }, omit, "busy" },
          // busy[1]
          {{
              {c_EPTF_ExecCtrl_Test_TotalCounter_stepName_trafficHandler}
          }, omit, omit }
        }
      },
      // [1]
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_stopTC,fsm},
        cellRow := {
            // idle[0]
            {{
              {c_EPTF_LGenBase_stepName_entityStopped, omit}
            }, omit, omit},
            // busy[1]
            {{
              {c_EPTF_LGenBase_stepName_trafficError, omit},
              {c_EPTF_LGenBase_stepName_entityStopped, omit}
            }, omit, "idle"}
        }
      },
      // [2]
      { eventToListen := {c_EPTF_LGenBase_behavior,c_EPTF_LGenBase_inputName_testMgmt_abortTC,fsm},
        cellRow := {
            // idle[0]
            {{
              {c_EPTF_LGenBase_stepName_entityAborted, omit}
            }, omit, omit},
            // busy[1]
            {{
              {c_EPTF_LGenBase_stepName_entityAborted, omit}
            }, omit, "idle"}
        }
      }
    }
  }
}

// c_EPTF_ExecCtrl_Test_TotalCounter_executionValues and expectedValues: Starts, Success, Fail, Timeout, Error
// Starts = Success + Fail + Timeout + Error)
const EPTF_IntegerList c_EPTF_ExecCtrl_Test_TotalCounter_executionValues := {30, 10, 8, 7, 5};
const EPTF_IntegerList c_EPTF_ExecCtrl_Test_TotalCounter_expectedValues := {465, 150, 120, 105, 90};
const integer c_EPTF_ExecCtrl_Test_TotalCounter_eGrpSize := 10;
// Calculation of expectedValues:
// Starts                 = LGens * TCs * ExecutionValue[] + TCs * (Entities - LGens) = 5 * 3 * 30 + 3 * (10 - 5)
// Success, Fail, Timeout = LGens * TCs * ExecutionValue[]
// Error                  = LGens * TCs * ExecutionValue[] + TCs * (Entities - LGens)

const EPTF_LGenBase_TcMgmt_EntityGrpDeclaratorList c_EPTF_ExecCtrl_Test_TotalCounter_EGrpList :={{
    name := c_EPTF_ExecCtrl_DefaultScenarios_eGrpName,
    eType := c_EPTF_ExecCtrl_Test_defaultETypeName,
    eCount := c_EPTF_ExecCtrl_Test_TotalCounter_eGrpSize
  }}

const EPTF_LGenBase_TcMgmt_tcTypeDeclarator2 c_EPTF_ExecCtrl_TotalCounter_defaultTCType := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName,
  fsmName := c_EPTF_ExecCtrl_Test_totalCounterFSMName,
  entityType := c_EPTF_ExecCtrl_Test_defaultETypeName,
  customEntitySucc := ""
}

const EPTF_ExecCtrl_LGenPool_Declarators c_EPTF_ExecCtrl_Test_TotalCounterLGenPool_Declarators := {
  {
    name := c_EPTF_ExecCtrl_Test_defaultLGenPoolName,
    lgenPoolItems := {
      {
        hostname := "localhost",
        num := 5,
        createFunctionName := "EPTF_ExecCtrl_Test_Functions.f_ExecCtrl_Test_createDefaultLGenTotalCounter"
      }
    }
  }
}

const EPTF_LGenBase_ScenarioTypeDeclarator c_EPTF_ExecCtrl_TotalCounter_normalScenario := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_scNameNormal,
  tcList := {
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {cpsToReach := 100.0} }
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {cpsToReach := 100.0} }
      }
    }
  },
  scParamsList := {
    {enabled := true}
  }
}

const EPTF_LGenBase_ScenarioTypeDeclarator c_EPTF_ExecCtrl_TotalCounter_weightedScenario := {
  name := c_EPTF_ExecCtrl_DefaultScenarios_scNameWeighted,
  tcList := {
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc1,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := false},
        {target := {trafficWeight := 1.0} }
      }
    },
    {
      tcName := c_EPTF_ExecCtrl_DefaultScenarios_tcNameTc2,
      tcParamsList := {
        {tcTypeName := c_EPTF_ExecCtrl_DefaultScenarios_tcTypeName},
        {enableEntitiesAtStart := true},
        {enabledAtStart := true},
        {target := {trafficWeight := 3.0} }
      }
    }
  },
  scParamsList := {
    {weightedScData := {
        cpsToReach := 100.0,
        lockCPS := false,
        deterministicMix := false,
        scheduler := omit
      }
    },
    {enabled := true}
  }
}

} // ~group EPTF_ExecCtrl_Test_TotalCounter

}
