jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43273?usp=email )
Change subject: IPAd: Add test for function ES10b.GetConnectivityParameters ......................................................................
IPAd: Add test for function ES10b.GetConnectivityParameters
Related: SYS#8101 Change-Id: I4010e324f61827dc5d230fc907ad6d49e3129736 --- M ipad/IPAd_Tests.ttcn M library/euicc/SGP32Definitions_Templates.ttcn M library/euicc/SGP32Definitions_Types.ttcn 3 files changed, 67 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/73/43273/1
diff --git a/ipad/IPAd_Tests.ttcn b/ipad/IPAd_Tests.ttcn index ef84949..ebfcfad 100644 --- a/ipad/IPAd_Tests.ttcn +++ b/ipad/IPAd_Tests.ttcn @@ -465,6 +465,14 @@ unmap(self:PIPE, system:PIPE); }
+/* Grep through log file and expect given pattern. + * Note: PIPEasp does not allow quotes, so 'string' must be a string without spaces. */ +private function f_expect_in_logfile(charstring string) runs on IPAd_ConnHdlr { + map(self:PIPE, system:PIPE); + f_PIPEasp_exec_sync(PIPE, "grep " & string & " /tmp/single_log", 0); + unmap(self:PIPE, system:PIPE); +} + /* ********************************************* */ /* ********** BELOW ONLY TESTCASES! ************ */ /* ********************************************* */ @@ -857,6 +865,34 @@ setverdict(pass); }
+/* A testcase to tigger the 'get connectivity parameters' via ES10b interface */ +private function f_TC_func_get_conn_params(charstring id) runs on IPAd_ConnHdlr { + f_exec_ipad("get-connectivity-parameters"); + f_es10x_init(eim_init := false); + + var octetstring asn := f_vpcd_transceive(enc_GetConnectivityParametersResponse(valueof(ts_getConnectivityParametersResponse_httpParams('12345678'O))), ''O); + var GetConnectivityParametersRequest req := dec_GetConnectivityParametersRequest(asn); + if (not match(req, tr_getConnectivityParametersRequest)) { + setverdict(fail, "Unexprected ES10b request: ", req); + } + + f_es10x_close(); + f_stop_ipad(); + + f_expect_in_logfile("HTTP.paramms:.12345678"); + + setverdict(pass); +} +testcase TC_func_get_conn_params() runs on MTC_CT { + var charstring id := testcasename(); + var IPAd_ConnHdlrPars pars := f_init_pars(); + var IPAd_ConnHdlr vc_conn; + f_init(id); + vc_conn := f_start_handler(refers(f_TC_func_get_conn_params), pars); + vc_conn.done; + setverdict(pass); +} + control { execute ( TC_proc_indirect_prfle_dwnld() ); execute ( TC_proc_euicc_pkg_dwnld_exec() ); @@ -867,6 +903,7 @@ execute ( TC_func_ret_from_fallback() ); execute ( TC_func_en_emerg_prfle() ); execute ( TC_func_dis_emerg_prfle() ); + execute ( TC_func_get_conn_params() ); }
} diff --git a/library/euicc/SGP32Definitions_Templates.ttcn b/library/euicc/SGP32Definitions_Templates.ttcn index 7c14667..92696f1 100644 --- a/library/euicc/SGP32Definitions_Templates.ttcn +++ b/library/euicc/SGP32Definitions_Templates.ttcn @@ -1703,6 +1703,26 @@ disableEmergencyProfileResult := errorCode }
+/* GSMA SGP.32, section 5.9.24 */ +template (present) GetConnectivityParametersRequest +tr_getConnectivityParametersRequest := { +} +template (value) GetConnectivityParametersRequest +ts_getConnectivityParametersRequest := { +} +template (present) GetConnectivityParametersResponse +tr_getConnectivityParametersResponse_httpParams(template octetstring httpParams := *) := { + connectivityParameters := { + httpParams := httpParams + } +} +template (value) GetConnectivityParametersResponse +ts_getConnectivityParametersResponse_httpParams(template (omit) octetstring httpParams := omit) := { + connectivityParameters := { + httpParams := httpParams + } +} + /* GSMA SGP.32, section 5.9.4 */ template (present) AddInitialEimResponse tr_addInitialEimResponse := { diff --git a/library/euicc/SGP32Definitions_Types.ttcn b/library/euicc/SGP32Definitions_Types.ttcn index 2f9de2a..82f908f 100644 --- a/library/euicc/SGP32Definitions_Types.ttcn +++ b/library/euicc/SGP32Definitions_Types.ttcn @@ -88,4 +88,14 @@ external function enc_DisableEmergencyProfileResponse(in DisableEmergencyProfileResponse msg) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };
+external function dec_GetConnectivityParametersRequest(in octetstring stream) return GetConnectivityParametersRequest +with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" }; +external function enc_GetConnectivityParametersRequest(in GetConnectivityParametersRequest msg) return octetstring +with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }; + +external function dec_GetConnectivityParametersResponse(in octetstring stream) return GetConnectivityParametersResponse +with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" }; +external function enc_GetConnectivityParametersResponse(in GetConnectivityParametersResponse msg) return octetstring +with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }; + }