| /////////////////////////////////////////////////////////////////////////////// |
| // // |
| // 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 |
| { |
|