jolly has submitted this change. (
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43276?usp=email )
(
5 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted
one.
)Change subject: IPAd: A test to verify PSMO forwarding
......................................................................
IPAd: A test to verify PSMO forwarding
Related: SYS#8101
Change-Id: I38cccc34456eb7654b15582d952b6a1957305a74
---
M eim/eIM_Tests.ttcn
M ipad/IPAd_Tests.ttcn
M library/euicc/RSPDefinitions_Templates.ttcn
M library/euicc/SGP32Definitions_Templates.ttcn
M library/euicc/SGP32Definitions_Types.ttcn
5 files changed, 85 insertions(+), 17 deletions(-)
Approvals:
osmith: Looks good to me, but someone else must approve
jolly: Looks good to me, approved
laforge: Looks good to me, but someone else must approve
Jenkins Builder: Verified
diff --git a/eim/eIM_Tests.ttcn b/eim/eIM_Tests.ttcn
index 9aa0a61..0a1db80 100644
--- a/eim/eIM_Tests.ttcn
+++ b/eim/eIM_Tests.ttcn
@@ -589,6 +589,7 @@
var charstring resource_id;
var HTTP_Adapter_Params http_adapter_pars;
var template EsipaMessageFromEimToIpa esipa_res;
+ var template EuiccPackageSigned euiccPackageSigned :=
tr_euiccPackageSigned(euiccPackage);
f_http_register();
@@ -606,7 +607,7 @@
/* Check the eIM for new eIM packages, we expect to get an
euiccPackageRequest that contains the PSMO
* that we have created (see above) */
esipa_res :=
f_esipa_transceive(valueof(ts_getEimPackageRequest(str2oct(order.eidValue))),
-
tr_getEimPackageResponse_euiccPkgReq(tr_euiccPackageRequest(euiccPackage)));
+
tr_getEimPackageResponse_euiccPkgReq(tr_euiccPackageRequest(euiccPackageSigned)));
/* The eIM will generate a counterValue and an eimTransactionId, both
must be echoed in the response. */
euiccPackageResult.euiccPackageResultSigned.euiccPackageResultDataSigned.counterValue
:=
diff --git a/ipad/IPAd_Tests.ttcn b/ipad/IPAd_Tests.ttcn
index f591495..1a275fe 100644
--- a/ipad/IPAd_Tests.ttcn
+++ b/ipad/IPAd_Tests.ttcn
@@ -957,6 +957,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() );
@@ -970,6 +1017,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 https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43276?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I38cccc34456eb7654b15582d952b6a1957305a74
Gerrit-Change-Number: 43276
Gerrit-PatchSet: 8
Gerrit-Owner: jolly <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: jolly <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: osmith <[email protected]>