jolly has uploaded this change for review.
IPAd: A test to verify PSMO forwarding
Related: SYS#8101
Change-Id: I38cccc34456eb7654b15582d952b6a1957305a74
---
M ipad/IPAd_Tests.ttcn
M library/euicc/RSPDefinitions_Templates.ttcn
M library/euicc/SGP32Definitions_Templates.ttcn
M library/euicc/SGP32Definitions_Types.ttcn
4 files changed, 83 insertions(+), 16 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/76/43276/1
diff --git a/ipad/IPAd_Tests.ttcn b/ipad/IPAd_Tests.ttcn
index dc299d0..3bbc95f 100644
--- a/ipad/IPAd_Tests.ttcn
+++ b/ipad/IPAd_Tests.ttcn
@@ -942,6 +942,53 @@
setverdict(pass);
}
+/* A testcase to test the forwarding of a PSMO and the expected otherSignedNotification */
+private function f_TC_euiccPackageRequest_PSMO(charstring id) runs on IPAd_ConnHdlr {
+ template (value) EuiccPackage euiccPackage := ts_euiccPackage_setFallbackAttribute;
+ template (value) EuiccPackageSigned euiccPackageSigned := ts_euiccPackageSigned(euiccPackage);
+ template (value) EuiccPackageRequest euiccPackageRequest := ts_euiccPackageRequest(euiccPackageSigned);
+ template (value) OtherSignedNotification otherSignedNotification := ts_otherSignedNotification(euiccCertificate := ts_cert_eum_nist,
+ eumCertificate := ts_cert_eum_nist);
+
+ f_exec_ipad();
+ f_es10x_init();
+ f_http_register();
+
+ /* IPAd requests a package, we tell it to execute an euiccPackageRequest */
+ f_esipa_transceive(valueof(ts_getEimPackageResponse_euiccPkgReq(euiccPackageRequest)), tr_getEimPackageRequest);
+
+ /* Send a PSMO, so that we will expect otherSignedNotification afterwards */
+ f_vpcd_transceive(enc_EuiccPackageResult(valueof(ts_euiccPackageResult)),
+ enc_EuiccPackageRequest(valueof(euiccPackageRequest)));
+
+ /* Expect otherSignedNotification */
+ f_vpcd_transceive(enc_RetrieveNotificationsListResponse(valueof(ts_retrieveNotificationsListResponse_other(otherSignedNotification))));
+
+ /* IPAd will acknowledge */
+ f_esipa_transceive(valueof(ts_provideEimPackageResultResponse_eimAck()), ?);
+ f_vpcd_transceive(enc_NotificationSentResponse(valueof(ts_notificationSentResponse)));
+
+ /* IPAd will poll again. */
+ f_terminate_poll_cycle();
+
+ /* Wait some time until the the last HTTP response is actually delivered */
+ f_sleep(2.0);
+
+ f_es10x_close();
+ f_stop_ipad();
+
+ setverdict(pass);
+}
+testcase TC_euiccPackageRequest_PSMO() 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_euiccPackageRequest_PSMO), pars);
+ vc_conn.done;
+ setverdict(pass);
+}
+
control {
execute ( TC_proc_indirect_prfle_dwnld() );
execute ( TC_proc_euicc_pkg_dwnld_exec() );
@@ -955,6 +1002,7 @@
execute ( TC_func_get_conn_params() );
execute ( TC_func_get_conn_params_error() );
execute ( TC_set_device_capabilities() );
+ execute ( TC_euiccPackageRequest_PSMO() );
}
}
diff --git a/library/euicc/RSPDefinitions_Templates.ttcn b/library/euicc/RSPDefinitions_Templates.ttcn
index b7ea50c..b940453 100644
--- a/library/euicc/RSPDefinitions_Templates.ttcn
+++ b/library/euicc/RSPDefinitions_Templates.ttcn
@@ -577,6 +577,14 @@
}
}
template (value) RetrieveNotificationsListResponse
+ts_retrieveNotificationsListResponse_other(template (value) OtherSignedNotification otherSignedNotification) := {
+ notificationList := {
+ {
+ otherSignedNotification := otherSignedNotification
+ }
+ }
+}
+template (value) RetrieveNotificationsListResponse
ts_retrieveNotificationsListResponse_empty := {
notificationList := {
}
diff --git a/library/euicc/SGP32Definitions_Templates.ttcn b/library/euicc/SGP32Definitions_Templates.ttcn
index e431313..839df9c 100644
--- a/library/euicc/SGP32Definitions_Templates.ttcn
+++ b/library/euicc/SGP32Definitions_Templates.ttcn
@@ -661,26 +661,32 @@
}
/* GSMA SGP.32, section 6.3.2.6 */
+template (present) EuiccPackageSigned
+tr_euiccPackageSigned(template (present) EuiccPackage euiccPackage := tr_euiccPackage_enablePsmo) := {
+ eimId := ?,
+ eidValue := ?,
+ counterValue := ?,
+ eimTransactionId := *,
+ euiccPackage := euiccPackage
+}
+
+template (value) EuiccPackageSigned
+ts_euiccPackageSigned(template (value) EuiccPackage euiccPackage := ts_euiccPackage_enablePsmo) := {
+ eimId := "myEim",
+ eidValue := '00112233445566778899AABBCCDDEEFF'O,
+ counterValue := 123,
+ eimTransactionId := omit,
+ euiccPackage := euiccPackage
+}
+
template (present) EuiccPackageRequest
-tr_euiccPackageRequest(template (present) EuiccPackage euiccPackage := tr_euiccPackage_enablePsmo) := {
- euiccPackageSigned := {
- eimId := ?,
- eidValue := ?,
- counterValue := ?,
- eimTransactionId := *,
- euiccPackage := euiccPackage
- },
+tr_euiccPackageRequest(template (present) EuiccPackageSigned euiccPackageSigned := tr_euiccPackageSigned) := {
+ euiccPackageSigned := euiccPackageSigned,
eimSignature := ?
}
template (value) EuiccPackageRequest
-ts_euiccPackageRequest(template (value) EuiccPackage euiccPackage := ts_euiccPackage_enablePsmo) := {
- euiccPackageSigned := {
- eimId := "myEim",
- eidValue := '00112233445566778899AABBCCDDEEFF'O,
- counterValue := 123,
- eimTransactionId := omit,
- euiccPackage := euiccPackage
- },
+ts_euiccPackageRequest(template (value) EuiccPackageSigned euiccPackageSigned := ts_euiccPackageSigned) := {
+ euiccPackageSigned := euiccPackageSigned,
eimSignature := '5252525252525252525252525252525252525252525252525252525252525252
5353535353535353535353535353535353535353535353535353535353535353'O
}
diff --git a/library/euicc/SGP32Definitions_Types.ttcn b/library/euicc/SGP32Definitions_Types.ttcn
index 82f908f..17f1c72 100644
--- a/library/euicc/SGP32Definitions_Types.ttcn
+++ b/library/euicc/SGP32Definitions_Types.ttcn
@@ -98,4 +98,9 @@
external function enc_GetConnectivityParametersResponse(in GetConnectivityParametersResponse msg) return octetstring
with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };
+external function dec_EuiccPackageRequest(in octetstring stream) return EuiccPackageRequest
+with { extension "prototype(convert) decode(BER:BER_ACCEPT_ALL)" };
+external function enc_EuiccPackageRequest(in EuiccPackageRequest msg) return octetstring
+with { extension "prototype(convert) encode(BER:BER_ENCODE_DER)" };
+
}
To view, visit change 43276. To unsubscribe, or for help writing mail filters, visit settings.