pgw: Add TC_createSession_ping4_256 to test 256 parallel sessions
Change-Id: I38cfaddfb60952f17846fbf87b1a29c32e646438
diff --git a/pgw/PGW_Tests.ttcn b/pgw/PGW_Tests.ttcn
index cf3b901..c99302c 100644
--- a/pgw/PGW_Tests.ttcn
+++ b/pgw/PGW_Tests.ttcn
@@ -126,6 +126,26 @@
fn.apply();
}
+private function f_concat_pad(integer tot_len, hexstring prefix, integer suffix) return hexstring {
+ var integer suffix_len := tot_len - lengthof(prefix);
+ var charstring suffix_ch := int2str(suffix);
+ var integer pad_len := suffix_len - lengthof(suffix_ch);
+
+ return prefix & int2hex(0, pad_len) & str2hex(suffix_ch);
+}
+
+function f_gen_imei(integer suffix) return hexstring {
+ return f_concat_pad(14, '49999'H, suffix);
+}
+
+function f_gen_imsi(integer suffix) return hexstring {
+ return f_concat_pad(15, '26242'H, suffix);
+}
+
+function f_gen_msisdn(integer suffix) return hexstring {
+ return f_concat_pad(12, '49123'H, suffix);
+}
+
/* find TEID of given interface type (and optionally instance) */
private function f_find_teid(FullyQualifiedTEID_List list,
@@ -385,6 +405,23 @@
vc_conn := f_start_handler(refers(f_TC_createSession_ping4), pars);
vc_conn.done;
}
+testcase TC_createSession_ping4_256() runs on PGW_Test_CT {
+ var PGW_Session_CT vc_conn[256];
+ var integer i;
+
+ f_init();
+
+ for (i := 0; i < sizeof(vc_conn); i:=i+1) {
+ var charstring tundev := "ping" & int2str(i);
+ var SessionPars pars := valueof(t_SessionPars(f_gen_imsi(i), tundev));
+ vc_conn[i] := f_start_handler(refers(f_TC_createSession_ping4), pars);
+ }
+
+ for (i := 0; i < lengthof(vc_conn); i:=i+1) {
+ vc_conn[i].done;
+ }
+}
+
/* create a session, then delete it again */
private function f_TC_createSession_deleteSession() runs on PGW_Session_CT {
@@ -422,6 +459,7 @@
execute( TC_tx_echo() );
execute( TC_createSession() );
execute( TC_createSession_ping4() );
+ execute( TC_createSession_ping4_256() );
execute( TC_createSession_deleteSession() );
execute( TC_deleteSession_unknown() );
}