BSC_Tests_CBSP: add a new testcase TC_cbsp_write_rep_period_num

Change-Id: I169c482ea5de040df63db4c605ac9cae19f8d28f
Related: SYS#5905
This commit is contained in:
Vadim Yanitskiy 2022-03-30 02:15:41 +03:00
parent 562d28e305
commit c2696fa108
1 changed files with 56 additions and 0 deletions

View File

@ -696,6 +696,61 @@ testcase TC_cbsp_write_then_replace() runs on cbsp_test_CT {
setverdict(pass);
}
/* Verify handling of the Repetition Period and the Number of Broadcasts */
testcase TC_cbsp_write_rep_period_num() runs on cbsp_test_CT {
var CBSP_IE page := f_gen_page();
const integer rep_period := 2; /* units of 1.883s */
const integer rep_number := 5;
var integer msg_count := 0;
var float last_time := 0.0;
timer T;
g_pars := valueof(ts_CBSP_Pars_default(false, 9001, 9501));
f_init(guard_timeout := 60.0);
f_cbsp_write(g_cbsp_msg_id, g_cbsp_ser_no,
cell_list := ts_BSSMAP_CIL_LAC_CI({bssmap_lac_ci(mp_cgi_bts0)}),
rep_period := rep_period, num_bcast_req := rep_number,
content := { page }, success_list := ?, fail_list := omit);
/* Count SMSCB messages during N=rep_number+2 repetition periods */
T.start(int2float(rep_period * (rep_number + 2)) * 1.883);
alt {
[] IPA_RSL[0].receive(tr_ASP_RSL_UD(f_page2rsl(page, g_cbsp_msg_id, g_cbsp_ser_no))) {
var float exp_period := int2float(rep_period) * 1.883;
var float calc_period := T.read - last_time;
log("Rx SMSCB message: count := ", msg_count + 1, ", ",
"elapsed := ", T.read, "s, diff := ", calc_period, "s");
if (msg_count > 0) {
/* Check the actual repetition period (+/- 0.5s) */
var template float tr_exp_period := (exp_period - 0.5 .. exp_period + 0.5);
if (not match(calc_period, tr_exp_period)) {
setverdict(fail, "Repetition period mismatch: ",
"calculated := ", calc_period, "s vs ",
"expected := ", tr_exp_period, "s");
}
}
msg_count := msg_count + 1;
last_time := T.read;
repeat;
}
[] T.timeout {
log("Received ", msg_count, " messages during ", last_time, "s");
}
}
if (msg_count != rep_number) {
setverdict(fail, "Received ", msg_count, " messages, ",
"while we expected ", rep_number);
}
f_sleep(1.0);
setverdict(pass);
}
/* Replace a message that doesn't exist: failure */
testcase TC_cbsp_replace_nonexist() runs on cbsp_test_CT {
var CBSP_IEs pages := {f_gen_page()};
@ -945,6 +1000,7 @@ control {
execute( TC_cbsp_write_lac() );
execute( TC_cbsp_write_then_replace() );
execute( TC_cbsp_write_rep_period_num() );
execute( TC_cbsp_replace_nonexist() );
execute( TC_cbsp_write_too_many() );
execute( TC_cbsp_kill_nonexist() );