blob: 9e7d407f2816d6d3e872a346c72df5e3d7068f46 [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
// //
// 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