sccp: Introduce test TC_process_rx_ludt

Related: SYS#6566
Change-Id: I0880ccce872e79f057e17e29e09a566645365e96
diff --git a/sccp/SCCP_Tests_RAW.ttcn b/sccp/SCCP_Tests_RAW.ttcn
index 505deb6..1c81d98 100644
--- a/sccp/SCCP_Tests_RAW.ttcn
+++ b/sccp/SCCP_Tests_RAW.ttcn
@@ -340,6 +340,31 @@
 	setverdict(pass);
 }
 
+private function f_tx_ludt_exp(SCCP_PAR_Address calling, SCCP_PAR_Address called, octetstring data) runs on SCCP_Test_RAW_CT {
+	var template PDU_SCCP exp_rx;
+	f_send_sccp(ts_SCCP_LUDT(calling, called, data));
+	exp_rx := tr_SCCP_LUDT(called, calling, data);
+	f_exp_sccp(exp_rx);
+}
+
+/* Test if the IUT SCCP code processes a LUDT [treat it like UDT] and answers back. */
+testcase TC_process_rx_ludt() runs on SCCP_Test_RAW_CT {
+	var SCCP_PAR_Address calling, called;
+	var octetstring data := f_rnd_octstring(1000);
+
+	f_init_raw(mp_sccp_cfg[0]);
+	f_sleep(1.0);
+
+	called := valueof(ts_SccpAddr_PC_SSN(mp_sccp_cfg[0].peer_pc, mp_sccp_cfg[0].peer_ssn,
+					     mp_sccp_cfg[0].sio, mp_sccp_cfg[0].sccp_service_type));
+	calling := valueof(ts_SccpAddr_PC_SSN(mp_sccp_cfg[0].own_pc, mp_sccp_cfg[0].own_ssn,
+					     mp_sccp_cfg[0].sio, mp_sccp_cfg[0].sccp_service_type));
+
+	/* Make sure an LUDT is echoed back just like an UDT */
+	f_tx_ludt_exp(calling, called, data);
+	setverdict(pass);
+}
+
 function f_scmg_xceive(SCCP_PAR_Address calling, SCCP_PAR_Address called,
 		       template (value) PDU_SCMG_message tx,
 		       template (omit) PDU_SCMG_message rx_exp,
@@ -464,6 +489,7 @@
 	execute( TC_tiar_timeout() );
 	execute( TC_it_avoids_tiar() );
 	execute( TC_process_rx_xudt() );
+	execute( TC_process_rx_ludt() );
 
 	execute( TC_scmg_sst_ssn1() );
 	execute( TC_scmg_sst_ssn_valid() );