blob: f42fcd9cc79304916be48b6753b5d8e88349949a [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
// //
// Copyright (c) 2000-2018 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_Functions
//
// Purpose:
// This module contains the functions of the EPTF ExecCtrl test enviroment.
//
// Module depends on:
// <EPTF_CLL_Base_Definitions>
// <EPTF_CLL_Base_Functions>
// <EPTF_CLL_Common_Definitions>
// <EPTF_CLL_LGenBase_Definitions>
// <EPTF_CLL_LGenBase_Functions>
// <EPTF_CLL_LGenBase_ConfigDefinitions>
// <EPTF_CLL_LGenBase_ConfigFunctions>
// <EPTF_CLL_LGenBase_PhaseFunctions>
// <EPTF_CLL_LGenBase_PhaseDefinitions>
// <EPTF_CLL_LGenBase_TrafficFunctions>
// <EPTF_CLL_LGenBase_StepFunctions>
// <EPTF_CLL_LGenBaseStats_Functions>
// <EPTF_CLL_LGenBaseStats_Definitions>
// <EPTF_CLL_LoadRegulator_Functions>
// <EPTF_CLL_ExecCtrlTimeProfile_Definitions>
// <EPTF_CLL_ExecCtrl_Functions>
// <EPTF_CLL_ExecCtrl_Definitions>
// <EPTF_CLL_HashMapStr2Int_Functions>
// <EPTF_CLL_UIHandler_Definitions>
// <EPTF_CLL_ExecCtrlUIHandler_Definitions>
// <EPTF_CLL_ExecCtrlUIHandler_Functions>
// <EPTF_CLL_ExecCtrlClient_Functions>
// <EPTF_CLL_ExecCtrl_ScenarioFunctions>
// <EPTF_CLL_ExecCtrl_ScenarioDefinitions>
// <EPTF_CLL_ExecCtrl_PhaseFunctions>
// <EPTF_CLL_UIHandler_WidgetFunctions>
// <EPTF_CLL_UIHandlerClient_Functions>
// <EPTF_CLL_Variable_Definitions>
// <EPTF_CLL_Variable_Functions>
// <EPTF_CLL_Logging_Functions>
// <EPTF_CLL_StatHandler_Definitions>
//
// Current Owner:
// Balazs Barcsik (EBALBAR)
//
// Last Review Date:
// 2007-xx-xx
//
// Detailed Comments:
// -
//
///////////////////////////////////////////////////////////////
module EPTF_ExecCtrl_Test_Functions {
//=========================================================================
// Import Part
//=========================================================================
import from EPTF_ExecCtrl_Test_Definitions all;
import from EPTF_CLL_Base_Definitions all;
import from EPTF_CLL_Base_Functions all;
import from EPTF_CLL_Common_Definitions all;
import from EPTF_CLL_LGenBase_Definitions all;
import from EPTF_CLL_LGenBase_Functions all;
import from EPTF_CLL_LGenBase_ConfigDefinitions all;
import from EPTF_CLL_LGenBase_ConfigFunctions all;
import from EPTF_CLL_LGenBase_PhaseFunctions all;
import from EPTF_CLL_LGenBase_PhaseDefinitions all;
import from EPTF_CLL_LGenBase_TrafficFunctions all;
import from EPTF_CLL_LGenBase_StepFunctions all;
import from EPTF_CLL_LGenBaseStats_Functions all;
import from EPTF_CLL_LGenBaseStats_Definitions all;
import from EPTF_CLL_LoadRegulator_Functions all;
import from EPTF_CLL_LoadRegulator_Definitions all;
import from EPTF_CLL_ExecCtrlTimeProfile_Definitions all;
import from EPTF_CLL_LGenBase_EventHandlingFunctions all;
import from EPTF_CLL_ExecCtrl_Functions all;
import from EPTF_CLL_ExecCtrl_Definitions all;
import from EPTF_CLL_ExecCtrlClient_Functions all;
import from EPTF_CLL_ExecCtrl_ScenarioFunctions all;
import from EPTF_CLL_ExecCtrl_ScenarioDefinitions all;
import from EPTF_CLL_ExecCtrl_PhaseDefinitions all;
import from EPTF_CLL_ExecCtrl_PhaseFunctions all;
import from EPTF_CLL_HashMapStr2Int_Functions all;
import from EPTF_CLL_UIHandler_Definitions all;
import from EPTF_CLL_ExecCtrlUIHandler_Definitions all;
import from EPTF_CLL_ExecCtrlUIHandler_Functions all;
import from EPTF_CLL_UIHandler_WidgetFunctions all;
import from EPTF_CLL_UIHandler_XULFunctions all;
import from EPTF_CLL_UIHandlerClient_Functions all;
import from EPTF_CLL_Variable_Definitions all;
import from EPTF_CLL_Variable_Functions all;
import from EPTF_CLL_StatHandlerClient_Definitions all;
import from EPTF_CLL_UIHandlerCLI_Definitions all;
import from EPTF_CLL_DataSource_Definitions all;
import from EPTF_CLL_DataSource_Functions all;
import from EPTF_CLL_DataSourceClient_Functions all;
import from EPTF_CLL_StatMeasure_Functions all;
import from EPTF_CLL_Logging_Functions all;
import from EPTF_CLL_StatHandler_Definitions all;
import from TCCConversion_Functions all;
import from ttcn_ericsson_se_protocolModules_xtdp_xtdl all;
group DefaultLGen {
function f_EPTF_ExecCtrl_CLITest_defaultLGenBehaviour(
in charstring pl_name,
in EPTF_ExecCtrl_CT pl_execCtrlCompRef)
runs on EPTF_ExecCtrlClient_CT {
f_EPTF_LGenBase_init(pl_name);
f_EPTF_LGenBase_declareBehaviorType(c_EPTF_ExecCtrl_Test_defaultBehaviorName, -1, null, null, null);
f_EPTF_LGenBase_declareEntityType(c_EPTF_ExecCtrl_Test_defaultETypeName, {c_EPTF_ExecCtrl_Test_defaultBehaviorName});
f_EPTF_LGenBase_declareFSMTable(c_EPTF_ExecCtrl_Test_defaultFSM);
f_EPTF_ExecCtrlClient_init_CT(pl_name, pl_execCtrlCompRef);
f_EPTF_Base_wait4Shutdown();
}
function f_EPTF_ExecCtrl_CLITest_defaultLGenBehaviourWithFSMStats(
in charstring pl_name,
in EPTF_ExecCtrl_CT pl_execCtrlCompRef)
runs on EPTF_ExecCtrlClient_UIHandler_CT {
f_EPTF_LGenBase_init(pl_name);
f_EPTF_LGenBase_declareBehaviorType(c_EPTF_ExecCtrl_Test_defaultBehaviorName, -1, null, null, null);
f_EPTF_LGenBase_declareEntityType(c_EPTF_ExecCtrl_Test_defaultETypeName, {c_EPTF_ExecCtrl_Test_defaultBehaviorName});
f_EPTF_LGenBase_declareFSMTable(c_EPTF_ExecCtrl_Test_defaultFSMWithFSMStats);
f_EPTF_ExecCtrlClient_UIHandler_init_CT(pl_name, pl_execCtrlCompRef,mtc);
f_EPTF_Base_wait4Shutdown();
}
function f_EPTF_ExecCtrl_CLITest_defaultLGenBehaviourWithFSMStatsLive(
in charstring pl_name,
in EPTF_ExecCtrl_CT pl_execCtrlCompRef)
runs on EPTF_ExecCtrlClient_UIHandler_CT {
f_EPTF_LGenBase_init(pl_name);
f_EPTF_LGenBase_declareBehaviorType(c_EPTF_ExecCtrl_Test_defaultBehaviorName, -1, null, null, null);
f_EPTF_LGenBase_declareEntityType(c_EPTF_ExecCtrl_Test_defaultETypeName, {c_EPTF_ExecCtrl_Test_defaultBehaviorName});
f_EPTF_LGenBase_declareFSMTable(c_EPTF_ExecCtrl_Test_defaultFSMWithFSMStatsLive);
f_EPTF_ExecCtrlClient_UIHandler_init_CT(pl_name, pl_execCtrlCompRef,mtc);
f_EPTF_Base_wait4Shutdown();
}
function f_ExecCtrl_Test_createDefaultLGen (
in charstring pl_hostname,
in charstring pl_componentName
) runs on EPTF_ExecCtrl_CT return EPTF_ExecCtrlClient_CT
{
var EPTF_ExecCtrlClient_CT vl_lgen := EPTF_ExecCtrlClient_CT.create;
vl_lgen.start( f_EPTF_ExecCtrl_CLITest_defaultLGenBehaviour("ExecCtrl_DefaultLGen_"&log2str(vl_lgen),self) );
return vl_lgen;
}
function f_ExecCtrl_Test_createDefaultLGenWithSpeed (
in charstring pl_hostname,
in charstring pl_componentName
) runs on EPTF_ExecCtrl_CT return EPTF_ExecCtrlClient_CT
{
var EPTF_ExecCtrlClient_CT vl_lgen := EPTF_ExecCtrlClient_CT.create;
vl_lgen.start( f_EPTF_ExecCtrl_CLITest_defaultLGenBehaviour("ExecCtrl_DefaultLGen_"&log2str(vl_lgen),self) );
if("LGen2.LGenDefaultPool.localhost" == pl_componentName){
action("Slow is running");
timer t;
t.start(10.0);
t.timeout;
action("Slow ends");
}
return vl_lgen;
}
function f_ExecCtrl_Test_createDefaultLGenWithSpecId (
in charstring pl_hostname,
in charstring pl_componentName
) runs on ExecCtrlDSClient_Test_CT return EPTF_ExecCtrlClient_CT
{
var EPTF_ExecCtrlClient_CT vl_lgen := EPTF_ExecCtrlClient_CT.create;
vl_lgen.start( f_EPTF_ExecCtrl_CLITest_defaultLGenBehaviour("ExecCtrl_DefaultLGen_"&log2str(v_lgenId),self) );
v_lgenId := v_lgenId + 1;
return vl_lgen;
}
function f_ExecCtrl_Test_createDefaultLGenWithSpecIdWithFSMStats (
in charstring pl_hostname,
in charstring pl_componentName
) runs on ExecCtrlDSClient_Test_CT return EPTF_ExecCtrlClient_CT
{
var EPTF_ExecCtrlClient_UIHandler_CT vl_lgen := EPTF_ExecCtrlClient_UIHandler_CT.create;
vl_lgen.start( f_EPTF_ExecCtrl_CLITest_defaultLGenBehaviourWithFSMStats("ExecCtrl_DefaultLGen_"&log2str(v_lgenId),self) );
v_lgenId := v_lgenId + 1;
return vl_lgen;
}
function f_ExecCtrl_Test_createDefaultLGenWithSpecIdWithFSMStatsLive (
in charstring pl_hostname,
in charstring pl_componentName
) runs on ExecCtrlDSClient_Test_CT return EPTF_ExecCtrlClient_CT
{
var EPTF_ExecCtrlClient_UIHandler_CT vl_lgen := EPTF_ExecCtrlClient_UIHandler_CT.create;
vl_lgen.start( f_EPTF_ExecCtrl_CLITest_defaultLGenBehaviourWithFSMStatsLive("ExecCtrl_DefaultLGen_"&log2str(v_lgenId),self) );
v_lgenId := v_lgenId + 1;
return vl_lgen;
}
// const EPTF_ExecCtrl_LGenFunction_Entry c_EPTF_ExecCtrl_defaultLGenCreatorFunction := {
// name := "createDefaultLGen",
// fn := refers(f_ExecCtrl_Test_createDefaultLGen)
// }
} // ~group DefaultLGen
//=========================================================================
// Functions
//=========================================================================
function f_EPTF_ExecCtrlTest_isWeightedScenariobyName(
in charstring pl_eGrpName,
in charstring pl_scName)
runs on EPTF_LGenBase_CT return boolean
{
var integer vl_eGrpIdx := f_EPTF_LGenBase_entityGrpNameIndex(pl_eGrpName);
f_EPTF_Base_assert(%definitionId&": Invalid entity group name: "&pl_eGrpName,-1 != vl_eGrpIdx);
var integer vl_scIdx := f_EPTF_LGenBase_scNameIndexInEG(vl_eGrpIdx, pl_scName);
f_EPTF_Base_assert(%definitionId&": Invalid scenario name: "&pl_scName,-1 != vl_scIdx);
return f_EPTF_LGenBase_isWeightedScenario(vl_eGrpIdx, vl_scIdx);
}
/*function f_EPTF_ExecCtrlTest_getWeightedScenarioCps(
in charstring pl_eGrpName,
in charstring pl_scName)
runs on EPTF_LGenBase_CT return float
{
var float vl_scenCPS := 0.0;
var integer vl_eGrpIdx := f_EPTF_LGenBase_entityGrpNameIndex(pl_eGrpName);
f_EPTF_Base_assert(%definitionId&": Invalid entity group name: "&pl_eGrpName,-1 != vl_eGrpIdx);
var integer vl_scIdx := f_EPTF_LGenBase_scNameIndexInEG(vl_eGrpIdx, pl_scName);
f_EPTF_Base_assert(%definitionId&": Invalid scenario name: "&pl_scName,-1 != vl_scIdx);
// NOTE/FIXME: f_EPTF_LGenBase_getCPS keeps returning the last non-zero CPS for weighted TCs if the targetCPS was set to 0.0
// for (var integer i := 0; i < sizeof(v_LGenBase_entityGroups[vl_eGrpIdx].scenarios[vl_scIdx].tcIdxList); i := i + 1) {
// vl_scenCPS := vl_scenCPS + f_EPTF_LGenBase_getCPS(v_LGenBase_entityGroups[vl_eGrpIdx].scenarios[vl_scIdx].tcIdxList[i]);
// }
for (var integer i := 0; i < sizeof(v_LGenBase_entityGroups[vl_eGrpIdx].scenarios[vl_scIdx].tcIdxList); i := i + 1) {
var integer vl_tcIdx := v_LGenBase_entityGroups[vl_eGrpIdx].scenarios[vl_scIdx].tcIdxList[i];
var charstring vl_varNameBase := f_EPTF_LGenBaseStats_getNamePrefix(pl_eGrpName, pl_scName, v_LGenBase_trafficCases[vl_tcIdx].privateName);
var EPTF_Var_DirectContent vl_Var_content;
var charstring vl_varName := vl_varNameBase&c_EPTF_LGenBaseStats_nameOfTcLastCps;
var integer vl_varID := f_EPTF_Var_getId(vl_varName);
if(vl_varID != -1) {
f_EPTF_Var_refreshContent(vl_varID);
f_EPTF_Var_getContent(vl_varID, vl_Var_content);
vl_scenCPS := vl_scenCPS + vl_Var_content.floatVal;
} else {
log(%definitionId & ": EPTF Variable doesn't exist: ", vl_varName);
f_EPTF_Base_stopAll();
}
}
return vl_scenCPS;
}*/
function f_EPTF_ExecCtrlTest_getWeightedScenarioCps(
in charstring pl_eGrpName,
in charstring pl_scName)
runs on EPTF_LGenBase_CT return float {
return f_EPTF_LGenBase_getScCpsSoReachByName(pl_eGrpName,pl_scName);
}
function f_EPTF_ExecCtrl_Regulator_getRegulatorNames()
runs on EPTF_ExecCtrl_CT
return EPTF_CharstringList
{
return v_EPTF_ExecCtrl_RegulatorNames;
}
function f_EPTF_ExecCtrl_Regulator_getRegulatorIdByName(
in charstring pl_regulatorName)
runs on EPTF_ExecCtrl_CT return integer
{
var EPTF_CharstringList vl_regulatorNames;
vl_regulatorNames := f_EPTF_ExecCtrl_Regulator_getRegulatorNames();
for (var integer i := 0; i < sizeof(vl_regulatorNames); i := i + 1) {
if ( vl_regulatorNames[i] == pl_regulatorName ) {
return i;
}
}
return -1;
}
function f_EPTF_ExecCtrl_getScenarioTypeByName(in charstring pl_scenName) runs on EPTF_ExecCtrl_CT return integer {
for (var integer i := 0; i < sizeof(v_ExecCtrl_ScenarioDeclarators); i := i + 1)
{
if(v_ExecCtrl_ScenarioDeclarators[i].name == pl_scenName) {
return 1;
}
}
for (var integer i := 0; i < sizeof(v_ExecCtrl_ScenarioDeclarators2); i := i + 1)
{
if(v_ExecCtrl_ScenarioDeclarators2[i].name == pl_scenName) {
return 2;
}
}
for (var integer i := 0; i < sizeof(v_ExecCtrl_ScenarioDeclarators3); i := i + 1)
{
if(v_ExecCtrl_ScenarioDeclarators3[i].name == pl_scenName) {
return 3;
}
}
return -1;
}
function f_EPTF_ExecCtrl_getScenarioIdxByName(in charstring pl_scenName) runs on EPTF_ExecCtrl_CT return integer
{
for (var integer i := 0; i < sizeof(v_ExecCtrl_ScenarioDeclarators); i := i + 1)
{
if(v_ExecCtrl_ScenarioDeclarators[i].name == pl_scenName) {
return i;
}
}
for (var integer i := 0; i < sizeof(v_ExecCtrl_ScenarioDeclarators2); i := i + 1)
{
if(v_ExecCtrl_ScenarioDeclarators2[i].name == pl_scenName) {
return i;
}
}
for (var integer i := 0; i < sizeof(v_ExecCtrl_ScenarioDeclarators3); i := i + 1)
{
if(v_ExecCtrl_ScenarioDeclarators3[i].name == pl_scenName) {
return i;
}
}
return -1;
}
function f_EPTF_ExecCtrl_getTimeProfileDescrByName(
in charstring pl_name,
out EPTF_ExecCtrl_TimeProfileItemList pl_timeProfile
) runs on EPTF_ExecCtrl_CT
{
for (var integer i := 0; i < sizeof(v_EPTF_ExecCtrl_TimeProfileDescrList); i := i + 1)
{
log("v_EPTF_ExecCtrl_TimeProfileDescrList", v_EPTF_ExecCtrl_TimeProfileDescrList[i]);
if (v_EPTF_ExecCtrl_TimeProfileDescrList[i].name == pl_name)
{
pl_timeProfile := v_EPTF_ExecCtrl_TimeProfileDescrList[i].timeProfileData
}
}
}
function f_EPTF_ExecCtrl_getTimeProfileListByName(
in charstring pl_name,
out EPTF_ExecCtrl_TimeProfileDataList pl_profileList) runs on EPTF_ExecCtrl_CT
{
for (var integer i := 0; i < sizeof(v_EPTF_ExecCtrl_TimeProfileList); i := i + 1)
{
if (v_EPTF_ExecCtrl_TimeProfileList[i].name == pl_name)
{
pl_profileList := v_EPTF_ExecCtrl_TimeProfileList[i].timeProfileList
}
}
}
function f_EPTF_ExecCtrl_set_StartStopScenarioDisable(
in EPTF_ExecCtrl_StartStopScenarioDisableItem pl_disable) runs on EPTF_ExecCtrl_CT
{
v_EPTF_ExecCtrl_StartStopScenarioDisable[sizeof(v_EPTF_ExecCtrl_StartStopScenarioDisable)] := pl_disable;
}
function f_EPTF_ExecCtrl_set_StartStopTCDisable(
in EPTF_ExecCtrl_StartStopTCDisableItem pl_disable) runs on EPTF_ExecCtrl_CT
{
v_EPTF_ExecCtrl_StartStopTCDisable[sizeof(v_EPTF_ExecCtrl_StartStopTCDisable)] := pl_disable;
}
function f_EPTF_ExecCtrl_Test_setManualControlTrue() runs on EPTF_ExecCtrl_CT
{
f_EPTF_ExecCtrl_setManualControl(true);
}
function f_EPTF_ExecCtrl_Test_setManualControlFalse() runs on EPTF_ExecCtrl_CT
{
f_EPTF_ExecCtrl_setManualControl(false);
}
function f_EPTF_ExecCtrl_getManualControl() runs on EPTF_ExecCtrl_CT return boolean
{
return v_ExecCtrl_manualControl;
}
function f_EPTF_ExecCtrl_get_Scenarios2Grps(
out EPTF_LGenBase_TcMgmt_Scenarios2GrpList pl_scenario2Grps)
runs on EPTF_ExecCtrl_CT
{
pl_scenario2Grps := v_ExecCtrl_Scenarios2Grps;
}
function f_EPTF_ExecCtrl_get_ScenarioDeclarators(
out EPTF_LGenBase_ScenarioDeclaratorList pl_scenarioDeclarators)
runs on EPTF_ExecCtrl_CT
{
pl_scenarioDeclarators := v_ExecCtrl_ScenarioDeclarators;
}
function f_EPTF_ExecCtrl_get_tcTypeDeclarators(out EPTF_LGenBase_tcTypeDeclaratorList pl_tcTypeDeclarators)
runs on EPTF_ExecCtrl_CT
{
pl_tcTypeDeclarators := v_ExecCtrl_tcTypeDeclarators;
}
function f_EPTF_ExecCtrl_get_entityGrpDeclarators(
out EPTF_LGenBase_TcMgmt_EntityGrpDeclaratorList pl_entityGrpDeclarators)
runs on EPTF_ExecCtrl_CT
{
pl_entityGrpDeclarators := v_ExecCtrl_EntityGrpDeclarators;
}
function f_EPTF_ExecCtrl_get_TimeProfile2TcList(
out EPTF_ExecCtrl_TimeProfile2TcList pl_timeProfile2TcList)
runs on EPTF_ExecCtrl_CT
{
pl_timeProfile2TcList := v_EPTF_ExecCtrl_TimeProfile2TcList;
}
function f_setCPStoClients(inout EPTF_ExecCtrl_Test_SCDataList pl_scens, in integer pl_nofClients)
{
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1)
{
for (var integer j := 0; j < sizeof(pl_scens[i].timeProfile); j := j + 1)
{
pl_scens[i].timeProfile[j].targetValue := pl_scens[i].timeProfile[j].targetValue / int2float(pl_nofClients);
}
}
}
function f_setCPSforLGens(in EPTF_ExecCtrl_Test_SCDataList pl_scens, in integer pl_nofLGens) return EPTF_ExecCtrl_Test_SCDataList
{
var EPTF_ExecCtrl_Test_SCDataList vl_scens := pl_scens;
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1)
{
for (var integer j := 0; j < sizeof(pl_scens[i].timeProfile); j := j + 1)
{
vl_scens[i].timeProfile[j].targetValue := pl_scens[i].timeProfile[j].targetValue / int2float(pl_nofLGens);
}
}
return vl_scens;
}
function f_ExecCtrl_Test_initGui() runs on myMTC_UI {
var Widgets execCtrlMainWindow := {
tabpage := {
customclass := omit,
disabledongui := omit,
id := omit,
label_ := "",
maxheight := omit,
orientation := vertical,
tooltiptext := omit,
embeddedwidgets := {
{
{
hbox := {
customclass := omit,
disabled := omit,
disabledongui := omit,
fixedposition := omit,
flex := omit,
id := omit,
orientation := horizontal,
scrollable := omit,
embeddedwidgets := {
{
{
hbox := {
customclass := omit,
disabled := omit,
disabledongui := omit,
fixedposition := omit,
flex := omit,
id := omit,
orientation := vertical,
scrollable := omit,
embeddedwidgets := {
{
{
tabpages := {
customclass := omit,
disabled := omit,
disabledongui := omit,
flex := omit,
id := c_EPTF_GUI_Main_Tabbox_WidgetId,
layout := omit,
tabpagegroups := {
tabpagegroup_list := {}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
};
var boolean widgetExist := false;
log("execCtrlMainWindow: ", execCtrlMainWindow);
f_EPTF_UIHandler_XSD_addElementToGui(
execCtrlMainWindow,
"",
widgetExist);
}
function f_ExecCtrl_Test_storeDataFromTspScenario2Grps() runs on EPTF_ExecCtrl_Test_CT {
var integer vl_idx := 0;
var EPTF_LGenBase_TcMgmt_Scenarios2GrpList vl_scenario2Grps;
f_EPTF_ExecCtrl_get_Scenarios2Grps(vl_scenario2Grps);
for (var integer i := 0; i < sizeof(vl_scenario2Grps); i := i + 1) {
for (var integer j := 0; j < sizeof(vl_scenario2Grps[i].scenarioNames); j := j + 1) {
vl_idx := sizeof(v_EPTF_ExecCtrl_Test_scenarios);
v_EPTF_ExecCtrl_Test_scenarios[vl_idx].scenName := vl_scenario2Grps[i].scenarioNames[j];
v_EPTF_ExecCtrl_Test_scenarios[vl_idx].eGrpName := vl_scenario2Grps[i].eGrpName;
v_EPTF_ExecCtrl_Test_scenarios[vl_idx].state := -1;
v_EPTF_ExecCtrl_Test_scenarios[vl_idx].timeProfile := {};
v_EPTF_ExecCtrl_Test_scenarios[vl_idx].tcName := "";
}
}
}
function f_ExecCtrl_Test_convertScenarioType(in integer pl_type) runs on EPTF_ExecCtrl_Test_CT return charstring {
select (pl_type) {
case (1) { return ""}
case (2) { return "SC2"}
case (3) { return "SC3"}
}
return "Error";
}
function f_myApplib_init(in integer pl_eCount := tsp_behaviorTypes[0].eCount)
runs on EPTF_ExecCtrlClient_Test_CT {
v_myBIdx := f_EPTF_LGenBase_declareBehaviorType(tsp_behaviorTypes[0].bName, pl_eCount, null, null, null);
if(//steps
c_myApplib_stepIdx_action1 !=f_EPTF_LGenBase_declareStep(tsp_behaviorTypes[0].bName, {c_myApplib_stepName_action1,refers(f_myApplib_step_action1)})
or c_myApplib_stepIdx_action2 !=f_EPTF_LGenBase_declareStep(tsp_behaviorTypes[0].bName, {c_myApplib_stepName_action2,refers(f_myApplib_step_action2)})
//inputs
or c_myApplib_inputIdx_doAction1 != f_EPTF_LGenBase_declareFsmEvent(tsp_behaviorTypes[0].bName,c_myApplib_inputName_doAction1)//0
//fsms
or c_myApplib_fsmIdx_basicFSM != f_EPTF_LGenBase_declareCompactFsmTable(
f_myApplib_return_compactFsm_BasicFSM())
or c_myApplib_fsmIdx_basicFSM2 != f_EPTF_LGenBase_declareCompactFsmTable(
f_myApplib_return_compactFsm_BasicFSM2())
) {
//fixme
f_EPTF_LGenBase_log();
log("error"); mtc.stop
}
}
function f_myApplibB_init(in integer pl_eCount := tsp_behaviorTypes[1].eCount)
runs on EPTF_ExecCtrlClient_Test_CT {
v_myBIdx := f_EPTF_LGenBase_declareBehaviorType(tsp_behaviorTypes[1].bName, pl_eCount, null, null, null);
}
function f_myApplib_step_action1(in EPTF_LGenBase_TestStepArgs pl_ptr)
runs on EPTF_ExecCtrlClient_Test_CT
{
//log(%definitionId, " started...");
v_trafficCount := v_trafficCount + 1;
}
function f_myApplib_step_action2(in EPTF_LGenBase_TestStepArgs pl_ptr)
runs on EPTF_ExecCtrlClient_Test_CT
{
//log(%definitionId, " started...");
v_trafficCount := v_trafficCount + 1;
}
function f_myApplib_return_compactFsm_BasicFSM()
runs on EPTF_ExecCtrlClient_Test_CT return EPTF_LGenBase_CompactFsmTable
{
return {
name := "DUMMY_FSM",
// [0]
stateList := {"idle1","waiting1"}, //note: state==idle is unnecessary
timerList := {{"T_Progress1",1.0}},
table := {
{eventToListen := {c_EPTF_LGenBase_bIdx,c_EPTF_LGenBase_inputIdx_testMgmt_startTC,fsm},
cellRow := {
//state[0]==idle
{{{refers(f_myApplib_step_action1),{}},
{refers(f_EPTF_LGenBase_step_timerStart),{0}}}, omit,1},
//state[1]==waiting
{omit,omit,omit}
}
},
{eventToListen := {c_EPTF_LGenBase_specialBIdx_timerTimeout,0,fsm},
cellRow := {
//state[0]==idle
{omit,omit,omit},
//state[1]==waiting
{{
{refers(f_EPTF_LGenBase_step_trafficSuccess),{}}}, omit,0}
}
},
{eventToListen := {c_EPTF_LGenBase_bIdx,c_EPTF_LGenBase_inputIdx_testMgmt_stopTC,fsm},
cellRow := {
//state[0]==idle
{{
{refers(f_EPTF_LGenBase_step_timerCancelIfRunning),{0}},
{refers(f_EPTF_LGenBase_step_entityStopped),{}}
}, omit,0},
//state[1]==waiting
{{
{refers(f_EPTF_LGenBase_step_timerCancelIfRunning),{0}},
//{refers(f_EPTF_LGenBase_step_trafficFailed),{}},
{refers(f_EPTF_LGenBase_step_entityStopped),{}}
}, omit,0}
}
},
{eventToListen := {c_EPTF_LGenBase_bIdx,c_EPTF_LGenBase_inputIdx_testMgmt_abortTC,fsm},
cellRow := {
//state[0]==idle
{{
{refers(f_EPTF_LGenBase_step_timerCancelIfRunning),{0}}
}, omit,0},
//state[1]==waiting
{{
{refers(f_EPTF_LGenBase_step_timerCancelIfRunning),{0}}
}, omit,0}
}
}
}
}
}
function f_myApplib_return_compactFsm_BasicFSM2()
runs on EPTF_ExecCtrlClient_Test_CT return EPTF_LGenBase_CompactFsmTable
{
return {
name := "DUMMY_FSM2",
// [0]
stateList := {"idle","waiting"}, //note: state==idle is unnecessary
timerList := {{"T_Progress",1.0}},
table := {
{eventToListen := {c_EPTF_LGenBase_bIdx,c_EPTF_LGenBase_inputIdx_testMgmt_startTC,fsm},
cellRow := {
//state[0]==idle
{{{refers(f_myApplib_step_action2),{}},
{refers(f_EPTF_LGenBase_step_timerStart),{0}}}, omit,1},
//state[1]==waiting
{omit,omit,omit}
}
},
{eventToListen := {c_EPTF_LGenBase_specialBIdx_timerTimeout,0,fsm},
cellRow := {
//state[0]==idle
{omit,omit,omit},
//state[1]==waiting
{{
{refers(f_EPTF_LGenBase_step_trafficSuccess),{}}}, omit,0}
}
},
{eventToListen := {c_EPTF_LGenBase_bIdx,c_EPTF_LGenBase_inputIdx_testMgmt_stopTC,fsm},
cellRow := {
//state[0]==idle
{{
{refers(f_EPTF_LGenBase_step_timerCancelIfRunning),{0}},
{refers(f_EPTF_LGenBase_step_entityStopped),{}}
}, omit,0},
//state[1]==waiting
{{
{refers(f_EPTF_LGenBase_step_timerCancelIfRunning),{0}},
{refers(f_EPTF_LGenBase_step_entityStopped),{}}
}, omit,0}
}
},
{eventToListen := {c_EPTF_LGenBase_bIdx,c_EPTF_LGenBase_inputIdx_testMgmt_abortTC,fsm},
cellRow := {
//state[0]==idle
{{
{refers(f_EPTF_LGenBase_step_timerCancelIfRunning),{0}}
}, omit,0},
//state[1]==waiting
{{
{refers(f_EPTF_LGenBase_step_timerCancelIfRunning),{0}}
}, omit,0}
}
}
}
}
}
function f_EPTF_ExecCtrlClient_Test_init(
in charstring pl_selfName,
in EPTF_ExecCtrl_Test_CT pl_ExecCtrlRef, in integer pl_eCount := -1,
in boolean pl_reportReady := true)
runs on EPTF_ExecCtrlClient_Test_CT
{
if(not v_EPTF_ExecCtrlClient_Test_initialized) {
f_EPTF_LGenBase_init(pl_selfName, 0, "DemoEntity#");
if (pl_eCount == -1) {
f_myApplib_init(); //behavior type index==1
f_myApplibB_init();
} else {
f_myApplib_init(pl_eCount); //behavior type index==1
f_myApplibB_init(pl_eCount);
}
var integer vl_eTypeIdx;
for (var integer i := 0; i < sizeof(tsp_entityTypes); i := i + 1) {
vl_eTypeIdx := f_EPTF_LGenBase_declareEntityType(tsp_entityTypes[i].eType, tsp_entityTypes[i].behaviors);
}
//log("DEBUG: v_LGenBase_entityTypes = ", v_LGenBase_entityTypes);
//connect(self:port_A,self:port_A);
f_EPTF_ExecCtrlClient_init_CT(pl_selfName, pl_ExecCtrlRef, pl_reportReady); // Only after library init(s)
//log("DEBUG: v_LGenBase_behaviorTypes = ", v_LGenBase_behaviorTypes);
v_EPTF_ExecCtrlClient_Test_initialized := true;
}
}
function f_ExecCtrlClient_Test_behaviour( in charstring pl_selfName,
in EPTF_ExecCtrl_Test_CT pl_ExecCtrlRef,
in boolean pl_cleanupNeeded := false,
in boolean pl_reportReady := true)
runs on EPTF_ExecCtrlClient_Test_CT
{
f_EPTF_ExecCtrlClient_Test_init(pl_selfName, pl_ExecCtrlRef, -, pl_reportReady);
if(pl_cleanupNeeded){
f_EPTF_Base_registerCleanup(refers(f_EPTF_ExecCtrlClient_Test_cleanupWaiting));
}
f_EPTF_Base_wait4Shutdown();
}
function f_EPTF_ExecCtrlClient_UIHandler_Test_init(
in charstring pl_selfName,
in EPTF_ExecCtrl_Test_CT pl_ExecCtrlRef)
runs on EPTF_ExecCtrlClient_UIHandler_Test_CT
{
f_EPTF_LGenBase_init(pl_selfName, 0, "DemoEntity#");
f_myApplib_init(); //behavior type index==1
f_myApplibB_init();
var integer vl_eTypeIdx;
for (var integer i := 0; i < sizeof(tsp_entityTypes); i := i + 1) {
vl_eTypeIdx := f_EPTF_LGenBase_declareEntityType(tsp_entityTypes[i].eType, tsp_entityTypes[i].behaviors);
}
//log("DEBUG: v_LGenBase_entityTypes = ", v_LGenBase_entityTypes);
//connect(self:port_A,self:port_A);
f_EPTF_ExecCtrlClient_init_CT(pl_selfName, pl_ExecCtrlRef); // Only after library init(s)
//log("DEBUG: v_LGenBase_behaviorTypes = ", v_LGenBase_behaviorTypes);
f_EPTF_ExecCtrlClient_UIHandler_init_CT(pl_selfName,pl_ExecCtrlRef,mtc);
}
function f_EPTF_ExecCtrl_Test_checkInit(in integer pl_nOfClients)
runs on EPTF_ExecCtrl_Test_CT
{
if (f_EPTF_ExecCtrl_nrOfClients() == pl_nOfClients) {
setverdict(pass);
} else {
//log(%definitionId,": incorrect v_ExecCtrl_nrOfClients value: ", f_EPTF_ExecCtrl_nrOfClients(), " expected: ", pl_nOfClients);
setverdict(fail);
}
f_EPTF_ExecCtrl_Test_checkRegulatorInit(
tsp_EPTF_ExecCtrl_RegulatorNames,
tsp_EPTF_ExecCtrl_RegulatedItems);
// FIXME: update this for R3
/* if (v_ExecCtrl_nrOfPendingResourceStatusMsgs ==pl_nOfClients){
setverdict(pass);
} else {
log(%definitionId,": incorrect v_ExecCtrl_nrOfPendingResourceStatusMsgs value: ", v_ExecCtrl_nrOfPendingResourceStatusMsgs, " expected: ", pl_nOfClients);
setverdict(fail);
}*/
/* if (v_ExecCtrl_scenNamesHash != c_ExecCtrl_invalidIdx)
{setverdict(pass);
} else {
log(%definitionId,": incorrect v_ExecCtrl_scenNamesHash", v_ExecCtrl_scenNamesHash, " expected value must be different from it");
setverdict(fail);
}
if (v_ExecCtrl_scenNames2Hash != c_ExecCtrl_invalidIdx) {
setverdict(pass);
} else{
log(%definitionId,": incorrect v_ExecCtrl_scenNamesHash", v_ExecCtrl_scenNames2Hash, " expected value must be different from it");
setverdict(fail);
}
if (v_ExecCtrl_scenNames3Hash != c_ExecCtrl_invalidIdx) {
setverdict(pass);
} else{
log(%definitionId,": incorrect v_ExecCtrl_scenNamesHash", v_ExecCtrl_scenNames3Hash, " expected value must be different from it");
setverdict(fail);
}
if (v_ExecCtrl_grpNamesHash != c_ExecCtrl_invalidIdx){
setverdict(pass);
} else{
log(%definitionId,": incorrect v_ExecCtrl_scenNamesHash", v_ExecCtrl_grpNamesHash, " expected value must be different from it");
setverdict(fail);
}*/
// if (sizeof(v_EPTF_ExecCtrl_ScenarioStateChangedCallbackFns) != 0){
// setverdict(pass);
// } else{
// log(%definitionId,": incorrect v_EPTF_ExecCtrl_ScenarioStateChangedCallbackFns value, ", v_EPTF_ExecCtrl_ScenarioStateChangedCallbackFns, " expected value must be nonzero");
// setverdict(fail);
// }
// if (sizeof(v_EPTF_ExecCtrl_ScenarioStateChangedCallbackFns) != 0) {
// setverdict(pass);
// } else {
// log("error: v_EPTF_ExecCtrl_ScenarioStateChangedCallbackFns is empty");
// setverdict(fail);
// }
var integer vl_expectedSize:=-1;
f_EPTF_ExecCtrl_Test_countExpectedScenario2GrpsSize(vl_expectedSize);
// if (sizeof(v_ExecCtrl_Scenarios2Grps) == vl_expectedSize){
// setverdict(pass);
// } else{
// log(%definitionId,": incorrect v_ExecCtrl_Scenarios2Grps size, ", sizeof(v_ExecCtrl_Scenarios2Grps), " expected value: ", vl_expectedSize);
// setverdict(fail);
// }
}
function f_EPTF_ExecCtrl_Test_init_CT(in integer pl_nOfClients)
runs on EPTF_ExecCtrl_Test_CT
{
if(v_EPTF_ExecCtrl_Test_initialized) { return;}
f_EPTF_ExecCtrl_init_CT("ExecCtrl", pl_nOfClients);
v_EPTF_ExecCtrl_Test_statError:=0;
v_EPTF_ExecCtrl_Test_scenarios := {};
v_steps := 0;
v_EPTF_ExecCtrl_Test_CPSChangedCallback_Called := false;
f_EPTF_ExecCtrl_Test_checkInit(pl_nOfClients);
}
function f_EPTF_ExecCtrl_Test_checkCleanup() runs on EPTF_ExecCtrl_Test_CT
{
// FIXME: update this for R3
var integer vl_id := 0;
if (f_EPTF_str2int_HashMap_GetID(c_EPTF_ExecCtrl_ScenarioGroupInstanceDB_HashName, vl_id) == false) {
setverdict(pass);
} else {
log(%definitionId,": error: ScenarioGroupInstanceDB was not cleaned up, id: ", vl_id);
setverdict(fail);
}
vl_id := 0;
if (f_EPTF_str2int_HashMap_GetID(c_EPTF_ExecCtrl_PhaseListDeclaratorDB_HashName, vl_id) == false) {
setverdict(pass);
} else {
log(%definitionId,": error: PhaseListDeclaratorDB was not cleaned up, id: ", vl_id);
setverdict(fail);
}
/* var integer vl_tempHashID;
if (sizeof(v_ExecCtrl_LGenResourceDB) == 0) {
setverdict(pass);
} else {
log(%definitionId,": error: v_ExecCtrl_LGenResourceDB not empty: ", v_ExecCtrl_LGenResourceDB);
setverdict(fail);
}
if (not f_EPTF_str2int_HashMap_GetID(c_ExecCtrl_scenarioNames, vl_tempHashID)) {
setverdict(pass);
} else {
log("error: ",c_ExecCtrl_scenarioNames, " hash table not deleted");
setverdict(fail);
}
if (not f_EPTF_str2int_HashMap_GetID(c_ExecCtrl_scenarioNames2, vl_tempHashID)) {
setverdict(pass);
} else {
log("error: ",c_ExecCtrl_scenarioNames2, " hash table not deleted");
setverdict(fail);
}
if (not f_EPTF_str2int_HashMap_GetID(c_ExecCtrl_scenarioNames3, vl_tempHashID)) {
setverdict(pass);
} else {
log("error: ",c_ExecCtrl_scenarioNames3, " hash table not deleted");
setverdict(fail);
}
if (not f_EPTF_str2int_HashMap_GetID(c_ExecCtrl_grpNames, vl_tempHashID)) {
setverdict(pass);
} else {
log("error: ",c_ExecCtrl_grpNames, " hash table not deleted");
setverdict(fail);
}*/
}
function f_EPTF_ExecCtrl_Test_initScTimeProfileListDB(
in EPTF_ExecCtrl_TimeProfileDescrList pl_TimeProfileDescrList,
in EPTF_ExecCtrl_TimeProfileList pl_TimeProfileList,
in EPTF_ExecCtrl_TimeProfile2TcList pl_TimeProfile2TcList)
runs on EPTF_ExecCtrl_Test_CT
{
var EPTF_ExecCtrl_TimeProfileItemList vl_timeProfileDescr := {};
var EPTF_ExecCtrl_TimeProfileDataList vl_timeProfileDataList := {};
var EPTF_ExecCtrl_TimeProfile_TCName vl_TcId := {
eGrpName := "",
scName := "",
tcName := ""
};
f_EPTF_ExecCtrl_getTimeProfileDescrByName("monday", vl_timeProfileDescr);
if(sizeof(vl_timeProfileDescr) != 0){
setverdict(pass);
}else {
log("Wrong time profile initiation");
setverdict(fail);
}
f_EPTF_ExecCtrl_getTimeProfileListByName("Days", vl_timeProfileDataList);
if (sizeof(vl_timeProfileDataList) != 0){
setverdict(pass);
}else {
log("Wrong time profile initiation");
setverdict(fail);
}
}
function f_EPTF_ExecCtrl_Test_checkRegulatorInit(
in EPTF_CharstringList pl_regulatorNames,
in EPTF_ExecCtrl_RegulatedItems pl_regulatorItems)
runs on EPTF_ExecCtrl_Test_CT
{
for(var integer i := 1; i < sizeof(pl_regulatorNames); i := i +1 )
{
var integer vl_regulatorId :=
f_EPTF_ExecCtrl_Regulator_getRegulatorId(pl_regulatorNames[i]);
if (vl_regulatorId != -1) {
setverdict(pass);
} else {
log("Error: There is no regulator Id with this name - ", pl_regulatorNames[i]);
setverdict(fail);
}
}
}
function f_EPTF_ExecCtrl_Test_countExpectedScenario2GrpsSize(
out integer pl_grp)
runs on EPTF_ExecCtrl_Test_CT
{
pl_grp := 0;
for(var integer i:=0; i<sizeof(tsp_LGenBase_Scenarios2Grps); i:=i+1) {
for(var integer j:=0; j<sizeof(tsp_LGenBase_Scenarios2Grps[i].scenarioNames);j:=j+1) {
pl_grp := pl_grp + 1;
}
}
}
function f_EPTF_ExecCtrl_Test_StartScenario(
in charstring pl_eGrpName,
in charstring pl_scenName,
in charstring pl_state)
runs on EPTF_ExecCtrl_Test_CT
{
for (var integer i := 0; i < sizeof(v_EPTF_ExecCtrl_Test_scenarios); i := i + 1) {
if (pl_eGrpName == v_EPTF_ExecCtrl_Test_scenarios[i].eGrpName and
pl_scenName == v_EPTF_ExecCtrl_Test_scenarios[i].scenName and
pl_state == "Idle" and
v_EPTF_ExecCtrl_Test_scenarios[i].state == -1)
{
log("-1 -> Idle");
f_EPTF_ExecCtrl_startScenarioOnLGensByName(pl_eGrpName,pl_scenName);
v_EPTF_ExecCtrl_Test_scenarios[i].state := c_EPTF_LGenBase_tcStateIdle;
}
}
}
function f_EPTF_ExecCtrl_Test_StartTC(
in charstring pl_eGrpName,
in charstring pl_scenName,
in charstring pl_tcName,
in charstring pl_state)
runs on EPTF_ExecCtrl_Test_CT
{
var integer vl_sIdx;
var integer vl_tcInstanceIdx;
var integer vl_tcIdx;
for (var integer i := 0; i < sizeof(v_EPTF_ExecCtrl_Test_scenarios); i := i + 1) {
if (pl_eGrpName == v_EPTF_ExecCtrl_Test_scenarios[i].eGrpName and
pl_scenName == v_EPTF_ExecCtrl_Test_scenarios[i].scenName and
v_EPTF_ExecCtrl_Test_scenarios[i].tcName == pl_tcName and
pl_state == "Idle" and
v_EPTF_ExecCtrl_Test_scenarios[i].state == -1)
{
vl_sIdx := f_EPTF_ExecCtrl_getScenarioIdx(v_EPTF_ExecCtrl_Test_scenarios[i].eGrpName,v_EPTF_ExecCtrl_Test_scenarios[i].scenName);
vl_tcInstanceIdx := f_EPTF_ExecCtrl_getTrafficCaseIdx(v_EPTF_ExecCtrl_Test_scenarios[i].eGrpName,v_EPTF_ExecCtrl_Test_scenarios[i].scenName,v_EPTF_ExecCtrl_Test_scenarios[i].tcName);
vl_tcIdx := f_EPTF_ExecCtrl_getTcOfScenarioIdx(vl_tcInstanceIdx);
log("-1 -> Idle");
f_EPTF_ExecCtrl_startTCOnLGens(vl_sIdx, vl_tcIdx);
v_EPTF_ExecCtrl_Test_scenarios[i].state := c_EPTF_LGenBase_tcStateIdle;
}
}
}
function f_EPTF_ExecCtrl_Test_UpdateScenarioState(
in charstring pl_eGrpName,
in charstring pl_scenName,
in charstring pl_state)
runs on EPTF_ExecCtrl_Test_CT
{
for (var integer i := 0; i < sizeof(v_EPTF_ExecCtrl_Test_scenarios); i := i + 1) {
if (pl_eGrpName == v_EPTF_ExecCtrl_Test_scenarios[i].eGrpName and
pl_scenName == v_EPTF_ExecCtrl_Test_scenarios[i].scenName) {
log("### v_EPTF_ExecCtrl_Test_scenarios[i].scenName: ", v_EPTF_ExecCtrl_Test_scenarios[i].scenName);
log("### old v_EPTF_ExecCtrl_Test_scenarios[i].sate: ", v_EPTF_ExecCtrl_Test_scenarios[i].state);
if (pl_state == "Off") {
v_EPTF_ExecCtrl_Test_scenarios[i].state := c_EPTF_LGenBase_tcStateCount;
//log("### new v_EPTF_ExecCtrl_Test_scenarios[i].state: Off");
} else {
for(var integer j:=0; j<sizeof(c_EPTF_LGenBase_stateNames); j:=j+1) {
if(c_EPTF_LGenBase_stateNames[j] == pl_state) {
v_EPTF_ExecCtrl_Test_scenarios[i].state := j;
log("### new v_EPTF_ExecCtrl_Test_scenarios[i].state: ", c_EPTF_LGenBase_stateNames[j]);
// found := true;
}
}
}
}
}
}
function f_EPTF_ExecCtrl_Test_UpdateTCState(
in charstring pl_eGrpName,
in charstring pl_scenName,
in charstring pl_tcName,
in charstring pl_state)
runs on EPTF_ExecCtrl_Test_CT
{
for (var integer i := 0; i < sizeof(v_EPTF_ExecCtrl_Test_scenarios); i := i + 1) {
if (pl_eGrpName == v_EPTF_ExecCtrl_Test_scenarios[i].eGrpName and
pl_scenName == v_EPTF_ExecCtrl_Test_scenarios[i].scenName and
pl_tcName == v_EPTF_ExecCtrl_Test_scenarios[i].tcName) {
log("### v_EPTF_ExecCtrl_Test_scenarios[i].scenName: ", v_EPTF_ExecCtrl_Test_scenarios[i].tcName);
log("### old v_EPTF_ExecCtrl_Test_scenarios[i].sate: ", v_EPTF_ExecCtrl_Test_scenarios[i].state);
if (pl_state == "Off") {
v_EPTF_ExecCtrl_Test_scenarios[i].state := c_EPTF_LGenBase_tcStateCount;
log("### new v_EPTF_ExecCtrl_Test_scenarios[i].state: Off");
} else {
for(var integer j:=0; j<sizeof(c_EPTF_LGenBase_stateNames); j:=j+1) {
if(c_EPTF_LGenBase_stateNames[j] == pl_state) {
v_EPTF_ExecCtrl_Test_scenarios[i].state := j;
log("### new v_EPTF_ExecCtrl_Test_scenarios[i].state: ", c_EPTF_LGenBase_stateNames[j]);
// found := true;
}
}
}
}
}
}
function f_EPTF_ExecCtrl_Test_checkScOff(in EPTF_ExecCtrl_Test_SCData pl_scenario)
runs on EPTF_ExecCtrl_Test_CT {
var integer state := -1;
for(var integer i:=0; i<sizeof(v_EPTF_ExecCtrl_Test_scenarios); i:=i+1) {
if(pl_scenario.eGrpName == v_EPTF_ExecCtrl_Test_scenarios[i].eGrpName and
pl_scenario.scenName == v_EPTF_ExecCtrl_Test_scenarios[i].scenName) {
state := v_EPTF_ExecCtrl_Test_scenarios[i].state;
}
}
if(state == c_EPTF_LGenBase_tcStateCount) {
setverdict(pass);
} else {
if(state < c_EPTF_LGenBase_tcStateCount and state > -1) {
log(%definitionId,": scenario (", pl_scenario.eGrpName, ",", pl_scenario.scenName,
") state is ", c_EPTF_LGenBase_stateNames[state]);
} else {
log(%definitionId,": scenario (", pl_scenario.eGrpName, ",", pl_scenario.scenName,
") state is unknown");
}
setverdict(fail);
}
}
function f_EPTF_ExecCtrl_Test_checkScRunning_withRetVal(in EPTF_ExecCtrl_Test_SCData pl_scenario)
runs on EPTF_ExecCtrl_Test_CT return boolean {
var integer state := -2;
for(var integer i:=0; i<sizeof(v_EPTF_ExecCtrl_Test_scenarios); i:=i+1) {
if(pl_scenario.eGrpName == v_EPTF_ExecCtrl_Test_scenarios[i].eGrpName and
pl_scenario.scenName == v_EPTF_ExecCtrl_Test_scenarios[i].scenName) {
state := v_EPTF_ExecCtrl_Test_scenarios[i].state;
}
}
if(state == c_EPTF_LGenBase_tcStateRunning) {
return true;
}
return false;
}
function f_EPTF_ExecCtrl_Test_checkScRunning(in EPTF_ExecCtrl_Test_SCData pl_scenario)
runs on EPTF_ExecCtrl_Test_CT {
var integer state := -2;
for(var integer i:=0; i<sizeof(v_EPTF_ExecCtrl_Test_scenarios); i:=i+1) {
if(pl_scenario.eGrpName == v_EPTF_ExecCtrl_Test_scenarios[i].eGrpName and
pl_scenario.scenName == v_EPTF_ExecCtrl_Test_scenarios[i].scenName) {
state := v_EPTF_ExecCtrl_Test_scenarios[i].state;
}
}
if(state == c_EPTF_LGenBase_tcStateRunning) {
setverdict(pass);
} else {
if(state < c_EPTF_LGenBase_tcStateCount and state > -1) {
log(%definitionId,": scenario (", pl_scenario.eGrpName, ",", pl_scenario.scenName,
") state is ", c_EPTF_LGenBase_stateNames[state]);
} else {
if (state >= c_EPTF_LGenBase_tcStateCount) {
log(%definitionId,": scenario (", pl_scenario.eGrpName, ",", pl_scenario.scenName,
") state is Off");
} else {
log(%definitionId,": scenario (", pl_scenario.eGrpName, ",", pl_scenario.scenName,
") state is unknown");
}
}
setverdict(fail);
}
}
function f_EPTF_ExecCtrl_Test_checkScNotRunning(in EPTF_ExecCtrl_Test_SCData pl_scenario)
runs on EPTF_ExecCtrl_Test_CT {
var integer state := -2;
for(var integer i:=0; i<sizeof(v_EPTF_ExecCtrl_Test_scenarios); i:=i+1) {
if(pl_scenario.eGrpName == v_EPTF_ExecCtrl_Test_scenarios[i].eGrpName and
pl_scenario.scenName == v_EPTF_ExecCtrl_Test_scenarios[i].scenName) {
state := v_EPTF_ExecCtrl_Test_scenarios[i].state;
}
}
if(state == -2) {
log(%definitionId,": scenario (", pl_scenario.eGrpName, ",", pl_scenario.scenName,
") not found in v_EPTF_ExecCtrl_Test_scenarios: ", v_EPTF_ExecCtrl_Test_scenarios);
//setverdict(fail); - done by stopAll
f_EPTF_Base_stopAll();
} else if (state == -1) {
log("Error: scenario state not initiated.");
setverdict(fail);
} else if (state >= c_EPTF_LGenBase_tcStateCount) {
log("Expected Scenario State: Off");
setverdict(pass);
}
else if(state != c_EPTF_LGenBase_tcStateRunning) {
log("Expected Scenario State: ", c_EPTF_LGenBase_stateNames[state])
setverdict(pass);
} else {
log(%definitionId,": scenario (", pl_scenario.eGrpName, ",", pl_scenario.scenName,
") is running");
setverdict(fail);
}
}
function f_EPTF_ExecCtrlClient_Test_allScenarioCreated() runs on EPTF_ExecCtrlClient_Test_CT
{
log(%definitionId," Called");
setverdict(pass);
}
function f_EPTF_ExecCtrlClient_Test_scenarioInitialized(
in EPTF_LGenBase_Scenario2Grp pl_scenario) runs on EPTF_ExecCtrlClient_Test_CT
{
log(%definitionId," Called: ", pl_scenario);
setverdict(pass);
}
/*
function f_EPTF_ExecCtrl_Test_getTypeFromGroup(
in charstring pl_name,
in integer pl_nOfClients, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
var charstring vl_grp := "grp0";
var charstring vl_type;
t_test.start(pl_time);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
alt {
[] t_test.timeout {
f_EPTF_ExecCtrl_getTypeFromGroup(vl_grp, vl_type);
if (vl_type == "Entity_A") {
setverdict(pass);
} else {
log(vl_type, " - Wrong Entity type for grp0, it must be Entity_A.")
setverdict(fail);
}
repeat;
}
}
}*/
/*
function f_EPTF_ExecCtrl_Test_getETypeFromScenario(
in charstring pl_name,
in integer pl_nOfClients, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
t_test.start(pl_time);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
alt {
[] t_test.timeout {
if (f_EPTF_ExecCtrl_getETypeFromScenario(0, "Entity_A")) {
setverdict(pass);
} else {
log("Wrong Entity type for Scenario 0")
setverdict(fail);
}
if (f_EPTF_ExecCtrl_getETypeFromScenario(0, "Entity_B")) {
log("Wrong Entity type for Scenario 0")
setverdict(fail);
} else {
setverdict(pass);
}
if (f_EPTF_ExecCtrl_getETypeFromScenario(10, "Entity_B")) {
log("Wrong Entity type for Scenario 10")
setverdict(fail);
} else {
setverdict(pass);
}
repeat;
}
}
}*/
/*
function f_EPTF_ExecCtrl_Test_getTcIdx(
in charstring pl_name,
in integer pl_nOfClients, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
t_test.start(pl_time);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
var integer vl_tcIdx;
alt {
[] t_test.timeout {
vl_tcIdx := f_EPTF_ExecCtrl_getTcIdx("scenario_0", "TC1");
if (vl_tcIdx == 1) {
setverdict(pass);
} else {
log("Wrong TC index in scenario_0: ", vl_tcIdx);
setverdict(fail);
}
vl_tcIdx := f_EPTF_ExecCtrl_getTcIdx("scenario_0_declarator2", "TC0_declarator2");
if (vl_tcIdx == 0) {
setverdict(pass);
} else {
log("Wrong TC index in scenario_0_declarator2: ", vl_tcIdx);
setverdict(fail);
}
vl_tcIdx := f_EPTF_ExecCtrl_getTcIdx("scenario_0_declarator3","TC0_declarator2");
if (vl_tcIdx == 0) {
setverdict(pass);
} else {
log("Wrong TC index in scenario_0_declarator3: ", vl_tcIdx);
setverdict(fail);
}
vl_tcIdx := f_EPTF_ExecCtrl_getTcIdx("scenario_0_declarator3", "TC0_declarator2");
if (vl_tcIdx == 1) {
log("Wrong TC index in scenario_0_declarator3: ", vl_tcIdx);
setverdict(fail);
} else {
setverdict(pass);
}
repeat;
}
}
}*/
function f_EPTF_ExecCtrl_Test_scenarioEnabled(
in charstring pl_name,
in integer pl_nOfClients, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
t_test.start(pl_time);
alt {
[] t_test.timeout {
if (f_EPTF_ExecCtrl_scenarioEnabled(1)) {
setverdict(pass);
} else {
log("Scenario should be disabled: scenario_0_declarator3");
setverdict(fail);
}
repeat;
}
}
}
/*
function f_EPTF_ExecCtrl_Test_getTcName(
in charstring pl_name,
in integer pl_nOfClients, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
t_test.start(pl_time);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
var charstring vl_tcName;
alt {
[] t_test.timeout {
vl_tcName := f_EPTF_ExecCtrl_getTcName("scenario_0",1);
if (vl_tcName == "TC1") {
setverdict(pass);
} else {
log("Wrong TC Name in scenario_0: ", vl_tcName);
setverdict(fail);
}
vl_tcName := f_EPTF_ExecCtrl_getTcName("scenario_0_declarator2",0);
if (vl_tcName == "TC0_declarator2") {
setverdict(pass);
} else {
log("Wrong TC Name in scenario_0_declarator2: ", vl_tcName);
setverdict(fail);
}
vl_tcName := f_EPTF_ExecCtrl_getTcName("scenario_0_declarator3",0);
if (vl_tcName == "TC0_declarator2") {
setverdict(pass);
} else {
log("Wrong TC Name in scenario_0_declarator3: ", vl_tcName);
setverdict(fail);
}
vl_tcName := f_EPTF_ExecCtrl_getTcName("scenario_0_declarator3", 1);
if (vl_tcName == "TC0_declarator2") {
log("Wrong TC Name in scenario_0_declarator3: ", vl_tcName);
setverdict(fail);
} else {
setverdict(pass);
}
repeat;
}
}
}*/
/*
This test makes no sense
function f_EPTF_ExecCtrl_Test_getScenGrpIdx(
in charstring pl_name,
in integer pl_nOfClients, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
t_test.start(pl_time);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
var integer vl_ScenGrpIdx;
alt {
[] t_test.timeout {
vl_ScenGrpIdx := f_EPTF_ExecCtrl_ScenarioGroup_getIdx("scenario_0_declarator2");
if (vl_ScenGrpIdx == 0) {
setverdict(pass);
} else {
log("Wrong TC Name in scenario_0: ", vl_ScenGrpIdx);
setverdict(fail);
}
vl_ScenGrpIdx := f_EPTF_ExecCtrl_ScenarioGroup_getIdx("scenario_0");
if (vl_ScenGrpIdx == 0) {
setverdict(pass);
} else {
log("Wrong TC Name in scenario_0: ", vl_ScenGrpIdx);
setverdict(fail);
}
repeat;
}
}
}*/
function f_EPTF_ExecCtrl_Test_manualControlTrue(
in charstring pl_name,
in integer pl_nOfClients,
in EPTF_ExecCtrl_Test_SCDataList pl_scens,
in float pl_time)
runs on EPTF_ExecCtrl_Test_CT {
f_EPTF_ExecCtrl_setManualControl(true);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
t_test.start(pl_time);
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
alt
{
[] t_test.timeout {
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScNotRunning(pl_scens[i]);
}
repeat;
}
} // alt
}
function f_EPTF_ExecCtrl_Test_manualControlFalse(
in charstring pl_name,
in integer pl_nOfClients,
in EPTF_ExecCtrl_Test_SCDataList pl_scens,
in float pl_time)
runs on EPTF_ExecCtrl_Test_CT {
f_EPTF_ExecCtrl_setManualControl(false);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
t_test.start(pl_time);
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
alt
{
[] t_test.timeout {
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScRunning(pl_scens[i]);
}
repeat;
}
} // alt
}
function f_EPTF_ExecCtrl_Test_startScenarioOnLGens(
in charstring pl_name,
in integer pl_nOfClients,
in EPTF_ExecCtrl_Test_SCDataList pl_scens,
in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
f_EPTF_ExecCtrl_setManualControl(true);
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
t_test.start(pl_time);
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_StartScenario));
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
alt
{
[] t_test.timeout {
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScRunning(pl_scens[i]);
}
repeat;
}
} // alt
}
function f_EPTF_ExecCtrl_Test_stopScenarioOnLGens(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_ExecCtrl_Test_SCDataList pl_scens, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_setManualControl(true);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
t_test.start(pl_time);
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_StartScenario));
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
alt
{
[] t_test.timeout {
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScRunning(pl_scens[i]);
f_EPTF_ExecCtrl_stopScenarioOnLGensByName(pl_scens[i].eGrpName, pl_scens[i].scenName);
}
t_test.start(tsp_EPTF_Var_SyncInterval+2.0);
t_test.timeout;
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScNotRunning(pl_scens[i]);
}
repeat;
}
} // alt
}
function f_EPTF_ExecCtrl_Test_startTCOnLGens(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_ExecCtrl_Test_SCDataList pl_scens, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
f_EPTF_ExecCtrl_setManualControl(true);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
t_test.start(pl_time);
alt
{
[] t_test.timeout {
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScNotRunning(pl_scens[i]);
// f_EPTF_ExecCtrl_startTCOnLGens(f_EPTF_ExecCtrl_getScenarioIdx(pl_scens[i].scenName), f_EPTF_ExecCtrl_getTrafficCaseIdx(pl_scens[i].tcName));
f_EPTF_ExecCtrl_startTCOnLGens(
f_EPTF_ExecCtrl_getScenarioIdx(pl_scens[i].eGrpName,pl_scens[i].scenName),
f_EPTF_ExecCtrl_getTcOfScenarioIdx(f_EPTF_ExecCtrl_getTrafficCaseIdx(pl_scens[i].eGrpName,pl_scens[i].scenName,pl_scens[i].tcName))
);
}
t_test.start(tsp_EPTF_Var_SyncInterval+2.0);
t_test.timeout;
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScRunning(pl_scens[i]);
}
f_EPTF_ExecCtrl_stopAllScenarios();
repeat;
}
}
}
function f_EPTF_ExecCtrl_Test_stopTCOnLGensByName(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_ExecCtrl_Test_SCDataList pl_scens, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
f_EPTF_ExecCtrl_setManualControl(true);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
t_test.start(pl_time);
alt
{
[] t_test.timeout {
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScNotRunning(pl_scens[i]);
// f_EPTF_ExecCtrl_startTCOnLGens(f_EPTF_ExecCtrl_getScenarioIdx(pl_scens[i].scenName),f_EPTF_ExecCtrl_getTrafficCaseIdx(pl_scens[i].tcName));
f_EPTF_ExecCtrl_startTCOnLGens(
f_EPTF_ExecCtrl_getScenarioIdx(pl_scens[i].eGrpName,pl_scens[i].scenName),
f_EPTF_ExecCtrl_getTcOfScenarioIdx(f_EPTF_ExecCtrl_getTrafficCaseIdx(pl_scens[i].eGrpName,pl_scens[i].scenName,pl_scens[i].tcName))
);
// f_EPTF_ExecCtrl_stopTCOnLGens(f_EPTF_ExecCtrl_getScenarioIdx(pl_scens[i].scenName),f_EPTF_ExecCtrl_getTrafficCaseIdx(pl_scens[i].tcName));
f_EPTF_ExecCtrl_stopTCOnLGens(
f_EPTF_ExecCtrl_getScenarioIdx(pl_scens[i].eGrpName,pl_scens[i].scenName),
f_EPTF_ExecCtrl_getTcOfScenarioIdx(f_EPTF_ExecCtrl_getTrafficCaseIdx(pl_scens[i].eGrpName,pl_scens[i].scenName,pl_scens[i].tcName))
);
}
t_test.start(tsp_EPTF_Var_SyncInterval+2.0);
t_test.timeout;
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScNotRunning(pl_scens[i]);
}
repeat;
}
} //alt
}
function f_EPTF_ExecCtrl_Test_checkScenarioStatus(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_ExecCtrl_Test_SCDataList pl_scens, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_StartScenario));
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
t_test.start(pl_time);
alt
{
[] t_test.timeout {
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScRunning(pl_scens[i]);
}
repeat;
}
} // alt
}
function f_EPTF_ExecCtrl_Test_stopAllScenarios(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_ExecCtrl_Test_SCDataList pl_scens, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
f_EPTF_ExecCtrl_setManualControl(true);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_StartScenario));
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
t_test.start(pl_time);
alt
{
[] t_test.timeout {
f_EPTF_ExecCtrl_stopAllScenarios();
t_test.start(tsp_EPTF_Var_SyncInterval+2.0);
t_test.timeout;
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScNotRunning(pl_scens[i]);
}
repeat;
}
} //alt
}
function f_EPTF_ExecCtrl_Test_startAllScenarios(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_ExecCtrl_Test_SCDataList pl_scens, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
f_EPTF_ExecCtrl_setManualControl(true);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
t_test.start(pl_time);
alt
{
[] t_test.timeout {
f_EPTF_ExecCtrl_startAllScenarios();
t_test.start(tsp_EPTF_Var_SyncInterval+2.0);
t_test.timeout;
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScRunning(pl_scens[i]);
}
f_EPTF_Base_stopAll(none);
repeat;
}
} //alt
}
function f_EPTF_ExecCtrl_Test_checkAllScenarios(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_ExecCtrl_Test_SCDataList pl_scens, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
f_EPTF_ExecCtrl_setManualControl(true);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
template charstring t_runningState := ("Running");
template charstring t_notRunningState := ("Finished","Stopped","Idle");
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
//f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_StartScenario));
t_test.start(pl_time);
alt
{
[] t_test.timeout {
//Check runnning scenarios
f_EPTF_ExecCtrl_startAllScenarios();
t_test.start(tsp_EPTF_Var_SyncInterval+2.0);
t_test.timeout;
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScRunning(pl_scens[i]);
}
//Check scenario statuses with new function
if(f_EPTF_ExecCtrl_checkAllScenarios(t_runningState)) {setverdict(pass);} else {setverdict(fail);}
//Check stopped scenarios
f_EPTF_ExecCtrl_stopAllScenarios();
t_test.start(tsp_EPTF_Var_SyncInterval+2.0);
t_test.timeout;
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScNotRunning(pl_scens[i]);
}
//Check scenario statuses with new function
if(f_EPTF_ExecCtrl_checkAllScenarios(t_notRunningState)) {setverdict(pass);} else {setverdict(fail);}
f_EPTF_Base_stopAll(none);
repeat;
}
} //alt
}
function f_EPTF_ExecCtrl_Test_setCps_TC(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_ExecCtrl_Test_SCDataList pl_scens, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
var integer vl_sIdx;
var integer vl_tcIdx;
var float vl_cps;
var integer vl_count := 0;
f_EPTF_ExecCtrl_setManualControl(true);
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
f_EPTF_Var_setSyncInterval(1.5)
//f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_StartScenario));
f_EPTF_ExecCtrl_registerTrafficCaseStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_StartTC));
f_EPTF_ExecCtrl_registerTrafficCaseStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateTCState));
t_test.start(pl_scens[0].timeProfile[vl_count].time);
alt
{
[] t_test.timeout {
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1)
{
vl_sIdx := f_EPTF_ExecCtrl_getScenarioIdx(pl_scens[i].eGrpName,pl_scens[i].scenName);
var integer vl_tcInstanceIdx := f_EPTF_ExecCtrl_getTrafficCaseIdx(pl_scens[i].eGrpName,pl_scens[i].scenName,pl_scens[i].tcName);
vl_tcIdx := f_EPTF_ExecCtrl_getTcOfScenarioIdx(vl_tcInstanceIdx);
vl_cps := pl_scens[i].timeProfile[vl_count].targetValue;
f_EPTF_ExecCtrl_setCps_TC(vl_sIdx, vl_tcIdx, vl_cps);
f_EPTF_ExecCtrl_Test_checkScRunning(pl_scens[i]);
}
vl_count := vl_count + 1;
if (vl_count < sizeof(pl_scens[0].timeProfile)) {
t_test.start(pl_scens[0].timeProfile[vl_count].time - pl_scens[0].timeProfile[vl_count - 1].time);
}
repeat;
}
} // alt
}
function f_EPTF_ExecCtrl_Test_trafficCaseCPSChangedCallbackFn(in float pl_cps, in integer pl_tcIdx) runs on EPTF_ExecCtrl_Test_CT {
v_EPTF_ExecCtrl_Test_CPSChangedCallback_Called := true;
log(%definitionId&" TrafficCaseCPSChanged callback called with pl_cps: ", pl_cps, ", pl_tcIdx: ", pl_tcIdx, ", TC name: ", f_EPTF_ExecCtrl_getTrafficCaseName(pl_tcIdx));
}
function f_EPTF_ExecCtrl_Test_setCps_TCCPSChangedCallback(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_ExecCtrl_Test_SCDataList pl_scens, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
var integer vl_sIdx;
var integer vl_tcIdx;
var float vl_cps;
var integer vl_count := 0;
f_EPTF_ExecCtrl_setManualControl(true);
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
//f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_StartScenario));
f_EPTF_ExecCtrl_registerTrafficCaseStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_StartTC));
f_EPTF_ExecCtrl_registerTrafficCaseStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateTCState));
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_registerCPSChangedCallback_TC(
f_EPTF_ExecCtrl_getTrafficCaseIdx(pl_scens[i].eGrpName,pl_scens[i].scenName,pl_scens[i].tcName),
refers(f_EPTF_ExecCtrl_Test_trafficCaseCPSChangedCallbackFn)
)
}
t_test.start(pl_scens[0].timeProfile[vl_count].time);
alt
{
[] t_test.timeout {
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1)
{
vl_sIdx := f_EPTF_ExecCtrl_getScenarioIdx(pl_scens[i].eGrpName,pl_scens[i].scenName);
var integer vl_tcInstanceIdx := f_EPTF_ExecCtrl_getTrafficCaseIdx(pl_scens[i].eGrpName,pl_scens[i].scenName,pl_scens[i].tcName);
vl_tcIdx := f_EPTF_ExecCtrl_getTcOfScenarioIdx(vl_tcInstanceIdx);
vl_cps := pl_scens[i].timeProfile[vl_count].targetValue;
log("*** TrafficCaseCPSChanged check")
v_EPTF_ExecCtrl_Test_CPSChangedCallback_Called := false;
f_EPTF_ExecCtrl_setCps_TC(vl_sIdx, vl_tcIdx, vl_cps);
if (not v_EPTF_ExecCtrl_Test_CPSChangedCallback_Called) {
log(%definitionId&" Error: TrafficCaseCPSChanged callback is not called for traffic case: ", vl_tcInstanceIdx);
setverdict(fail);
}
f_EPTF_ExecCtrl_Test_checkScRunning(pl_scens[i]);
}
vl_count := vl_count + 1;
if (vl_count < sizeof(pl_scens[0].timeProfile)) {
t_test.start(pl_scens[0].timeProfile[vl_count].time - pl_scens[0].timeProfile[vl_count - 1].time);
}
repeat;
}
} // alt
}
function f_EPTF_ExecCtrl_Test_setCps_SC(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_ExecCtrl_Test_SCDataList pl_scens, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
var integer vl_sIdx;
var float vl_cps;
var integer vl_count := 0;
f_EPTF_ExecCtrl_setManualControl(true);
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_StartScenario));
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
t_test.start(pl_scens[0].timeProfile[vl_count].time);
alt
{
[] t_test.timeout {
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1)
{
vl_sIdx := f_EPTF_ExecCtrl_getScenarioIdx(pl_scens[i].eGrpName,pl_scens[i].scenName);
vl_cps := pl_scens[i].timeProfile[vl_count].targetValue;
f_EPTF_ExecCtrl_setCps_SC(vl_sIdx, vl_cps);
f_EPTF_ExecCtrl_Test_checkScRunning(pl_scens[i]);
}
vl_count := vl_count + 1;
if (vl_count < sizeof(pl_scens[0].timeProfile)) {
t_test.start(pl_scens[0].timeProfile[vl_count].time - pl_scens[0].timeProfile[vl_count - 1].time);
}
repeat;
}
} // alt
}
function f_EPTF_ExecCtrl_Test_scenarioCPSChangedCallbackFn(in float pl_cps, in integer pl_scIdx) runs on EPTF_ExecCtrl_Test_CT {
v_EPTF_ExecCtrl_Test_CPSChangedCallback_Called := true;
log(%definitionId&" ScenarioCPSChanged callback called with pl_cps: ", pl_cps, ", pl_scIdx: ", pl_scIdx, ", SC name: ", f_EPTF_ExecCtrl_getScenarioInstanceName(pl_scIdx));
}
function f_EPTF_ExecCtrl_Test_setCps_SCCPSChangedCallback(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_ExecCtrl_Test_SCDataList pl_scens, in float pl_time)
runs on EPTF_ExecCtrl_Test_CT
{
var integer vl_sIdx;
var integer vl_tcIdx;
var float vl_cps;
var integer vl_count := 0;
f_EPTF_ExecCtrl_setManualControl(true);
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients);
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_StartScenario));
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_ExecCtrl_registerCPSChangedCallback_SC(
f_EPTF_ExecCtrl_getScenarioIdx(pl_scens[i].eGrpName,pl_scens[i].scenName),
refers(f_EPTF_ExecCtrl_Test_scenarioCPSChangedCallbackFn)
)
f_EPTF_ExecCtrl_startScenarioOnLGensByName(pl_scens[i].eGrpName,pl_scens[i].scenName);
}
t_test.start(pl_scens[0].timeProfile[vl_count].time);
alt
{
[] t_test.timeout {
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1)
{
vl_sIdx := f_EPTF_ExecCtrl_getScenarioIdx(pl_scens[i].eGrpName,pl_scens[i].scenName);
vl_cps := pl_scens[i].timeProfile[vl_count].targetValue;
log("*** ScenarioCPSChanged check")
v_EPTF_ExecCtrl_Test_CPSChangedCallback_Called := false;
f_EPTF_ExecCtrl_setCps_SC(vl_sIdx, vl_cps);
if (not v_EPTF_ExecCtrl_Test_CPSChangedCallback_Called) {
log(%definitionId&" Error: ScenarioCPSChanged callback is not called for scenario: ", vl_sIdx, ", SC name: ", f_EPTF_ExecCtrl_getScenarioInstanceName(vl_sIdx));
setverdict(fail);
}
f_EPTF_ExecCtrl_Test_checkScRunning(pl_scens[i]);
}
vl_count := vl_count + 1;
if (vl_count < sizeof(pl_scens[0].timeProfile)) {
t_test.start(pl_scens[0].timeProfile[vl_count].time - pl_scens[0].timeProfile[vl_count - 1].time);
}
repeat;
}
} // alt
}
function f_EPTF_ExecCtrlClient_Test_CPS(
in charstring pl_selfName,
in EPTF_ExecCtrl_Test_CT pl_execCtrl,
in EPTF_ExecCtrl_Test_SCDataList pl_scens,
in boolean pl_checkCpsToReach := true,
in float pl_measureTime := 2.0)
runs on EPTF_ExecCtrlClient_Test_CT
{
timer tl_test;
var float vl_currentCPS := 0.0;
var float vl_targetCPS := 0.0;
var integer vl_count := 0;
v_EPTF_ExecCtrlClient_Test_scenarios := pl_scens;
f_EPTF_ExecCtrlClient_Test_init(pl_selfName, pl_execCtrl);
f_EPTF_Var_setSyncInterval(0.5);
timer t_wait := 0.0;
var charstring vl_varName := "ExecCtrlClient.trafficCaseStatus."&pl_scens[0].eGrpName&"."&pl_scens[0].scenName&"."&pl_scens[0].tcName;
t_wait.start;
alt {
[f_EPTF_Var_getId(vl_varName)!=-1 and f_EPTF_Var_getCharstringValue(f_EPTF_Var_getId(vl_varName))==c_EPTF_LGenBase_stateNames[c_EPTF_LGenBase_tcStateRunning]] t_wait.timeout {
tl_test.start(v_EPTF_ExecCtrlClient_Test_scenarios[0].timeProfile[vl_count].time+f_EPTF_Var_getRefreshPeriod(0)*2.1);
repeat;
}
[] tl_test.timeout {
log(">>>Timeout occured, scenarios: ",v_EPTF_ExecCtrlClient_Test_scenarios);
if(not f_EPTF_LGenBase_initialized()) {setverdict(fail);return;}
for(var integer i := 0; i < sizeof(v_EPTF_ExecCtrlClient_Test_scenarios); i := i + 1 ) {
var float vl_maxError := 0.001;
if(pl_checkCpsToReach) {
if(f_EPTF_ExecCtrlTest_isWeightedScenariobyName(pl_scens[i].eGrpName, pl_scens[i].scenName)) {
vl_currentCPS := f_EPTF_LGenBase_getScCpsSoReachByName(pl_scens[i].eGrpName, pl_scens[i].scenName);
} else {
f_EPTF_LGenBase_logEntityGroups();//just to see the problem
vl_currentCPS := f_EPTF_LGenBase_getTcCpsToReachByName(pl_scens[i].eGrpName, pl_scens[i].scenName, pl_scens[i].tcName);
}
} else {
if(f_EPTF_ExecCtrlTest_isWeightedScenariobyName(pl_scens[i].eGrpName, pl_scens[i].scenName)) {
vl_currentCPS := f_EPTF_ExecCtrlTest_getWeightedScenarioCps(pl_scens[i].eGrpName, pl_scens[i].scenName);
} else {
vl_currentCPS := f_EPTF_LGenBase_getMeasuredCPSByNames(pl_scens[i].eGrpName, pl_scens[i].scenName, pl_scens[i].tcName);
}
vl_maxError := 1.0;
}
vl_targetCPS := pl_scens[i].timeProfile[vl_count].targetValue;
if(vl_currentCPS < vl_targetCPS + vl_maxError and vl_currentCPS > vl_targetCPS - vl_maxError)
{
log("Current CPS: ", vl_currentCPS, " expected: ", vl_targetCPS);
setverdict(pass)
} else {
log("Current CPS: ", vl_currentCPS, " expected: ", vl_targetCPS);
setverdict(fail)
}
}
vl_count := vl_count + 1;
if (vl_count < sizeof(pl_scens[0].timeProfile)) {
tl_test.start(pl_scens[0].timeProfile[vl_count].time - pl_scens[0].timeProfile[vl_count - 1].time);
}
repeat;
}
}
}
function f_EPTF_ExecCtrlClient_Test_trafficCaseCPSChangedCallbackFn(in float pl_cps, in integer pl_tcIdx) runs on EPTF_ExecCtrlClient_Test_CT {
v_EPTF_ExecCtrlClient_Test_CPSChangedCallback_Called := true;
var charstring vl_eGrpName;
var charstring vl_scName;
var charstring vl_tcName;
f_EPTF_LGenBase_trafficCaseIdNames(pl_tcIdx,vl_eGrpName,vl_scName,vl_tcName);
log(%definitionId&" TrafficCaseCPSChanged callback called with pl_cps: ", pl_cps, ", pl_tcIdx: ", pl_tcIdx, ", TC name: ", vl_eGrpName,".",vl_scName,".",vl_tcName);
}
function f_EPTF_ExecCtrlClient_Test_CPSChangedCallbackCheck() runs on EPTF_ExecCtrlClient_Test_CT {
if (not v_EPTF_ExecCtrlClient_Test_CPSChangedCallback_Called) {
log(%definitionId&" TrafficCaseCPSChanged callback was not called.");
setverdict(fail)
}
else {
setverdict(pass);
}
}
function f_EPTF_ExecCtrlClient_Test_cleanupWaiting() runs on EPTF_ExecCtrlClient_Test_CT
{
f_EPTF_ExecCtrlClient_readyToStart();
timer t1;
t1.start(10.0);
t1.timeout;
if(f_EPTF_ExecCtrlClient_checkEndOfConfig()){
setverdict(fail, "Error: EndOfConfig should not be handled during cleanup, but now it is");
} else {
setverdict(pass);
}
}
function f_EPTF_ExecCtrlClient_Test_CPSChangedCallback_TC(
in charstring pl_selfName,
in EPTF_ExecCtrl_Test_CT pl_execCtrl,
in EPTF_ExecCtrl_Test_SCDataList pl_scens,
in boolean pl_checkCpsToReach := true,
in float pl_measureTime := 2.0)
runs on EPTF_ExecCtrlClient_Test_CT
{
timer tl_test;
var float vl_currentCPS := 0.0;
var float vl_targetCPS := 0.0;
var integer vl_count := 0;
v_EPTF_ExecCtrlClient_Test_scenarios := pl_scens;
v_EPTF_ExecCtrlClient_Test_CPSChangedCallback_Called := false;
f_EPTF_ExecCtrlClient_Test_init(pl_selfName, pl_execCtrl);
f_EPTF_Base_registerCleanup(refers(f_EPTF_ExecCtrlClient_Test_CPSChangedCallbackCheck));
tl_test.start(0.0);
alt {
[f_EPTF_ExecCtrlClient_checkEndOfConfig()] tl_test.timeout {
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_LGenBase_registerCPSChangedCallback_TC(
pl_scens[i].eGrpName,pl_scens[i].scenName,pl_scens[i].tcName,
refers(f_EPTF_ExecCtrlClient_Test_trafficCaseCPSChangedCallbackFn)
)
}
}
}
tl_test.start(v_EPTF_ExecCtrlClient_Test_scenarios[0].timeProfile[vl_count].time + pl_measureTime);
alt {
[] tl_test.timeout {
for(var integer i := 0; i < sizeof(v_EPTF_ExecCtrlClient_Test_scenarios); i := i + 1 ) {
var float vl_maxError := 0.001;
if(pl_checkCpsToReach) {
if(f_EPTF_ExecCtrlTest_isWeightedScenariobyName(pl_scens[i].eGrpName, pl_scens[i].scenName)) {
vl_currentCPS := f_EPTF_LGenBase_getScCpsSoReachByName(pl_scens[i].eGrpName, pl_scens[i].scenName);
} else {
vl_currentCPS := f_EPTF_LGenBase_getTcCpsToReachByName(pl_scens[i].eGrpName, pl_scens[i].scenName, pl_scens[i].tcName);
}
} else {
if(f_EPTF_ExecCtrlTest_isWeightedScenariobyName(pl_scens[i].eGrpName, pl_scens[i].scenName)) {
vl_currentCPS := f_EPTF_ExecCtrlTest_getWeightedScenarioCps(pl_scens[i].eGrpName, pl_scens[i].scenName);
} else {
vl_currentCPS := f_EPTF_LGenBase_getMeasuredCPSByNames(pl_scens[i].eGrpName, pl_scens[i].scenName, pl_scens[i].tcName);
}
vl_maxError := 1.0;
}
vl_targetCPS := pl_scens[i].timeProfile[vl_count].targetValue;
if(vl_currentCPS < vl_targetCPS + vl_maxError and vl_currentCPS > vl_targetCPS - vl_maxError)
{
log("Current CPS: ", vl_currentCPS, " expected: ", vl_targetCPS);
setverdict(pass)
} else {
log("Current CPS: ", vl_currentCPS, " expected: ", vl_targetCPS);
setverdict(fail)
}
}
vl_count := vl_count + 1;
if (vl_count < sizeof(pl_scens[0].timeProfile)) {
tl_test.start(pl_scens[0].timeProfile[vl_count].time - pl_scens[0].timeProfile[vl_count - 1].time);
}
repeat;
}
}
}
function f_EPTF_ExecCtrlClient_Test_CPSFromTimeProfile(
in charstring pl_selfName,
in EPTF_ExecCtrl_Test_CT pl_execCtrl,
in EPTF_ExecCtrl_TimeProfileItemList pl_timeProfile)
runs on EPTF_ExecCtrlClient_Test_CT
{
timer tl_test;
var integer vl_count := 0;
f_EPTF_ExecCtrlClient_Test_init(pl_selfName, pl_execCtrl);
tl_test.start(pl_timeProfile[vl_count].time + 0.7);
alt {
[] tl_test.timeout {
var float vl_cps := f_EPTF_LGenBase_getCPSByNames("grp0","scenario_0_declarator2","TC0_declarator2");
if(vl_cps < pl_timeProfile[vl_count].targetValue + 0.2 and
vl_cps > pl_timeProfile[vl_count].targetValue - 0.2)
{
log("Current CPS: ", vl_cps, " expected: ", pl_timeProfile[vl_count].targetValue);
setverdict(pass)
} else {
log("Current CPS: ", vl_cps, " expected: ", pl_timeProfile[vl_count].targetValue);
setverdict(fail)
}
vl_count := vl_count + 1;
log("### vl_count: ", vl_count, "sizeof(pl_timeProfile) ", sizeof(pl_timeProfile));
if (vl_count < sizeof(pl_timeProfile)) {
tl_test.start(pl_timeProfile[vl_count].time);
}
repeat;
}
}
}
function f_EPTF_ExecCtrl_UIHandler_Test_setCPS(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_UIHandler_CT pl_gui, in EPTF_ExecCtrl_Test_SCDataList pl_scens, in float pl_time)
runs on EPTF_ExecCtrl_UIHandler_Test_CT
{
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients, pl_dataSource_compRef := pl_gui);
var float vl_cps;
var integer vl_varID;
var integer vl_count := 0;
timer t_start, t_stop;
var EPTF_Var_DirectContent vl_Var_content;
var charstring vl_varName;
var float vl_now := 0.0;
v_EPTF_ExecCtrl_Test_scenarios := pl_scens;
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
t_start.start(0.0);
t_stop.start(pl_time);
alt
{
[f_EPTF_ExecCtrl_checkReadyToRun()] t_start.timeout { // note: moved here so the timing of pl_scens[0].timeProfile stays in-sync with client
vl_now := f_EPTF_Base_getRelTimeInSecs();
f_EPTF_Var_logNames("##### Vars ####");
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
var integer vl_scIdx := f_EPTF_ExecCtrl_getScenarioIdx(pl_scens[i].eGrpName,pl_scens[i].scenName);
if(f_EPTF_ExecCtrl_isWeightedScenario(vl_scIdx)) {
vl_varName := "ExecCtrl.startScenario." & pl_scens[i].eGrpName & "." & pl_scens[i].scenName;
} else {
vl_varName := "ExecCtrl.startTC." & pl_scens[i].eGrpName & "." & pl_scens[i].scenName & "." & pl_scens[i].tcName;
}
vl_varID := f_EPTF_Var_getId(vl_varName);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {boolVal := true});
var float vl_remainingTime := pl_scens[0].timeProfile[0].time - vl_now;
if(vl_remainingTime < 0.0) {
log(%definitionId&": cannot start test timer with negative value. It is possible that the GUI took too much time to initialize.");
f_EPTF_Base_stopAll(inconc);
}
t_test.start(vl_remainingTime);
} else {
log("There is no such Variable: ", vl_varName);
//setverdict(fail);
f_EPTF_Base_stopAll();
//exit
}
}
repeat;
}
[] t_stop.timeout {
log("###: push Exit button")
vl_varID := f_EPTF_Var_getId(c_EPTF_ExecCtrl_Exit);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {intVal := 1});
} else {
log("There is no such Variable: ", c_EPTF_ExecCtrl_Exit);
setverdict(fail);
//exit
}
repeat;
}
[] t_test.timeout {
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1)
{
var integer vl_scInstanceIdx := f_EPTF_ExecCtrl_getScenarioIdx(
pl_scens[i].eGrpName,
pl_scens[i].scenName
);
var integer vl_tcInstanceIdx := f_EPTF_ExecCtrl_getTrafficCaseIdx(
pl_scens[i].eGrpName,
pl_scens[i].scenName,
pl_scens[i].tcName
);
var integer vl_tcOfScIdx := f_EPTF_ExecCtrl_getTcOfScenarioIdx(vl_tcInstanceIdx);
vl_cps := pl_scens[i].timeProfile[vl_count].targetValue;
f_EPTF_ExecCtrl_Test_checkScRunning(pl_scens[i]);
if(f_EPTF_ExecCtrl_isWeightedScenario(vl_scInstanceIdx)) {
f_EPTF_ExecCtrl_setCps_SC(vl_scInstanceIdx, vl_cps);
vl_varName := "Traffic.ScenarioCPS." &pl_scens[i].eGrpName&"."&int2str(vl_scInstanceIdx);
//vl_varName := FIXME_ExecCtrlUI_GenerateNameForScCpsWidget(vl_scInstanceIdx); <--- FIXME: should be in EPTF_CLL_ExecCtrlUI_Functions.ttcn
} else {
f_EPTF_ExecCtrl_setCps_TC(vl_scInstanceIdx, vl_tcOfScIdx, vl_cps);
vl_varName := "Traffic.TCCPS." &pl_scens[i].eGrpName&"."&int2str(vl_scInstanceIdx) &"."&int2str(vl_tcOfScIdx);
//vl_varName := FIXME_ExecCtrlUI_GenerateNameForTcCpsWidget(vl_tcInstanceIdx); <--- FIXME: should be in EPTF_CLL_ExecCtrlUI_Functions.ttcn
}
vl_varID := f_EPTF_Var_getId(vl_varName);
if (vl_varID != -1) {
f_EPTF_Var_refreshContent(vl_varID);
f_EPTF_Var_getContent(vl_varID, vl_Var_content);
if (vl_Var_content.floatVal == pl_scens[i].timeProfile[vl_count].targetValue) {
log("Expected CPS value set in the GUI: ", vl_Var_content.floatVal);
setverdict(pass);
} else {
log("Unexpected CPS value set in the GUI: ", vl_Var_content.floatVal, " Expected: ", pl_scens[i].timeProfile[vl_count].targetValue);
setverdict(fail);
}
} else {
log("No such EPTF variable with name: ", vl_varName);
setverdict(fail);
}
f_EPTF_ExecCtrl_Test_checkScRunning(pl_scens[i]);
}
vl_count := vl_count + 1;
if (vl_count < sizeof(pl_scens[0].timeProfile)) {
t_test.start(pl_scens[0].timeProfile[vl_count].time - pl_scens[0].timeProfile[vl_count - 1].time);
}
repeat;
}
} // alt
}
function f_EPTF_ExecCtrlClient_Test_scenarioCPSChangedCallbackFn(in float pl_cps, in integer pl_eGrpIdx, in integer pl_scIdx) runs on EPTF_ExecCtrlClient_Test_CT {
v_EPTF_ExecCtrlClient_Test_CPSChangedCallback_Called := true;
var charstring vl_eGrpName;
var charstring vl_scName;
f_EPTF_LGenBase_scenarioIdNames(pl_eGrpIdx,pl_scIdx,vl_eGrpName,vl_scName);
log(%definitionId&" ScenarioCPSChanged callback called with pl_cps: ", pl_cps, ", pl_eGrpIdx: ", pl_eGrpIdx, ", pl_scIdx: ", pl_scIdx, ", TC name: ", vl_eGrpName,".",vl_scName);
}
function f_EPTF_ExecCtrlClient_Test_scenarioCPSChangedCallbackCheck() runs on EPTF_ExecCtrlClient_Test_CT {
if (not v_EPTF_ExecCtrlClient_Test_CPSChangedCallback_Called) {
log(%definitionId&" ScenarioCPSChanged callback was not called.");
setverdict(fail)
}
else {
setverdict(pass);
}
}
function f_EPTF_ExecCtrlClient_Test_CPSChangedCallback_SC(
in charstring pl_selfName,
in EPTF_ExecCtrl_Test_CT pl_execCtrl,
in EPTF_ExecCtrl_Test_SCDataList pl_scens,
in boolean pl_checkCpsToReach := true,
in float pl_measureTime := 2.0)
runs on EPTF_ExecCtrlClient_Test_CT
{
timer tl_test;
var float vl_currentCPS := 0.0;
var float vl_targetCPS := 0.0;
var integer vl_count := 0;
v_EPTF_ExecCtrlClient_Test_scenarios := pl_scens;
v_EPTF_ExecCtrlClient_Test_CPSChangedCallback_Called := false;
f_EPTF_ExecCtrlClient_Test_init(pl_selfName, pl_execCtrl);
f_EPTF_Base_registerCleanup(refers(f_EPTF_ExecCtrlClient_Test_CPSChangedCallbackCheck));
tl_test.start(0.0);
alt {
[f_EPTF_ExecCtrlClient_checkEndOfConfig()] tl_test.timeout {
for (var integer i := 0; i < sizeof(pl_scens); i := i + 1) {
f_EPTF_LGenBase_registerCPSChangedCallback_SC(
pl_scens[i].eGrpName,pl_scens[i].scenName,
refers(f_EPTF_ExecCtrlClient_Test_scenarioCPSChangedCallbackFn)
)
}
}
}
tl_test.start(v_EPTF_ExecCtrlClient_Test_scenarios[0].timeProfile[vl_count].time + pl_measureTime);
alt {
[] tl_test.timeout {
for(var integer i := 0; i < sizeof(v_EPTF_ExecCtrlClient_Test_scenarios); i := i + 1 ) {
var float vl_maxError := 0.001;
if(pl_checkCpsToReach) {
if(f_EPTF_ExecCtrlTest_isWeightedScenariobyName(pl_scens[i].eGrpName, pl_scens[i].scenName)) {
vl_currentCPS := f_EPTF_LGenBase_getScCpsSoReachByName(pl_scens[i].eGrpName, pl_scens[i].scenName);
} else {
vl_currentCPS := f_EPTF_LGenBase_getTcCpsToReachByName(pl_scens[i].eGrpName, pl_scens[i].scenName, pl_scens[i].tcName);
}
} else {
if(f_EPTF_ExecCtrlTest_isWeightedScenariobyName(pl_scens[i].eGrpName, pl_scens[i].scenName)) {
vl_currentCPS := f_EPTF_ExecCtrlTest_getWeightedScenarioCps(pl_scens[i].eGrpName, pl_scens[i].scenName);
} else {
vl_currentCPS := f_EPTF_LGenBase_getMeasuredCPSByNames(pl_scens[i].eGrpName, pl_scens[i].scenName, pl_scens[i].tcName);
}
vl_maxError := 1.0;
}
vl_targetCPS := pl_scens[i].timeProfile[vl_count].targetValue;
if(vl_currentCPS < vl_targetCPS + vl_maxError and vl_currentCPS > vl_targetCPS - vl_maxError)
{
log("Current CPS: ", vl_currentCPS, " expected: ", vl_targetCPS);
setverdict(pass)
} else {
log("Current CPS: ", vl_currentCPS, " expected: ", vl_targetCPS);
setverdict(fail)
}
}
vl_count := vl_count + 1;
if (vl_count < sizeof(pl_scens[0].timeProfile)) {
tl_test.start(pl_scens[0].timeProfile[vl_count].time - pl_scens[0].timeProfile[vl_count - 1].time);
}
repeat;
}
}
}
function f_EPTF_ExecCtrl_UIHandler_Test_startButton(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_UIHandler_CT pl_gui, in float pl_time)
runs on EPTF_ExecCtrl_UIHandler_Test_CT
{
timer t_action;
var integer vl_varID;
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients, pl_dataSource_compRef := pl_gui);
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
f_ExecCtrl_Test_storeDataFromTspScenario2Grps();
log("v_EPTF_ExecCtrl_Test_scenarios: ",v_EPTF_ExecCtrl_Test_scenarios);
t_action.start(0.0);
alt
{
[f_EPTF_ExecCtrl_checkReadyToRun()] t_action.timeout {
f_EPTF_Var_logNames("##### Vars ####");
vl_varID := f_EPTF_Var_getId(c_EPTF_ExecCtrl_Start);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {intVal := 1});
} else {
log("There is no such Variable: ", c_EPTF_ExecCtrl_Start);
setverdict(fail);
//exit
}
t_test.start(tsp_EPTF_Var_SyncInterval+1.0);
repeat;
}
[] t_test.timeout {
for (var integer i := 0; i < sizeof(v_EPTF_ExecCtrl_Test_scenarios); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScRunning(v_EPTF_ExecCtrl_Test_scenarios[i]);
}
setverdict(pass);
vl_varID := f_EPTF_Var_getId(c_EPTF_ExecCtrl_Exit);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {intVal := 1});
} else {
log("There is no such Variable: ", c_EPTF_ExecCtrl_Exit);
setverdict(fail);
//exit
}
repeat;
}
} // alt
}
function f_EPTF_ExecCtrl_UIHandler_Test_stopButton(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_UIHandler_CT pl_gui, in float pl_time)
runs on EPTF_ExecCtrl_UIHandler_Test_CT
{
f_EPTF_ExecCtrl_setManualControl(true);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients, pl_dataSource_compRef := pl_gui);
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
f_ExecCtrl_Test_storeDataFromTspScenario2Grps();
var integer vl_varID;
var charstring vl_varName;
var EPTF_Var_DirectContent vl_Var_content;
timer t_stop, t_test_stop;
log("v_EPTF_ExecCtrl_Test_scenarios: ",v_EPTF_ExecCtrl_Test_scenarios);
t_test.start(0.0);
alt
{
[f_EPTF_ExecCtrl_checkReadyToRun()] t_test.timeout {
vl_varID := f_EPTF_Var_getId(c_EPTF_ExecCtrl_Start);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {intVal := 1});
} else {
log("There is no such Variable: ", c_EPTF_ExecCtrl_Start);
setverdict(fail);
//exit
}
t_test_stop.start(tsp_EPTF_Var_SyncInterval+2.0)
repeat;
}
[] t_test_stop.timeout {
for (var integer i := 0; i < sizeof(v_EPTF_ExecCtrl_Test_scenarios); i := i + 1)
{
f_EPTF_ExecCtrl_Test_checkScRunning(v_EPTF_ExecCtrl_Test_scenarios[i]);
}
vl_varID := f_EPTF_Var_getId(c_EPTF_ExecCtrl_Stop);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {intVal := 1});
} else {
log("There is no such Variable: ", c_EPTF_ExecCtrl_Stop);
setverdict(fail);
//exit
}
t_stop.start(tsp_EPTF_Var_SyncInterval+2.0);
repeat;
}
[] t_stop.timeout {
for (var integer i := 0; i < sizeof(v_EPTF_ExecCtrl_Test_scenarios); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScNotRunning(v_EPTF_ExecCtrl_Test_scenarios[i]);
}
for (var integer lgenidx := 0; lgenidx < pl_nOfClients; lgenidx := lgenidx + 1) {
for(var integer eg:=0; eg<f_EPTF_ExecCtrl_getLGenNumEGroups(lgenidx); eg:=eg+1) {
var integer vl_eGrpIdx := f_EPTF_ExecCtrl_getLGenEGrpIdx(lgenidx,eg);
var EPTF_IntegerList vl_eGrpScenarios := f_EPTF_ExecCtrl_eGrp_scenarios(vl_eGrpIdx);
for(var integer sc:=0; sc<sizeof(vl_eGrpScenarios);sc:=sc+1) {
var integer vl_scIdx := vl_eGrpScenarios[sc];
vl_varName := "StatusLED.Scenario.LGenStatus." & f_EPTF_ExecCtrl_getLGenName(lgenidx) & "." & f_EPTF_ExecCtrl_eGrp_name(vl_eGrpIdx)&
"."&f_EPTF_ExecCtrl_getScenarioName(vl_scIdx);
vl_varID := f_EPTF_Var_getId(vl_varName);
if (vl_varID != -1) {
f_EPTF_Var_refreshContent(vl_varID);
f_EPTF_Var_getContent(vl_varID, vl_Var_content);
if (vl_Var_content.statusLEDVal.text == "Stopped") {
log("Expected Scenario state: ", vl_Var_content.statusLEDVal.text);
setverdict(pass);
} else {
log("Unexpected Scenario state: ", vl_Var_content.statusLEDVal.text, " Expected: Stopped");
setverdict(fail);
}
} else {
log("No such EPTF variable with name: ", vl_varName);
setverdict(fail);
}
}
}
}
vl_varID := f_EPTF_Var_getId(c_EPTF_ExecCtrl_Exit);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {intVal := 1});
} else {
log("There is no such Variable: ", c_EPTF_ExecCtrl_Exit);
setverdict(fail);
//exit
}
repeat;
}
} // alt
}
function f_EPTF_ExecCtrl_UIHandler_Test_stopButton_manualControl_false(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_UIHandler_CT pl_gui, in boolean pl_manualControl := true)
runs on EPTF_ExecCtrl_UIHandler_Test_CT
{
f_EPTF_ExecCtrl_setManualControl(pl_manualControl);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients, pl_dataSource_compRef := pl_gui);
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
f_ExecCtrl_Test_storeDataFromTspScenario2Grps();
var integer vl_varID;
var charstring vl_varName;
var EPTF_Var_DirectContent vl_Var_content;
timer t_stop, t_test_stop;
log("v_EPTF_ExecCtrl_Test_scenarios: ",v_EPTF_ExecCtrl_Test_scenarios);
t_test.start(0.0);
alt
{
[f_EPTF_ExecCtrl_Test_checkScRunning_withRetVal(v_EPTF_ExecCtrl_Test_scenarios[0])] t_test.timeout {
t_test_stop.start(tsp_EPTF_Var_SyncInterval+2.0)
repeat;
}
[] t_test_stop.timeout {
var charstring vl_stopButtonName;
f_EPTF_DataSourceClient_getData(
pl_dataVarName:=vl_stopButtonName,
pl_source := c_ExecCtrl_DataSource_sourceId,
pl_ptcName := "",
pl_element := c_ExecCtrl_dataElementStop,
pl_params := {}
);
vl_varID := f_EPTF_Var_getId(vl_stopButtonName);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {intVal := 1});
} else {
action("There is no such Variable: ", vl_stopButtonName);
setverdict(fail);
//exit
}
t_stop.start(tsp_EPTF_Var_SyncInterval+2.0);
repeat;
}
[] t_stop.timeout {
for (var integer i := 0; i < sizeof(v_EPTF_ExecCtrl_Test_scenarios); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScNotRunning(v_EPTF_ExecCtrl_Test_scenarios[i]);
}
for (var integer lgenidx := 0; lgenidx < pl_nOfClients; lgenidx := lgenidx + 1) {
for(var integer eg:=0; eg<f_EPTF_ExecCtrl_getLGenNumEGroups(lgenidx); eg:=eg+1) {
var integer vl_eGrpIdx := f_EPTF_ExecCtrl_getLGenEGrpIdx(lgenidx,eg);
var EPTF_IntegerList vl_eGrpScenarios := f_EPTF_ExecCtrl_eGrp_scenarios(vl_eGrpIdx);
for(var integer sc:=0; sc<sizeof(vl_eGrpScenarios);sc:=sc+1) {
var integer vl_scIdx := vl_eGrpScenarios[sc];
vl_varName := "StatusLED.Scenario.LGenStatus." & f_EPTF_ExecCtrl_getLGenName(lgenidx) & "." & f_EPTF_ExecCtrl_eGrp_name(vl_eGrpIdx)&
"."&f_EPTF_ExecCtrl_getScenarioName(vl_scIdx);
vl_varID := f_EPTF_Var_getId(vl_varName);
if (vl_varID != -1) {
f_EPTF_Var_refreshContent(vl_varID);
f_EPTF_Var_getContent(vl_varID, vl_Var_content);
if (vl_Var_content.statusLEDVal.text == "Stopped") {
log("Expected Scenario state: ", vl_Var_content.statusLEDVal.text);
setverdict(pass);
} else {
log("Unexpected Scenario state: ", vl_Var_content.statusLEDVal.text, " Expected: Stopped");
setverdict(fail);
}
} else {
log("No such EPTF variable with name: ", vl_varName);
setverdict(fail);
}
}
}
}
vl_varID := f_EPTF_Var_getId(c_EPTF_ExecCtrl_Exit);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {intVal := 1});
} else {
log("There is no such Variable: ", c_EPTF_ExecCtrl_Exit);
setverdict(fail);
//exit
}
repeat;
}
} // alt
}
type record of EPTF_Var_DirectContent EPTF_ExecCtrlTest_DirectContentList;
function f_EPTF_ExecCtrl_UIHandler_Test_resetAllButton(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_UIHandler_CT pl_gui, in float pl_time,
in EPTF_ExecCtrl_Test_SCDataList pl_scens)
runs on EPTF_ExecCtrl_UIHandler_Test_CT
{
timer t_stop, t_test_stop, t_start;
f_EPTF_ExecCtrl_setManualControl(true);
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients, pl_dataSource_compRef := pl_gui);
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
f_ExecCtrl_Test_storeDataFromTspScenario2Grps();
var integer vl_varID;
var charstring vl_varName;
var EPTF_Var_DirectContent vl_Var_content;
var EPTF_ExecCtrlTest_DirectContentList vl_Var_testedContentList;
// Tested items ->
const ExecCtrl_TcStatIdList vl_testStatVarIds := {
// c_EPTF_ExecCtrl_tcStatId_CurrentCPS, // Not tested
//c_EPTF_ExecCtrl_tcStatId_Running,
//c_EPTF_ExecCtrl_tcStatId_Available,
c_EPTF_ExecCtrl_tcStatId_FinTraffic,
c_EPTF_ExecCtrl_tcStatId_MaxBusy,
c_EPTF_ExecCtrl_tcStatId_MaxRunning,
// c_EPTF_ExecCtrl_tcStatId_MinAvailable, // Not tested
c_EPTF_ExecCtrl_tcStatId_NotFinished,
c_EPTF_ExecCtrl_tcStatId_RangeLoops,
c_EPTF_ExecCtrl_tcStatId_Starts,
c_EPTF_ExecCtrl_tcStatId_Success,
c_EPTF_ExecCtrl_tcStatId_Fail,
c_EPTF_ExecCtrl_tcStatId_Timeout,
c_EPTF_ExecCtrl_tcStatId_Error
// c_EPTF_ExecCtrl_tcStatId_ExecTime // Not tested
};
var charstring vl_hashIdText := %definitionId&"_checkStatisticsHash";
var integer vl_hashId := f_EPTF_str2int_HashMap_New(vl_hashIdText);
var integer vl_idx := 0;
for(var integer i := 0; i < sizeof(vl_testStatVarIds); i := i + 1 ){
vl_idx := i;
f_EPTF_str2int_HashMap_Insert(vl_hashId, c_EPTF_ExecCtrl_tcStatNames[vl_testStatVarIds[i]], vl_idx);
}
log("v_EPTF_ExecCtrl_Test_scenarios: ",v_EPTF_ExecCtrl_Test_scenarios);
action(%definitionId&">v_EPTF_ExecCtrl_Test_scenarios: ",v_EPTF_ExecCtrl_Test_scenarios);
t_test.start(0.0);
alt
{
[f_EPTF_ExecCtrl_checkReadyToRun()] t_test.timeout {
vl_varID := f_EPTF_Var_getId(c_EPTF_ExecCtrl_Start);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {intVal := 1});
} else {
log("There is no such Variable: ", c_EPTF_ExecCtrl_Start);
setverdict(fail,"No such EPTF variable with name: "&c_EPTF_ExecCtrl_Start);
//exit
}
t_start.start(5.0); // traffic runs for 5 sec
repeat;
}
[] t_start.timeout {
for (var integer i := 0; i < sizeof(v_EPTF_ExecCtrl_Test_scenarios); i := i + 1)
{
f_EPTF_ExecCtrl_Test_checkScRunning(v_EPTF_ExecCtrl_Test_scenarios[i]);
}
vl_varID := f_EPTF_Var_getId(c_EPTF_ExecCtrl_Stop);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {intVal := 1});
} else {
log("There is no such Variable: ", c_EPTF_ExecCtrl_Stop);
setverdict(fail,"No such EPTF variable with name: "&c_EPTF_ExecCtrl_Stop);
}
t_test_stop.start(tsp_EPTF_Var_SyncInterval+5.0);
repeat;
}
[] t_test_stop.timeout {
for (var integer i := 0; i < sizeof(v_EPTF_ExecCtrl_Test_scenarios); i := i + 1)
{
f_EPTF_ExecCtrl_Test_checkScNotRunning(v_EPTF_ExecCtrl_Test_scenarios[i]);
}
for(var integer i := 0; i < sizeof(pl_scens); i := i + 1 ) {
//var charstring vl_varNameBase := f_EPTF_LGenBaseStats_getNamePrefix(pl_scens[i].eGrpName, pl_scens[i].scenName, pl_scens[i].tcName);
var charstring vl_varNameBase := c_EPTF_ExecCtrl_statisticsRoot&".EG."&pl_scens[i].eGrpName&".SC."&pl_scens[i].scenName&".TC."&pl_scens[i].tcName;
for(var integer vl_j := 0; vl_j < sizeof(c_EPTF_ExecCtrl_tcStatNames); vl_j := vl_j + 1 ){
if (f_EPTF_str2int_HashMap_Find(vl_hashId, c_EPTF_ExecCtrl_tcStatNames[vl_j], vl_idx))
{
var charstring vl_statName := vl_varNameBase&"."&c_EPTF_ExecCtrl_tcStatNames[vl_j];
vl_varID := f_EPTF_Var_getId(vl_statName);
if (vl_varID != -1) {
f_EPTF_Var_refreshContent(vl_varID);
f_EPTF_Var_getContent(vl_varID, vl_Var_content);
vl_Var_testedContentList[vl_idx] := vl_Var_content;
action(%definitionId&">vl_variableRunningValue[pre:"&c_EPTF_ExecCtrl_tcStatNames[vl_j]&"]=",vl_Var_content);
} else {
log("No such EPTF variable with name: ", vl_statName);
setverdict(fail,"No such EPTF variable with name: "&vl_statName);
}
}
}
}
// Push -> Reset All
var charstring vl_varResetButtonName;
var integer vl_retCode := 0;
vl_retCode := f_EPTF_DataSourceClient_getData(vl_varResetButtonName,"StatHandler","","ResetAll",{});
vl_varID := f_EPTF_Var_getId(vl_varResetButtonName);
action(%definitionId&">RESET["&vl_varResetButtonName&"]=",vl_varID);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {intVal := 1});
} else {
log("There is no such Variable: ", vl_varResetButtonName);
setverdict(fail,"No such EPTF variable with name: "&vl_varResetButtonName);
//exit
}
t_stop.start(tsp_EPTF_Var_SyncInterval+5.0);
repeat;
}
[] t_stop.timeout {
action(%definitionId&">CHECK->",sizeof(pl_scens));
for(var integer i := 0; i < sizeof(pl_scens); i := i + 1 ) {
//var charstring vl_varNameBase := f_EPTF_LGenBaseStats_getNamePrefix(pl_scens[i].eGrpName, pl_scens[i].scenName, pl_scens[i].tcName);
var charstring vl_varNameBase := c_EPTF_ExecCtrl_statisticsRoot&".EG."&pl_scens[i].eGrpName&".SC."&pl_scens[i].scenName&".TC."&pl_scens[i].tcName;
for(var integer vl_j := 0; vl_j < sizeof(c_EPTF_ExecCtrl_tcStatNames); vl_j := vl_j + 1 ){
if (f_EPTF_str2int_HashMap_Find(vl_hashId, c_EPTF_ExecCtrl_tcStatNames[vl_j], vl_idx)){
var charstring vl_statName := vl_varNameBase&"."&c_EPTF_ExecCtrl_tcStatNames[vl_j];
vl_varID := f_EPTF_Var_getId(vl_statName);
if (vl_varID != -1) {
f_EPTF_Var_refreshContent(vl_varID);
f_EPTF_Var_getContent(vl_varID, vl_Var_content);
action(%definitionId&">vl_variableRunningValue[POST:"&c_EPTF_ExecCtrl_tcStatNames[vl_j]&"] - ",vl_Var_testedContentList[vl_idx]," < ",vl_Var_content);
if(ischosen(vl_Var_content.intVal)) {
if(vl_j == c_EPTF_ExecCtrl_tcStatId_Available or vl_j == c_EPTF_ExecCtrl_tcStatId_NotFinished) {
if (f_EPTF_ExecCtrl_getActiveEntities(f_EPTF_ExecCtrl_getEntityGroupIdx(pl_scens[i].eGrpName)) != vl_Var_content.intVal) {
action(%definitionId&">Reset failed["&c_EPTF_ExecCtrl_tcStatNames[vl_j]&"]");
setverdict(fail,"Reset failed ["&c_EPTF_ExecCtrl_tcStatNames[vl_j]&"]!");
}
}
else if(vl_Var_testedContentList[vl_idx].intVal < 0 or vl_Var_content.intVal != 0){
action(%definitionId&">Reset failed["&c_EPTF_ExecCtrl_tcStatNames[vl_j]&"]");
setverdict(fail,"Reset failed ["&c_EPTF_ExecCtrl_tcStatNames[vl_j]&"]!");
}
} else if(ischosen(vl_Var_content.floatVal)) {
if(vl_Var_testedContentList[vl_idx].floatVal < 0.0 or vl_Var_content.floatVal != 0.0){
action(%definitionId&">Reset failed["&c_EPTF_ExecCtrl_tcStatNames[vl_j]&"]");
setverdict(fail,"Reset failed ["&c_EPTF_ExecCtrl_tcStatNames[vl_j]&"]!");
}
}
} else {
log("No such EPTF variable with name: ", vl_statName);
setverdict(fail,"No such EPTF variable with name: "&vl_statName);
}
}
}
}
// Push -> Exit
vl_varID := f_EPTF_Var_getId(c_EPTF_ExecCtrl_Exit);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {intVal := 1});
} else {
log("There is no such Variable: ", c_EPTF_ExecCtrl_Exit);
setverdict(fail,"No such EPTF variable with name: "&c_EPTF_ExecCtrl_Exit);
//exit
}
repeat;
}
} // alt
}
function f_EPTF_ExecCtrl_UIHandler_Test_getScGroupStatus(in integer pl_scGrpStatusVar)
runs on EPTF_ExecCtrl_UIHandler_Test_CT return EPTF_StatusLED {
var EPTF_Var_DirectContent vl_Var_content;
f_EPTF_Var_refreshContent(pl_scGrpStatusVar);
f_EPTF_Var_getContent(pl_scGrpStatusVar, vl_Var_content);
return vl_Var_content.statusLEDVal;
}
function f_EPTF_ExecCtrl_UIHandler_Test_terminateButton(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_UIHandler_CT pl_gui, in float pl_time, in boolean pl_createDefaultLGen := true)
runs on EPTF_ExecCtrl_UIHandler_Test_CT
{
f_EPTF_ExecCtrl_setManualControl(true);
if(pl_createDefaultLGen == true){
f_EPTF_ExecCtrl_loadConfig(
pl_EPTF_LGenBase_TcMgmt_EntityGrpDeclaratorList := c_EPTF_ExecCtrl_DefaultScenarios_EGrpList,
pl_EPTF_LGenBase_TcMgmt_Scenarios2GrpList := c_EPTF_ExecCtrl_DefaultScenarios_Scenarios2GrpList&
c_EPTF_ExecCtrl_DefaultScenarios_Scenarios2GrpList_scGroups,
pl_EPTF_LGenBase_ScenarioDeclaratorList := {},
pl_EPTF_LGenBase_tcTypeDeclaratorList := {},
pl_EPTF_LGenBase_TcMgmt_tcTypeDeclaratorList := {c_EPTF_ExecCtrl_DefaultScenarios_defaultTCType},
pl_EPTF_LGenBase_TcMgmt_ScenarioDeclaratorList := {},
pl_EPTF_LGenBase_TcMgmt_WeightedScenarioDeclaratorList:= {},
pl_EPTF_ExecCtrl_TimeProfileDescrList:={},
pl_EPTF_ExecCtrl_TimeProfileList:={},
pl_EPTF_ExecCtrl_TimeProfile2TcList:={},
pl_EPTF_LGenBase_ScenarioTypeDeclaratorList:= {c_EPTF_ExecCtrl_DefaultScenarios_normalScenario,c_EPTF_ExecCtrl_DefaultScenarios_weightedScenario,
c_EPTF_ExecCtrl_DefaultScenarios_normalScenarioInScGrp,c_EPTF_ExecCtrl_DefaultScenarios_weightedScenarioInScGrp},
pl_EPTF_ExecCtrl_ScenarioInstanceTypeList:={},
pl_EPTF_ExecCtrl_LGenPool_Declarators:=c_EPTF_ExecCtrl_Test_defaultLGenPool_Declarators,
pl_EPTF_ExecCtrl_EntityGroup2LGenPool_List:=c_EPTF_ExecCtrl_DefaultScenarios_EntityGroup2LGenPool_List,
pl_EPTF_ExecCtrl_LGenFunction_Entry_List:={{
name := omit,
fn := refers(f_ExecCtrl_Test_createDefaultLGen)
}},
pl_EPTF_ExecCtrl_PhaseList_Declarators:=c_EPTF_ExecCtrl_DefaultScenarios_phases,
pl_EPTF_ExecCtrl_ScenarioGroup_Declarators:=c_EPTF_ExecCtrl_DefaultScenarios_scGroups,
pl_EPTF_ExecCtrl_RegulatorNames:={"LimitMaxRegulator"},
pl_EPTF_ExecCtrl_RegulatedItems:={}
);
} else {
f_EPTF_ExecCtrl_loadConfig(
pl_EPTF_LGenBase_TcMgmt_EntityGrpDeclaratorList := c_EPTF_ExecCtrl_DefaultScenarios_EGrpList,
pl_EPTF_LGenBase_TcMgmt_Scenarios2GrpList := c_EPTF_ExecCtrl_DefaultScenarios_Scenarios2GrpList&
c_EPTF_ExecCtrl_DefaultScenarios_Scenarios2GrpList_scGroups,
pl_EPTF_LGenBase_ScenarioDeclaratorList := {},
pl_EPTF_LGenBase_tcTypeDeclaratorList := {},
pl_EPTF_LGenBase_TcMgmt_tcTypeDeclaratorList := {c_EPTF_ExecCtrl_DefaultScenarios_defaultTCType},
pl_EPTF_LGenBase_TcMgmt_ScenarioDeclaratorList := {},
pl_EPTF_LGenBase_TcMgmt_WeightedScenarioDeclaratorList:= {},
pl_EPTF_ExecCtrl_TimeProfileDescrList:={},
pl_EPTF_ExecCtrl_TimeProfileList:={},
pl_EPTF_ExecCtrl_TimeProfile2TcList:={},
pl_EPTF_LGenBase_ScenarioTypeDeclaratorList:= {c_EPTF_ExecCtrl_DefaultScenarios_normalScenario,c_EPTF_ExecCtrl_DefaultScenarios_weightedScenario,
c_EPTF_ExecCtrl_DefaultScenarios_normalScenarioInScGrp,c_EPTF_ExecCtrl_DefaultScenarios_weightedScenarioInScGrp},
pl_EPTF_ExecCtrl_ScenarioInstanceTypeList:={},
pl_EPTF_ExecCtrl_LGenPool_Declarators:=c_EPTF_ExecCtrl_Test_slowLGenPool_Declarators,
pl_EPTF_ExecCtrl_EntityGroup2LGenPool_List:=c_EPTF_ExecCtrl_DefaultScenarios_EntityGroup2LGenPool_List,
pl_EPTF_ExecCtrl_LGenFunction_Entry_List:={{
name := omit,
fn := refers(f_ExecCtrl_Test_createDefaultLGenWithSpeed)
}},
pl_EPTF_ExecCtrl_PhaseList_Declarators:=c_EPTF_ExecCtrl_DefaultScenarios_phases,
pl_EPTF_ExecCtrl_ScenarioGroup_Declarators:=c_EPTF_ExecCtrl_DefaultScenarios_scGroups,
pl_EPTF_ExecCtrl_RegulatorNames:={"LimitMaxRegulator"},
pl_EPTF_ExecCtrl_RegulatedItems:={}
);
action(%definitionId&"->f_EPTF_ExecCtrl_setNrOfExpectedClients called");
f_EPTF_ExecCtrl_setNrOfExpectedClients();
}
// 2013.04.02. f_EPTF_ExecCtrl_start();
f_EPTF_ExecCtrl_init_CT(pl_name, pl_nOfClients, pl_dataSource_compRef := pl_gui);
f_EPTF_ExecCtrl_registerScenarioStateChangedCallback(refers(f_EPTF_ExecCtrl_Test_UpdateScenarioState));
f_ExecCtrl_Test_storeDataFromTspScenario2Grps();
var integer vl_varID;
var charstring vl_varName;
const charstring cl_scGroupStateVarName := "Var.Execution_Control.PhaseLists.tabbox.DefaultPhases.tab.DefaultScGroup.GroupStatus";//"GUI.EPTF_ExecCtrl.Statistics.EG.DefaultEGrp.SC.DefaultScInScGrp.SCGrp.DefaultScGroup.GroupStatusLED";
var integer vl_scGroupStateVarId := -1;
var EPTF_Var_DirectContent vl_Var_content;
timer t_stop, t_test_stop;
log("v_EPTF_ExecCtrl_Test_scenarios: ",v_EPTF_ExecCtrl_Test_scenarios);
t_test.start(0.0);
alt
{
[f_EPTF_ExecCtrl_checkReadyToRun()] t_test.timeout {
vl_varID := f_EPTF_Var_getId(c_EPTF_ExecCtrl_Start);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {intVal := 1});
} else {
log("There is no such Variable: ", c_EPTF_ExecCtrl_Start);
setverdict(fail);
//exit
}
vl_scGroupStateVarId := f_EPTF_Var_getId(cl_scGroupStateVarName);
if (vl_scGroupStateVarId==-1) {
setverdict(fail, "Scenario group status LED var not found.");
f_EPTF_Base_stopAll();
//exit
}
t_test_stop.start(tsp_EPTF_Var_SyncInterval+25.0); // go to phase2 phase
repeat;
}
// wait until ScGroup is running phase2
[vl_scGroupStateVarId!=-1 and f_EPTF_ExecCtrl_UIHandler_Test_getScGroupStatus(vl_scGroupStateVarId) == {led_green, "phase2 - RUNNING"}] t_test_stop.timeout {
for (var integer i := 0; i < sizeof(v_EPTF_ExecCtrl_Test_scenarios); i := i + 1)
{
f_EPTF_ExecCtrl_Test_checkScRunning(v_EPTF_ExecCtrl_Test_scenarios[i]);
}
vl_varID := f_EPTF_Var_getId(c_EPTF_ExecCtrl_Terminate);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {intVal := 1});
} else {
log("There is no such Variable: ", c_EPTF_ExecCtrl_Terminate);
setverdict(fail);
//exit
}
t_stop.start(tsp_EPTF_Var_SyncInterval+2.0);
repeat;
}
[] t_stop.timeout {
for (var integer i := 0; i < sizeof(v_EPTF_ExecCtrl_Test_scenarios); i := i + 1) {
f_EPTF_ExecCtrl_Test_checkScNotRunning(v_EPTF_ExecCtrl_Test_scenarios[i]);
}
for (var integer lgenidx := 0; lgenidx < pl_nOfClients; lgenidx := lgenidx + 1) {
for(var integer eg:=0; eg<f_EPTF_ExecCtrl_getLGenNumEGroups(lgenidx); eg:=eg+1) {
var integer vl_eGrpIdx := f_EPTF_ExecCtrl_getLGenEGrpIdx(lgenidx,eg);
var EPTF_IntegerList vl_eGrpScenarios := f_EPTF_ExecCtrl_eGrp_scenarios(vl_eGrpIdx);
for(var integer sc:=0; sc<sizeof(vl_eGrpScenarios);sc:=sc+1) {
var integer vl_scIdx := vl_eGrpScenarios[sc];
vl_varName := "StatusLED.Scenario.LGenStatus." & f_EPTF_ExecCtrl_getLGenName(lgenidx) & "." & f_EPTF_ExecCtrl_eGrp_name(vl_eGrpIdx)&
"."&f_EPTF_ExecCtrl_getScenarioName(vl_scIdx);
vl_varID := f_EPTF_Var_getId(vl_varName);
if (vl_varID != -1) {
f_EPTF_Var_refreshContent(vl_varID);
f_EPTF_Var_getContent(vl_varID, vl_Var_content);
if (vl_Var_content.statusLEDVal.text == "Stopped") {
log("Expected Scenario state: ", vl_Var_content.statusLEDVal.text);
setverdict(pass);
} else {
log("Unexpected Scenario state: ", vl_Var_content.statusLEDVal.text, " Expected: Stopped");
setverdict(fail);
}
} else {
log("No such EPTF variable with name: ", vl_varName);
setverdict(fail);
}
}
}
}
// check if ScGroup is in idle phase2
if (f_EPTF_ExecCtrl_UIHandler_Test_getScGroupStatus(vl_scGroupStateVarId) != {led_blue, "phase2 - IDLE"}) {
setverdict(fail, "Scenario group is not idle.");
f_EPTF_Base_stopAll();
//exit
}
vl_varID := f_EPTF_Var_getId(c_EPTF_ExecCtrl_Exit);
if(vl_varID != -1) {
f_EPTF_Var_adjustContent(vl_varID, {intVal := 1});
} else {
log("There is no such Variable: ", c_EPTF_ExecCtrl_Exit);
setverdict(fail);
//exit
}
repeat;
}
} // alt
}
function f_EPTF_ExecCtrl_UIHandler_Test_NrOfExpectedClients(
in charstring pl_name,
in integer pl_nOfClients, in float pl_time)
runs on EPTF_ExecCtrl_UIHandler_Test_CT
{
f_EPTF_ExecCtrl_setManualControl(true);
f_EPTF_ExecCtrl_init_CT(
pl_selfName := pl_name,
pl_nrOfClients := pl_nOfClients,
pl_createLGenPools := true,
pl_loadModulepars := false,
pl_autoStart := false,
pl_dataSource_compRef := mtc);
f_EPTF_ExecCtrl_loadConfig(
pl_EPTF_LGenBase_TcMgmt_EntityGrpDeclaratorList := c_EPTF_ExecCtrl_DefaultScenarios_EGrpList,
pl_EPTF_LGenBase_TcMgmt_Scenarios2GrpList := c_EPTF_ExecCtrl_DefaultScenarios_Scenarios2GrpList&
c_EPTF_ExecCtrl_DefaultScenarios_Scenarios2GrpList_scGroups,
pl_EPTF_LGenBase_ScenarioDeclaratorList := {},
pl_EPTF_LGenBase_tcTypeDeclaratorList := {},
pl_EPTF_LGenBase_TcMgmt_tcTypeDeclaratorList := {c_EPTF_ExecCtrl_DefaultScenarios_defaultTCType},
pl_EPTF_LGenBase_TcMgmt_ScenarioDeclaratorList := {},
pl_EPTF_LGenBase_TcMgmt_WeightedScenarioDeclaratorList:= {},
pl_EPTF_ExecCtrl_TimeProfileDescrList:={},
pl_EPTF_ExecCtrl_TimeProfileList:={},
pl_EPTF_ExecCtrl_TimeProfile2TcList:={},
pl_EPTF_LGenBase_ScenarioTypeDeclaratorList:= {c_EPTF_ExecCtrl_DefaultScenarios_normalScenario,c_EPTF_ExecCtrl_DefaultScenarios_weightedScenario,
c_EPTF_ExecCtrl_DefaultScenarios_normalScenarioInScGrp,c_EPTF_ExecCtrl_DefaultScenarios_weightedScenarioInScGrp},
pl_EPTF_ExecCtrl_ScenarioInstanceTypeList:={},
pl_EPTF_ExecCtrl_LGenPool_Declarators:=c_EPTF_ExecCtrl_Test_slowLGenPool_Declarators,
pl_EPTF_ExecCtrl_EntityGroup2LGenPool_List:=c_EPTF_ExecCtrl_DefaultScenarios_EntityGroup2LGenPool_List,
pl_EPTF_ExecCtrl_LGenFunction_Entry_List:={{
name := omit,
fn := refers(f_ExecCtrl_Test_createDefaultLGenWithSpeed)
}},
pl_EPTF_ExecCtrl_PhaseList_Declarators:=c_EPTF_ExecCtrl_DefaultScenarios_phases,
pl_EPTF_ExecCtrl_ScenarioGroup_Declarators:=c_EPTF_ExecCtrl_DefaultScenarios_scGroups,
pl_EPTF_ExecCtrl_RegulatorNames:={"LimitMaxRegulator"},
pl_EPTF_ExecCtrl_RegulatedItems:={}
);
f_EPTF_ExecCtrl_setNrOfExpectedClients();
if(f_EPTF_ExecCtrl_getNrOfExpectedClients() == pl_nOfClients + c_EPTF_ExecCtrl_Test_slowLGenPool_Declarators[0].lgenPoolItems[0].num){
setverdict(pass)
} else {
setverdict(fail,"NrOfexpectedClients should be : " & log2str(pl_nOfClients + c_EPTF_ExecCtrl_Test_slowLGenPool_Declarators[0].lgenPoolItems[0].num) & ", but its "& log2str(f_EPTF_ExecCtrl_getNrOfExpectedClients()))
}
f_EPTF_Base_cleanup_CT();
}
function f_EPTF_ExecCtrl_UIHandler_Test_ExitButton(
in charstring pl_name,
in integer pl_nOfClients, in EPTF_UIHandler_CT pl_gui, in float pl_time)
runs on EPTF_ExecCtrl_UIHandler_Test_CT
{