| /////////////////////////////////////////////////////////////////////////////// |
| // // |
| // Copyright (c) 2000-2017 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_LGenBase_PerfTest_FSM_TestCases |
| // |
| // Purpose: |
| // This module provides test cases for testing LGenBase FSM |
| // |
| // Module depends on: |
| // - |
| // |
| // Current Owner: |
| // Jozsef Gyurusi (ETHJGI) |
| // |
| // Last Review Date: |
| // - |
| // |
| // Detailed Comments: |
| // - |
| // |
| // |
| /////////////////////////////////////////////////////////////// |
| module EPTF_LGenBase_PerfTest_FSM_TestCases |
| { |
| |
| import from EPTF_LGenBase_PerfTest_FSM_Definitions all; |
| import from EPTF_LGenBase_PerfTest_FSM_Functions all; |
| import from EPTF_CLL_Common_Definitions all; |
| |
| import from EPTF_CLL_Base_Definitions all; |
| import from EPTF_CLL_Base_Functions all; |
| import from TestResultGen all; |
| import from TCCConversion_Functions all; |
| import from ttcn_ericsson_se_TitanSim_Perftest all; |
| |
| // this testcase measures the speed of the simplest FSM only reporting success for the start event. |
| testcase tc_EPTF_LGenBase_PerfTest_FSM_simplest_SingleBurst() runs on EPTF_LGenBase_PerfTest_FSM_Main_CT { |
| |
| f_EPTF_Base_init_CT("simplest_SingleBurst"); |
| |
| var charstring vl_start_time := f_TestResultGen_getCurrentTime(); |
| |
| timer t_wait := 2.0*c_EPTF_LGenBase_Test_maxExecutionTime; |
| |
| // start an LGenBase component that posts a lot of events |
| var EPTF_LGenBase_PerfTest_FSM_CT vl_lgen; |
| |
| // start LGenBase components that generate only successes and measures the achived CPS |
| // for 2 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_simplest_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 2, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 40.0 |
| )); |
| |
| // 10 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_simplest_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200.0 |
| )); |
| |
| // same for 100 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_simplest_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 100, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000.0 |
| )); |
| |
| // same for 1000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_simplest_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000.0 |
| )); |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(fail, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| // same for 10000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_simplest_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200000.0 |
| )); |
| |
| // same for 100000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_simplest_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 100000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000000.0 |
| )); |
| |
| // same for 1000000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_simplest_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1000000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000000.0 |
| )); |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(fail, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| f_EPTF_Base_stop(pass); |
| } |
| |
| // this testcase measures the speed of the simplest FSM when the LGenBase is overloaded. |
| testcase tc_EPTF_LGenBase_PerfTest_FSM_simplest_MultiBurst() runs on EPTF_LGenBase_PerfTest_FSM_Main_CT { |
| |
| f_EPTF_Base_init_CT("simplest_MultiBurst"); |
| |
| var charstring vl_start_time := f_TestResultGen_getCurrentTime(); |
| |
| timer t_wait := 2.0*c_EPTF_LGenBase_Test_maxExecutionTime; |
| |
| var EPTF_LGenBase_PerfTest_FSM_CT vl_lgen; |
| |
| // CPS is too small far these: |
| // // start LGenBase components that generate only successes and measures the achived CPS |
| // // for 10 successes |
| // vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| // vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_simplest_Behaviour(vl_start_time, |
| // pl_EPTF_LGenBase_Test_nofEntities := 1, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 10, |
| // pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| // pl_EPTF_LGenBase_Test_tcCPS := 2.0 |
| // )); |
| // |
| // // same for 100 successes |
| // vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| // vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_simplest_Behaviour(vl_start_time, |
| // pl_EPTF_LGenBase_Test_nofEntities := 1, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 100, |
| // pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| // pl_EPTF_LGenBase_Test_tcCPS := 20.0 |
| // )); |
| // |
| // // same for 1000 successes |
| // vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| // vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_simplest_Behaviour(vl_start_time, |
| // pl_EPTF_LGenBase_Test_nofEntities := 10, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 1000, |
| // pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| // pl_EPTF_LGenBase_Test_tcCPS := 200.0 |
| // )); |
| |
| // same for 10000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_simplest_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 100, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 10000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000.0 |
| )); |
| |
| // same for 100000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_simplest_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 100000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000.0 |
| )); |
| |
| // same for 1000000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_simplest_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200000.0 |
| )); |
| |
| // same for 1000000 successes, but 100000 entities (2000000 target CPS) |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_simplest_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 100000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000000.0 |
| )); |
| |
| // control measurement with 1 entity: |
| // same for 1000000 successes, but 1 entity (2000000 target CPS) |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_simplest_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000000.0 |
| )); |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(fail, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| f_EPTF_Base_stop(pass); |
| } |
| |
| // this testcase measures the speed of the FSM that runs a traffic with a given holding time when the LGenBase is overloaded. |
| testcase tc_EPTF_LGenBase_PerfTest_FSM_withHoldingTime_MultiBurst() runs on EPTF_LGenBase_PerfTest_FSM_Main_CT { |
| |
| f_EPTF_Base_init_CT("withHoldingTime_MultiBurst"); |
| |
| var charstring vl_start_time := f_TestResultGen_getCurrentTime(); |
| |
| timer t_wait := 2.0*c_EPTF_LGenBase_Test_maxExecutionTime; |
| |
| var EPTF_LGenBase_PerfTest_FSM_CT vl_lgen; |
| |
| // CPS is too small far these: |
| // // start LGenBase components that generate only successes and measures the achived CPS |
| // // for 10 successes |
| // vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| // vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTime_Behaviour(vl_start_time, |
| // pl_EPTF_LGenBase_Test_nofEntities := 1, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 10, |
| // pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| // pl_EPTF_LGenBase_Test_tcCPS := 2.0 |
| // )); |
| // |
| // // same for 100 successes |
| // vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| // vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTime_Behaviour(vl_start_time, |
| // pl_EPTF_LGenBase_Test_nofEntities := 1, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 100, |
| // pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| // pl_EPTF_LGenBase_Test_tcCPS := 20.0 |
| // )); |
| // |
| // // same for 1000 successes |
| // vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| // vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTime_Behaviour(vl_start_time, |
| // pl_EPTF_LGenBase_Test_nofEntities := 10, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 1000, |
| // pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| // pl_EPTF_LGenBase_Test_tcCPS := 200.0 |
| // )); |
| |
| // holding time 0: |
| |
| // same for 10000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTime_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 100, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 10000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000.0 |
| )); |
| |
| // same for 100000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTime_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 100000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000.0 |
| )); |
| |
| // same for 1000000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTime_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200000.0 |
| )); |
| |
| // same for 1000000 successes, but 100000 entities (2000000 target CPS) |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTime_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 100000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000000.0 |
| )); |
| |
| // control measurement with 1 entity: |
| // same for 1000000 successes, but 1 entity (2000000 target CPS) |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTime_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000000.0 |
| )); |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(fail, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| // holding time 0.1: |
| |
| // same for 10000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTime_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 300, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 10000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000.0, |
| pl_holdingTime := 0.1 |
| )); |
| |
| // same for 100000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTime_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 3000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 100000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000.0, |
| pl_holdingTime := 0.1 |
| )); |
| |
| // same for 1000000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTime_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 30000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200000.0, |
| pl_holdingTime := 0.1 |
| )); |
| |
| // same for 1000000 successes, but 300000 entities (2000000 target CPS) |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTime_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 300000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000000.0, |
| pl_holdingTime := 0.1 |
| )); |
| |
| // control measurement with 1 entity: |
| // same for 1000000 successes, but 1 entity (2000000 target CPS) |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTime_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000000.0, |
| pl_holdingTime := 0.1 |
| )); |
| |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(fail, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| f_EPTF_Base_stop(pass); |
| } |
| |
| // this testcase measures the speed of the FSM that runs a traffic with a given holding time and states when the LGenBase is overloaded. |
| testcase tc_EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_MultiBurst_Part1() runs on EPTF_LGenBase_PerfTest_FSM_Main_CT { |
| |
| f_EPTF_Base_init_CT("withHoldingTimeAndStates_MultiBurst_Part1"); |
| |
| var charstring vl_start_time := f_TestResultGen_getCurrentTime(); |
| |
| timer t_wait := 2.0*c_EPTF_LGenBase_Test_maxExecutionTime; |
| |
| var EPTF_LGenBase_PerfTest_FSM_CT_List vl_lgens; |
| |
| var EPTF_CharstringList vl_fsmNameList := { |
| "SimplestFSM", |
| "FSMWithHoldingTime", |
| "FSMWithHoldingTimeAnd_TwoStates", |
| "FSMWithHoldingTimeAnd_OneState", |
| "FSMWithHoldingTimeAnd_FiveStates", |
| "FSMWithHoldingTimeAnd_TenStates", |
| "FSMWithHoldingTimeAnd_FiveStatesCompact", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithEvents", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithNextStateCalc", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithTCVars", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithTCVarsAndStats", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithFSMVars", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithFSMVarsAndStats" |
| }; |
| |
| var EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_ArgsList vl_testParams := { |
| // CPS is too small far these: |
| // // start LGenBase components that generate only successes and measures the achived CPS |
| // // for 10 successes |
| // { |
| // pl_EPTF_LGenBase_Test_nofEntities := 1, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 10, |
| // pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| // pl_EPTF_LGenBase_Test_tcCPS := 2.0 |
| // }, |
| // // same for 100 successes |
| // { |
| // pl_EPTF_LGenBase_Test_nofEntities := 1, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 100, |
| // pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| // pl_EPTF_LGenBase_Test_tcCPS := 20.0 |
| // }, |
| // // same for 1000 successes |
| // { |
| // pl_EPTF_LGenBase_Test_nofEntities := 10, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 1000, |
| // pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| // pl_EPTF_LGenBase_Test_tcCPS := 200.0 |
| // } |
| |
| // holding time 0: |
| |
| // same for 10000 successes |
| { |
| pl_EPTF_LGenBase_Test_nofEntities := 100, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 10000, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000.0 |
| }, |
| // same for 100000 successes |
| { |
| pl_EPTF_LGenBase_Test_nofEntities := 1000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 100000, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000.0 |
| }, |
| // same for 1000000 successes |
| { |
| pl_EPTF_LGenBase_Test_nofEntities := 10000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_tcCPS := 200000.0 |
| }, |
| // same for 1000000 successes, but 20000 entities (400000 target CPS) |
| { |
| pl_EPTF_LGenBase_Test_nofEntities := 20000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_tcCPS := 400000.0 |
| }, |
| // control measurement with 1 entity: |
| // same for 1000000 successes, but 1 entity (2000000 target CPS) |
| { |
| pl_EPTF_LGenBase_Test_nofEntities := 1, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000000.0 |
| } |
| } |
| |
| const integer cl_nofLGens := 4; |
| for(var integer j:=0; j<sizeof(vl_testParams); j:=j+1) { |
| for (var integer i := 0; i < sizeof(vl_fsmNameList); i := i + 1) { |
| vl_lgens[i mod cl_nofLGens] := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgens[i mod cl_nofLGens].start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := vl_testParams[j].pl_EPTF_LGenBase_Test_nofEntities, |
| pl_EPTF_LGenBase_Test_nofSuccesses := vl_testParams[j].pl_EPTF_LGenBase_Test_nofSuccesses, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := vl_testParams[j].pl_EPTF_LGenBase_Test_tcCPS, |
| pl_fsmName := vl_fsmNameList[i] |
| )); |
| |
| if (i mod cl_nofLGens == cl_nofLGens-1 or i+1==sizeof(vl_fsmNameList)) { |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| f_EPTF_LGenBase_PerfTest_FSM_stopLGens(vl_lgens); |
| vl_lgens := {} |
| all component.done; |
| } |
| [] all component.done; |
| } |
| } else { |
| t_wait.start(1.0); |
| t_wait.timeout; // prevent writing more than one PTC into the same xml |
| } |
| } |
| } |
| // save the result to be used by the testcase tc_EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_MultiBurst_CalculateResults |
| f_EPTF_LGenBase_PerfTest_FSM_storeXMLsForCompactResults(); |
| f_EPTF_Base_stop(pass); |
| } |
| |
| // this testcase measures the speed of the FSM that runs a traffic with a given holding time and states when the LGenBase is overloaded. |
| testcase tc_EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_MultiBurst_Part2() runs on EPTF_LGenBase_PerfTest_FSM_Main_CT { |
| |
| f_EPTF_Base_init_CT("withHoldingTimeAndStates_MultiBurst_Part2"); |
| |
| var charstring vl_start_time := f_TestResultGen_getCurrentTime(); |
| |
| timer t_wait := 2.0*c_EPTF_LGenBase_Test_maxExecutionTime; |
| |
| var EPTF_LGenBase_PerfTest_FSM_CT_List vl_lgens; |
| |
| var EPTF_CharstringList vl_fsmNameList := { |
| "FSMWithHoldingTime", |
| "FSMWithHoldingTimeAnd_TwoStates", |
| "FSMWithHoldingTimeAnd_OneState", |
| "FSMWithHoldingTimeAnd_FiveStates", |
| "FSMWithHoldingTimeAnd_TenStates", |
| "FSMWithHoldingTimeAnd_FiveStatesCompact", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithNextStateCalc", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithTCVars", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithTCVarsAndStats", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithFSMVars", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithFSMVarsAndStats" |
| }; |
| |
| var EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_ArgsList vl_testParams := { |
| // holding time 0.1: |
| |
| // same for 10000 successes |
| { |
| pl_EPTF_LGenBase_Test_nofEntities := 300, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 10000, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000.0 |
| }, |
| |
| // same for 100000 successes |
| { |
| pl_EPTF_LGenBase_Test_nofEntities := 3000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 100000, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000.0 |
| }, |
| |
| // Too long |
| // // same for 1000000 successes |
| // { |
| // pl_EPTF_LGenBase_Test_nofEntities := 30000, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| // pl_EPTF_LGenBase_Test_tcCPS := 200000.0 |
| // }, |
| |
| // Too long |
| // // same for 1000000 successes, but 60000 entities (400000 target CPS) |
| // { |
| // pl_EPTF_LGenBase_Test_nofEntities := 60000, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| // pl_EPTF_LGenBase_Test_tcCPS := 400000.0 |
| // }, |
| |
| // control measurement with 1 entity: |
| // same for 1000000 successes, but 1 entity (2000000 target CPS) |
| { |
| pl_EPTF_LGenBase_Test_nofEntities := 1, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000000.0 |
| } |
| } |
| |
| const integer cl_nofLGens := 4; |
| for(var integer j:=0; j<sizeof(vl_testParams); j:=j+1) { |
| for (var integer i := 0; i < sizeof(vl_fsmNameList); i := i + 1) { |
| vl_lgens[i mod cl_nofLGens] := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgens[i mod cl_nofLGens].start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := vl_testParams[j].pl_EPTF_LGenBase_Test_nofEntities, |
| pl_EPTF_LGenBase_Test_nofSuccesses := vl_testParams[j].pl_EPTF_LGenBase_Test_nofSuccesses, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := vl_testParams[j].pl_EPTF_LGenBase_Test_tcCPS, |
| pl_holdingTime := 0.1, |
| pl_fsmName := vl_fsmNameList[i] |
| )); |
| |
| if (i mod cl_nofLGens == cl_nofLGens-1 or i+1==sizeof(vl_fsmNameList)) { |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| f_EPTF_LGenBase_PerfTest_FSM_stopLGens(vl_lgens); |
| vl_lgens := {} |
| all component.done; |
| } |
| [] all component.done; |
| } |
| } else { |
| t_wait.start(1.0); |
| t_wait.timeout; // prevent writing more than one PTC into the same xml |
| } |
| } |
| } |
| // save the result to be used by the testcase tc_EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_MultiBurst_CalculateResults |
| f_EPTF_LGenBase_PerfTest_FSM_storeXMLsForCompactResults(); |
| f_EPTF_Base_stop(pass); |
| } |
| |
| // this testcase measures the speed of the FSM that runs a traffic with a given holding time and states when the LGenBase is overloaded. |
| testcase tc_EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_MultiBurst_Part3() runs on EPTF_LGenBase_PerfTest_FSM_Main_CT { |
| |
| f_EPTF_Base_init_CT("withHoldingTimeAndStates_MultiBurst_Part3"); |
| |
| var charstring vl_start_time := f_TestResultGen_getCurrentTime(); |
| |
| timer t_wait := 2.0*c_EPTF_LGenBase_Test_maxExecutionTime; |
| |
| var EPTF_LGenBase_PerfTest_FSM_CT_List vl_lgens; |
| |
| var EPTF_CharstringList vl_fsmNameList := { |
| "FSMWithHoldingTime", |
| "FSMWithHoldingTimeAnd_TwoStates", |
| "FSMWithHoldingTimeAnd_OneState", |
| "FSMWithHoldingTimeAnd_FiveStates", |
| "FSMWithHoldingTimeAnd_TenStates", |
| "FSMWithHoldingTimeAnd_FiveStatesCompact", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithEvents", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithNextStateCalc", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithTCVars", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithTCVarsAndStats", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithFSMVars", |
| "FSMWithHoldingTimeAnd_FiveStatesCompactWithFSMVarsAndStats" |
| }; |
| |
| var EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_ArgsList vl_testParams := { |
| |
| // holding time 1.0/10.0: |
| // cycles 10: |
| |
| // same for 10000 successes |
| { |
| pl_EPTF_LGenBase_Test_nofEntities := 3000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 10000, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000.0 |
| }, |
| |
| // Too long |
| // // same for 100000 successes |
| // { |
| // pl_EPTF_LGenBase_Test_nofEntities := 30000, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 100000, |
| // pl_EPTF_LGenBase_Test_tcCPS := 20000.0 |
| // }, |
| |
| // Too long |
| // // same for 100000 successes, but 60000 entities (40000 target CPS) |
| // { |
| // pl_EPTF_LGenBase_Test_nofEntities := 60000, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 100000, |
| // pl_EPTF_LGenBase_Test_tcCPS := 40000.0 |
| // }, |
| |
| |
| // // use too much memory, excluded from tests: |
| // // same for 1000000 successes, but 100000 entities (2000000 target CPS) |
| // { |
| // pl_EPTF_LGenBase_Test_nofEntities := 3000000, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| // pl_EPTF_LGenBase_Test_tcCPS := 2000000.0, |
| // pl_nofCycles := 10, |
| // } |
| |
| // control measurement with 1 entity: |
| // same for 1000000 successes, but 1 entity (2000000 target CPS) |
| { |
| pl_EPTF_LGenBase_Test_nofEntities := 1, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000000.0 |
| } |
| } |
| |
| const integer cl_nofLGens := 4; |
| for(var integer j:=0; j<sizeof(vl_testParams); j:=j+1) { |
| for (var integer i := 0; i < sizeof(vl_fsmNameList); i := i + 1) { |
| vl_lgens[i mod cl_nofLGens] := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgens[i mod cl_nofLGens].start(f_EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := vl_testParams[j].pl_EPTF_LGenBase_Test_nofEntities, |
| pl_EPTF_LGenBase_Test_nofSuccesses := vl_testParams[j].pl_EPTF_LGenBase_Test_nofSuccesses, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := vl_testParams[j].pl_EPTF_LGenBase_Test_tcCPS, |
| pl_holdingTime := 1.0/10.0, |
| pl_nofCycles := 10, |
| pl_fsmName := vl_fsmNameList[i] |
| )); |
| |
| if (i mod cl_nofLGens == cl_nofLGens-1 or i+1==sizeof(vl_fsmNameList)) { |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| f_EPTF_LGenBase_PerfTest_FSM_stopLGens(vl_lgens); |
| vl_lgens := {} |
| all component.done; |
| } |
| [] all component.done; |
| } |
| } else { |
| t_wait.start(1.0); |
| t_wait.timeout; // prevent writing more than one PTC into the same xml |
| } |
| } |
| } |
| // save the result to be used by the testcase tc_EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_MultiBurst_CalculateResults |
| f_EPTF_LGenBase_PerfTest_FSM_storeXMLsForCompactResults(); |
| f_EPTF_Base_stop(pass); |
| } |
| |
| |
| // this testcase calculates the CPS-es for the FSMs executed in tc_EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_MultiBurst_Part1,2,3 testcases |
| // the overall CPS is the average of the CPSs measured for nofEntities>1. |
| // the measured CPS is only used if thest is reliable (target CPS>actual CPS) |
| testcase tc_EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_MultiBurst_CalculateResults() runs on EPTF_LGenBase_PerfTest_FSM_Main_CT { |
| f_EPTF_Base_init_CT("withMultipleTrafficCases_overall"); |
| |
| // list the xml files: |
| var charstring vl_stdout, vl_stderr; |
| if (0!=f_EPTF_Base_executeShell( |
| pl_command := "ls -1tr LGenBase_Test_FSM_withHoldingTimeAndStates_Performance*.xml.sav", |
| pl_stdOut := vl_stdout, |
| pl_stdErr := vl_stderr |
| )) { |
| setverdict(fail, "Cannot determine list of input files") |
| f_EPTF_Base_stop(none); |
| } |
| var TCC_Conversion_ch_list vl_fileList := f_substr_all_tokens(vl_stdout,"","\n"); |
| action("file list: ", vl_fileList); |
| var Testresult vl_testresult; |
| for(var integer i:=0; i<sizeof(vl_fileList); i:=i+1) { |
| action("processing file: ", vl_fileList[i]); |
| f_EPTF_LGenBase_PerfTest_FSM_compactResults(vl_fileList[i],vl_testresult); |
| } |
| if (vl_testresult.result_list != {}) { |
| var charstring vl_startTime := f_unichar2charstr(vl_testresult.start_time); |
| vl_testresult.end_time := f_TestResultGen_getCurrentTime(); |
| f_TestResultGen_appendResult("LGenBase_Test_FSM_withHoldingTimeAndStates_Performance_Compact_"&vl_startTime&".xml", vl_testresult); |
| } |
| f_EPTF_LGenBase_PerfTest_FSM_removeStoredXMLsForCompactResults(); |
| f_EPTF_Base_stop(pass); |
| } |
| |
| |
| testcase tc_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Part1() runs on EPTF_LGenBase_PerfTest_FSM_Main_CT { |
| |
| f_EPTF_Base_init_CT("withMultipleTrafficCases_Part1"); |
| |
| var charstring vl_start_time := f_TestResultGen_getCurrentTime(); |
| |
| timer t_wait := 2.0*c_EPTF_LGenBase_Test_maxExecutionTime; |
| |
| var EPTF_LGenBase_PerfTest_FSM_CT vl_lgen; |
| |
| // CPS is too small far these: |
| // // start LGenBase components that generate only successes and measures the achived CPS |
| // // for 10 successes |
| // vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| // vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| // pl_EPTF_LGenBase_Test_nofEntities := 1, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 10, |
| // pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| // pl_EPTF_LGenBase_Test_tcCPS := 2.0 |
| // )); |
| // |
| // // same for 100 successes |
| // vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| // vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| // pl_EPTF_LGenBase_Test_nofEntities := 1, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 100, |
| // pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| // pl_EPTF_LGenBase_Test_tcCPS := 20.0 |
| // )); |
| // |
| // // same for 1000 successes |
| // vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| // vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| // pl_EPTF_LGenBase_Test_nofEntities := 10, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 1000, |
| // pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| // pl_EPTF_LGenBase_Test_tcCPS := 200.0 |
| // )); |
| |
| // holding time 0: |
| |
| // same for 10000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 100, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 10000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000.0 |
| )); |
| |
| // same for 100000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 100000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000.0 |
| )); |
| |
| // same for 1000000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200000.0 |
| )); |
| |
| // same for 1000000 successes, but 20000 entities (400000 target CPS) |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 20000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 400000.0 |
| )); |
| |
| // control measurement with 1 entity: |
| // same for 1000000 successes, but 1 entity (2000000 target CPS) |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000000.0 |
| )); |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(inconc, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| f_EPTF_Base_stop(pass); |
| } |
| |
| // this testcase measures the speed of the FSM that runs a traffic with a given holding time and states when the LGenBase is overloaded. |
| testcase tc_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Part2() runs on EPTF_LGenBase_PerfTest_FSM_Main_CT { |
| |
| f_EPTF_Base_init_CT("withMultipleTrafficCases_Part2"); |
| |
| var charstring vl_start_time := f_TestResultGen_getCurrentTime(); |
| |
| timer t_wait := 2.0*c_EPTF_LGenBase_Test_maxExecutionTime; |
| |
| var EPTF_LGenBase_PerfTest_FSM_CT vl_lgen; |
| |
| // holding time 0.1: |
| |
| // same for 10000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 300, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 10000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000.0, |
| pl_holdingTime := 0.1 |
| )); |
| |
| // same for 100000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 3000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 100000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000.0, |
| pl_holdingTime := 0.1 |
| )); |
| |
| // same for 1000000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 30000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200000.0, |
| pl_holdingTime := 0.1 |
| )); |
| |
| // same for 1000000 successes, but 60000 entities (400000 target CPS) |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 60000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 400000.0, |
| pl_holdingTime := 0.1 |
| )); |
| |
| // control measurement with 1 entity: |
| // same for 1000000 successes, but 1 entity (2000000 target CPS) |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000000.0, |
| pl_holdingTime := 0.1 |
| )); |
| |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(inconc, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| f_EPTF_Base_stop(pass); |
| } |
| |
| // this testcase measures the speed of the FSM that runs a traffic with a given holding time and states when the LGenBase is overloaded. |
| testcase tc_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Part3() runs on EPTF_LGenBase_PerfTest_FSM_Main_CT { |
| |
| f_EPTF_Base_init_CT("withMultipleTrafficCases_Part3"); |
| |
| var charstring vl_start_time := f_TestResultGen_getCurrentTime(); |
| |
| timer t_wait := 2.0*c_EPTF_LGenBase_Test_maxExecutionTime; |
| |
| var EPTF_LGenBase_PerfTest_FSM_CT vl_lgen; |
| |
| // holding time 1.0: |
| // cycles 10: |
| |
| // same for 10000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 3000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 10000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000.0, |
| pl_holdingTime := 1.0 / 10.0, |
| pl_nofCycles := 10 |
| )); |
| |
| // same for 100000 successes |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 30000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 100000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000.0, |
| pl_holdingTime := 1.0 / 10.0, |
| pl_nofCycles := 10 |
| )); |
| |
| // same for 100000 successes, but 60000 entities (40000 target CPS) |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 60000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 100000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 40000.0, |
| pl_holdingTime := 1.0 / 10.0, |
| pl_nofCycles := 10 |
| )); |
| |
| // // use too much memory, excluded from tests: |
| // // same for 1000000 successes, but 100000 entities (2000000 target CPS) |
| // vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| // vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| // pl_EPTF_LGenBase_Test_nofEntities := 3000000, |
| // pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| // pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| // pl_EPTF_LGenBase_Test_tcCPS := 2000000.0, |
| // pl_holdingTime := 1.0 / 10.0, |
| // pl_nofCycles := 10 |
| // )); |
| |
| // control measurement with 1 entity: |
| // same for 1000000 successes, but 1 entity (2000000 target CPS) |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Behaviour(vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000000.0, |
| pl_holdingTime := 1.0 / 10.0, |
| pl_nofCycles := 10 |
| )); |
| |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(inconc, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| f_EPTF_Base_stop(pass); |
| } |
| |
| // this testcase measures the speed of the postEvent in FSM if events are posted in a single burst. |
| testcase tc_EPTF_LGenBase_PerfTest_FSM_postEventSpeed_SingleBurst() runs on EPTF_LGenBase_PerfTest_FSM_Main_CT { |
| |
| f_EPTF_Base_init_CT("postEventSpeed_SingleBurst"); |
| |
| var charstring vl_start_time := f_TestResultGen_getCurrentTime(); |
| |
| timer t_wait := 2.0*c_EPTF_LGenBase_Test_maxExecutionTime; |
| |
| var EPTF_LGenBase_PerfTest_FSM_CT vl_lgen; |
| |
| // start LGenBase components that post a total number of 1000000 events |
| // 100000 events in one burst |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10, |
| pl_EPTF_LGenBase_Test_nofEvents := 100000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200.0 |
| )); |
| |
| // 10000 events in one burst |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 100, |
| pl_EPTF_LGenBase_Test_nofEvents := 10000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000.0 |
| )); |
| |
| // same for 1000 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1000, |
| pl_EPTF_LGenBase_Test_nofEvents := 1000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000.0 |
| )); |
| |
| // same for 100 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10000, |
| pl_EPTF_LGenBase_Test_nofEvents := 100, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200000.0 |
| )); |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(fail, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| |
| // same for 10 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 100000, |
| pl_EPTF_LGenBase_Test_nofEvents := 10, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000000.0 |
| )); |
| |
| // same for 2 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 500000, |
| pl_EPTF_LGenBase_Test_nofEvents := 2, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 10000000.0 |
| )); |
| |
| // same for 1 event |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1000000, |
| pl_EPTF_LGenBase_Test_nofEvents := 1, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000000.0 |
| )); |
| |
| // same for 0 event |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10000, |
| pl_EPTF_LGenBase_Test_nofEvents := 0, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200000.0 |
| )); |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(fail, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| f_EPTF_Base_stop(pass); |
| } |
| |
| // this testcase measures the speed of the dispatchEvent in FSM if events are dispatched in a single burst. |
| testcase tc_EPTF_LGenBase_PerfTest_FSM_dispatchEventSpeed_SingleBurst() runs on EPTF_LGenBase_PerfTest_FSM_Main_CT { |
| |
| f_EPTF_Base_init_CT("dispatchEventSpeed_SingleBurst"); |
| |
| var charstring vl_start_time := f_TestResultGen_getCurrentTime(); |
| |
| timer t_wait := 2.0*c_EPTF_LGenBase_Test_maxExecutionTime; |
| |
| var EPTF_LGenBase_PerfTest_FSM_CT vl_lgen; |
| |
| // start LGenBase components that dispatch a total number of 1000000 events |
| // 100000 events in one burst |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10, |
| pl_EPTF_LGenBase_Test_nofEvents := 100000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200.0 |
| )); |
| |
| // 10000 events in one burst |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 100, |
| pl_EPTF_LGenBase_Test_nofEvents := 10000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000.0 |
| )); |
| |
| // same for 1000 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1000, |
| pl_EPTF_LGenBase_Test_nofEvents := 1000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000.0 |
| )); |
| |
| // same for 100 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10000, |
| pl_EPTF_LGenBase_Test_nofEvents := 100, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200000.0 |
| )); |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(fail, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| |
| // same for 10 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 100000, |
| pl_EPTF_LGenBase_Test_nofEvents := 10, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000000.0 |
| )); |
| |
| // same for 2 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 500000, |
| pl_EPTF_LGenBase_Test_nofEvents := 2, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 10000000.0 |
| )); |
| |
| // same for 1 event |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1000000, |
| pl_EPTF_LGenBase_Test_nofEvents := 1, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000000.0 |
| )); |
| |
| // same for 0 event |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10000, |
| pl_EPTF_LGenBase_Test_nofEvents := 0, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200000.0 |
| )); |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(fail, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| f_EPTF_Base_stop(pass); |
| } |
| |
| // this testcase measures the speed of the postEvent in FSM if events are posted in multiple bursts (overload situation in LGenBase). |
| testcase tc_EPTF_LGenBase_PerfTest_FSM_postEventSpeed_MultiBurst() runs on EPTF_LGenBase_PerfTest_FSM_Main_CT { |
| |
| f_EPTF_Base_init_CT("postEventSpeed_MultiBurst"); |
| |
| var charstring vl_start_time := f_TestResultGen_getCurrentTime(); |
| |
| timer t_wait := 2.0*c_EPTF_LGenBase_Test_maxExecutionTime; |
| |
| var EPTF_LGenBase_PerfTest_FSM_CT vl_lgen; |
| |
| // start LGenBase components that post a total number of 1000000 events |
| // 100000 events in one burst |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1, |
| pl_EPTF_LGenBase_Test_nofEvents := 100000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 10, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2.0 |
| )); |
| |
| // 10000 events in one burst |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1, |
| pl_EPTF_LGenBase_Test_nofEvents := 10000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 100, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20.0 |
| )); |
| |
| // same for 1000 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10, |
| pl_EPTF_LGenBase_Test_nofEvents := 1000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200.0 |
| )); |
| |
| // same for 100 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 100, |
| pl_EPTF_LGenBase_Test_nofEvents := 100, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 10000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000.0 |
| )); |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(fail, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| // same for 10 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1000, |
| pl_EPTF_LGenBase_Test_nofEvents := 10, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 100000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000.0 |
| )); |
| |
| // same for 2 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 5000, |
| pl_EPTF_LGenBase_Test_nofEvents := 2, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 500000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 100000.0 |
| )); |
| |
| // same for 1 event |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10000, |
| pl_EPTF_LGenBase_Test_nofEvents := 1, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200000.0 |
| )); |
| |
| // same for 0 event |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(post,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10000, |
| pl_EPTF_LGenBase_Test_nofEvents := 0, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200000.0 |
| )); |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(fail, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| f_EPTF_Base_stop(pass); |
| } |
| |
| // this testcase measures the speed of the dispatchEvent in FSM if events are dispatched in multiple bursts (overload situation in LGenBase). |
| testcase tc_EPTF_LGenBase_PerfTest_FSM_dispatchEventSpeed_MultiBurst() runs on EPTF_LGenBase_PerfTest_FSM_Main_CT { |
| |
| f_EPTF_Base_init_CT("dispatchEventSpeed_MultiBurst"); |
| |
| var charstring vl_start_time := f_TestResultGen_getCurrentTime(); |
| |
| timer t_wait := 2.0*c_EPTF_LGenBase_Test_maxExecutionTime; |
| |
| var EPTF_LGenBase_PerfTest_FSM_CT vl_lgen; |
| |
| // start LGenBase components that dispatch a total number of 1000000 events |
| // 100000 events in one burst |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1, |
| pl_EPTF_LGenBase_Test_nofEvents := 100000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 10, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2.0 |
| )); |
| |
| // 10000 events in one burst |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1, |
| pl_EPTF_LGenBase_Test_nofEvents := 10000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 100, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20.0 |
| )); |
| |
| // same for 1000 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10, |
| pl_EPTF_LGenBase_Test_nofEvents := 1000, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200.0 |
| )); |
| |
| // same for 100 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 100, |
| pl_EPTF_LGenBase_Test_nofEvents := 100, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 10000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 2000.0 |
| )); |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(fail, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| // same for 10 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 1000, |
| pl_EPTF_LGenBase_Test_nofEvents := 10, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 100000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 20000.0 |
| )); |
| |
| // same for 2 events |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 5000, |
| pl_EPTF_LGenBase_Test_nofEvents := 2, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 500000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 100000.0 |
| )); |
| |
| // same for 1 event |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10000, |
| pl_EPTF_LGenBase_Test_nofEvents := 1, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200000.0 |
| )); |
| |
| // same for 0 event |
| vl_lgen := EPTF_LGenBase_PerfTest_FSM_CT.create; |
| vl_lgen.start(f_EPTF_LGenBase_PerfTest_FSM_postOrDispatch_Behaviour(dispatch,vl_start_time, |
| pl_EPTF_LGenBase_Test_nofEntities := 10000, |
| pl_EPTF_LGenBase_Test_nofEvents := 0, |
| pl_EPTF_LGenBase_Test_nofSuccesses := 1000000, |
| pl_EPTF_LGenBase_Test_maxExecutionTime := c_EPTF_LGenBase_Test_maxExecutionTime, |
| pl_EPTF_LGenBase_Test_tcCPS := 200000.0 |
| )); |
| |
| t_wait.start; |
| alt { |
| [] t_wait.timeout { |
| setverdict(fail, "LGen component was not terminated in time"); |
| f_EPTF_Base_stop(none); |
| } |
| [] all component.done; |
| } |
| |
| f_EPTF_Base_stop(pass); |
| } |
| |
| control { |
| execute(tc_EPTF_LGenBase_PerfTest_FSM_simplest_SingleBurst()); |
| execute(tc_EPTF_LGenBase_PerfTest_FSM_simplest_MultiBurst()); |
| |
| execute(tc_EPTF_LGenBase_PerfTest_FSM_withHoldingTime_MultiBurst()); |
| execute(tc_EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_MultiBurst_Part1()); |
| execute(tc_EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_MultiBurst_Part2()); |
| execute(tc_EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_MultiBurst_Part3()); |
| |
| execute(tc_EPTF_LGenBase_PerfTest_FSM_withHoldingTimeAndStates_MultiBurst_CalculateResults()); |
| |
| execute(tc_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Part1()); |
| execute(tc_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Part2()); |
| execute(tc_EPTF_LGenBase_PerfTest_FSM_withMultipleTrafficCases_Part3()); |
| |
| execute(tc_EPTF_LGenBase_PerfTest_FSM_postEventSpeed_SingleBurst()); |
| execute(tc_EPTF_LGenBase_PerfTest_FSM_dispatchEventSpeed_SingleBurst()); |
| execute(tc_EPTF_LGenBase_PerfTest_FSM_postEventSpeed_MultiBurst()); |
| execute(tc_EPTF_LGenBase_PerfTest_FSM_dispatchEventSpeed_MultiBurst()); |
| } |
| |
| } //end of module |