hlr: add TC_MSLookup_mDNS_service_other_proxy
Ask proxy HLR about configured sip.voice service, and expect result.
Related: OS#4380
Change-Id: I2c956119783972b5e6828bed7554a8a79984d8a2
diff --git a/hlr/HLR_Tests.ttcn b/hlr/HLR_Tests.ttcn
index e00bd8b..0dd3cad 100644
--- a/hlr/HLR_Tests.ttcn
+++ b/hlr/HLR_Tests.ttcn
@@ -1799,6 +1799,48 @@
}
}
+/* Ask proxy HLR about configured sip.voice service, and expect result. */
+private function f_TC_MSLookup_mDNS_service_other_proxy() runs on HLR_ConnHdlr {
+ timer T;
+ var integer id := f_rnd_int(65535); /* mDNS packet ID */
+ var charstring domain := "sip.voice." & hex2str(g_pars.sub.msisdn) & ".msisdn.mdns.osmocom.org";
+
+ f_perform_UL_proxy(g_pars.sub.imsi, g_pars.sub.msisdn, OSMO_GSUP_CN_DOMAIN_CS);
+
+ /* Send mDNS query, expect result */
+ mDNS.send(ts_MSLookup_mDNS_query(id, domain));
+ T.start(1.0);
+ alt {
+ [] mDNS.receive(tr_MSLookup_mDNS_result_IPv4(id, domain, f_enc_IPv4("66.66.66.66"), 5060)) {
+ setverdict(pass);
+ }
+ [] mDNS.receive(MSLookup_mDNS:?) {
+ repeat;
+ }
+ [] T.timeout {
+ setverdict(fail, "Timeout");
+ }
+ }
+}
+testcase TC_MSLookup_mDNS_service_other_proxy() runs on test_CT {
+ var hexstring imsi := f_rnd_imsi('26242'H);
+ var hexstring msisdn := '49161'H & f_rnd_hexstring(7, 9);
+ var HLR_ConnHdlr vc_conn;
+ var HLR_ConnHdlrPars pars := valueof(t_Pars(imsi, msisdn));
+
+ f_init(false, true);
+ f_vty_config(VTY, "mslookup", "mdns bind");
+ f_vty_config2(VTY, {"mslookup", "server"}, "service sip.voice at 66.66.66.66 5060");
+ vc_conn := f_start_handler(refers(f_TC_MSLookup_mDNS_service_other_proxy), pars, true);
+
+ timer T := 3.0;
+ T.start;
+ alt {
+ [] vc_conn.done {}
+ [] T.timeout { setverdict(fail, "Timeout"); mtc.stop; };
+ }
+}
+
/* TODO:
* UL with ISD error
* UL with ISD timeout
@@ -1850,6 +1892,7 @@
execute( TC_MSLookup_GSUP_proxy() );
execute( TC_MSLookup_mDNS_service_GSUP_HLR_home() );
execute( TC_MSLookup_mDNS_service_GSUP_HLR_proxy() );
+ execute( TC_MSLookup_mDNS_service_other_proxy() );
}
};