jolly has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43276?usp=email )


Change subject: IPAd: A test to verify PSMO forwarding
......................................................................

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 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: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I38cccc34456eb7654b15582d952b6a1957305a74
Gerrit-Change-Number: 43276
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <[email protected]>

Reply via email to