jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43271?usp=email )
Change subject: IPAd: Add test for function ES10b.EnableEmergencyProfile ......................................................................
IPAd: Add test for function ES10b.EnableEmergencyProfile
Related: SYS#8101 Change-Id: I7868c08e5355f0d31863bc71d065ddfae4006695 --- M ipad/IPAd_Tests.ttcn M library/euicc/SGP32Definitions_Templates.ttcn M library/euicc/SGP32Definitions_Types.ttcn 3 files changed, 55 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/71/43271/1
diff --git a/ipad/IPAd_Tests.ttcn b/ipad/IPAd_Tests.ttcn index 1612c86..2c56d41 100644 --- a/ipad/IPAd_Tests.ttcn +++ b/ipad/IPAd_Tests.ttcn @@ -805,6 +805,32 @@ setverdict(pass); }
+/* A testcase to tigger the 'enable emergency profile' via ES10b interface */ +private function f_TC_func_en_emerg_prfle(charstring id) runs on IPAd_ConnHdlr { + f_exec_ipad("enable-emergency-profile"); + f_es10x_init(eim_init := false); + + var octetstring asn := f_vpcd_transceive(enc_EnableEmergencyProfileResponse(valueof(ts_enableEmergencyProfileResponse(0))), ''O); + var EnableEmergencyProfileRequest req := dec_EnableEmergencyProfileRequest(asn); + if (not match(req, tr_enableEmergencyProfileRequest())) { + setverdict(fail, "Unexprected ES10b request: ", req); + } + + f_es10x_close(); + f_stop_ipad(); + + setverdict(pass); +} +testcase TC_func_en_emerg_prfle() 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_en_emerg_prfle), pars); + vc_conn.done; + setverdict(pass); +} + control { execute ( TC_proc_indirect_prfle_dwnld() ); execute ( TC_proc_euicc_pkg_dwnld_exec() ); @@ -813,6 +839,7 @@ execute ( TC_get_eim_pkg_req_rej() ); execute ( TC_func_exec_fallback_mech() ); execute ( TC_func_ret_from_fallback() ); + execute ( TC_func_en_emerg_prfle() ); }
} diff --git a/library/euicc/SGP32Definitions_Templates.ttcn b/library/euicc/SGP32Definitions_Templates.ttcn index 05cb7d7..be2b41b 100644 --- a/library/euicc/SGP32Definitions_Templates.ttcn +++ b/library/euicc/SGP32Definitions_Templates.ttcn @@ -1667,6 +1667,24 @@ returnFromFallbackResult := errorCode }
+/* GSMA SGP.32, section 5.9.22 */ +template (present) EnableEmergencyProfileRequest +tr_enableEmergencyProfileRequest(template (present) boolean refreshFlag := ?) := { + refreshFlag := refreshFlag +} +template (value) EnableEmergencyProfileRequest +ts_enableEmergencyProfileRequest(template (value) boolean refreshFlag := false) := { + refreshFlag := refreshFlag +} +template (present) EnableEmergencyProfileResponse +tr_enableEmergencyProfileResponse(template (present) integer errorCode := ?) := { + enableEmergencyProfileResult := errorCode +} +template (value) EnableEmergencyProfileResponse +ts_enableEmergencyProfileResponse(template (value) integer errorCode := 127) := { + enableEmergencyProfileResult := errorCode +} + /* 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 28e5b23..40ec409 100644 --- a/library/euicc/SGP32Definitions_Types.ttcn +++ b/library/euicc/SGP32Definitions_Types.ttcn @@ -68,4 +68,14 @@ external function enc_ReturnFromFallbackResponse(in ReturnFromFallbackResponse msg) return octetstring with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };
+external function dec_EnableEmergencyProfileRequest(in octetstring stream) return EnableEmergencyProfileRequest +with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" }; +external function enc_EnableEmergencyProfileRequest(in EnableEmergencyProfileRequest msg) return octetstring +with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }; + +external function dec_EnableEmergencyProfileResponse(in octetstring stream) return EnableEmergencyProfileResponse +with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" }; +external function enc_EnableEmergencyProfileResponse(in EnableEmergencyProfileResponse msg) return octetstring +with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" }; + }