jolly has submitted this change. (
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42967?usp=email )
(
6 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted
one.
)Change subject: IPAd: Make tests work with testenv and current master of IPAd
......................................................................
IPAd: Make tests work with testenv and current master of IPAd
The IPAd can now be tested using testenv.
Several minor changes are required to run them successfully. All tests
pass now.
Related: SYS#8101
Change-Id: Id4abf15feb179b17594bd11c6e7089469684900c
---
M ipad/IPAd_Tests.ttcn
A ipad/testenv.cfg
2 files changed, 54 insertions(+), 2 deletions(-)
Approvals:
osmith: Looks good to me, but someone else must approve
laforge: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/ipad/IPAd_Tests.ttcn b/ipad/IPAd_Tests.ttcn
index 7044217..a03fa3c 100644
--- a/ipad/IPAd_Tests.ttcn
+++ b/ipad/IPAd_Tests.ttcn
@@ -347,7 +347,7 @@
private function f_esipa_receive(template EsipaMessageFromIpaToEim
expected_esipa_req := omit)
runs on IPAd_ConnHdlr return EsipaMessageFromIpaToEim {
var HTTPMessage esipa_req_encoded;
- timer T := 10.0;
+ timer T := 15.0;
var EsipaMessageFromIpaToEim esipa_req;
T.start;
@@ -375,6 +375,12 @@
HTTP_SRV[0].send(ts_http_resp(esipa_res_encoded));
}
+/* Close ESipa HTTP connection */
+private function f_esipa_close() runs on IPAd_ConnHdlr {
+ var template (value) Close abort_signal := { client_id := omit };
+ HTTP_SRV[0].send(abort_signal);
+}
+
/* Perform one ESipa HTTP request/response cycle */
private function f_esipa_transceive(EsipaMessageFromEimToIpa esipa_res,
template EsipaMessageFromIpaToEim
expected_esipa_req := omit)
@@ -419,6 +425,16 @@
f_esipa_transceive(valueof(ts_authenticateClientResponseEsipa_dpe),
tr_authenticateClientRequestEsipa);
}
+/* After processing notifications and eIM packages, IPAd will poll again.
+ * Respond with empty notification list and with no eIM package. */
+private function f_terminate_poll_cycle() runs on IPAd_ConnHdlr {
+ /* Expect the IPAd to query the eUICC for pending notifications, we
respond with an empty list */
+
f_vpcd_transceive(enc_RetrieveNotificationsListResponse(valueof(ts_retrieveNotificationsListResponse_empty)),
'BF2B00'O);
+
+ /* IPAd requests a package, we tell it that there is no package
available */
+
f_esipa_transceive(valueof(ts_getEimPackageResponse_noEimPackageAvailable),
tr_getEimPackageRequest);
+}
+
/* ********************************************* */
/* ********** BELOW ONLY TESTCASES! ************ */
/* ********************************************* */
@@ -487,6 +503,9 @@
/* Receive RemoveNotificationFromList from iPAD->eUICC */
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);
@@ -531,6 +550,9 @@
f_vpcd_transceive(enc_NotificationSentResponse(valueof(ts_notificationSentResponse)));
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);
@@ -565,8 +587,15 @@
/* Step #9 */
f_vpcd_transceive(enc_RetrieveNotificationsListResponse(valueof(ts_retrieveNotificationsListResponse_prfleInstRes)));
- /* We now ignore the response from the IPAd. The IPAd will interpret
this as a disturbed IP connection. */
+ /* We now ignore the (4) responses from the IPAd. The IPAd will
interpret this as a disturbed IP connection. */
f_esipa_receive();
+ f_esipa_close();
+ f_esipa_receive();
+ f_esipa_close();
+ f_esipa_receive();
+ f_esipa_close();
+ f_esipa_receive();
+ f_esipa_close();
/* To fix the problem, the IPAd will now try a profile rollback
meneuver. */
f_vpcd_transceive(enc_ProfileRollbackResponse(valueof(ts_profileRollbackResponse)),
@@ -578,6 +607,9 @@
/* Step #9 */
f_vpcd_transceive(enc_RetrieveNotificationsListResponse(valueof(ts_retrieveNotificationsListResponse_prfleInstRes)));
+ /* Wait some time for the client to re-connect */
+ f_sleep(2.0);
+
/* Step #10-14 */
f_esipa_transceive(valueof(ts_provideEimPackageResultResponse_eimAck(eimAcknowledgements
:= {1,2,3,4})),
tr_provideEimPackageResult(*,
tr_eimPackageResult_ePRAndNotif(euiccPackageResult := ?)));
@@ -589,6 +621,9 @@
f_vpcd_transceive(enc_NotificationSentResponse(valueof(ts_notificationSentResponse)));
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);
@@ -630,6 +665,9 @@
f_esipa_transceive(valueof(ts_provideEimPackageResultResponse_eimAck(eimAcknowledgements
:= {1,2,3,4})),
tr_provideEimPackageResult(*,
tr_eimPackageResult_euiccDataResp));
+ /* IPAd will poll again. */
+ f_terminate_poll_cycle();
+
/* Wait some time until the the last HTTP response is actually
delivered */
f_sleep(2.0);
diff --git a/ipad/testenv.cfg b/ipad/testenv.cfg
new file mode 100644
index 0000000..71d1ea1
--- /dev/null
+++ b/ipad/testenv.cfg
@@ -0,0 +1,14 @@
+[testsuite]
+program=IPAd_Tests
+config=IPAd_Tests.cfg
+copy=example_ca
+
+[pcscd]
+prepare=require_vsmartcard_vpcd.sh
+program=pcscd -f -d $(pcscd --help 2>&1 | grep -q -- --disable-polkit && echo
"--disable-polkit")
+make=no
+
+[ipad]
+program=sh -c 'while true; do onomondo-ipa -I; echo "Restart IPAd in one
second..."; sleep 1; done'
+make=onomondo-ipa
+package=onomondo-ipa
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42967?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: Id4abf15feb179b17594bd11c6e7089469684900c
Gerrit-Change-Number: 42967
Gerrit-PatchSet: 8
Gerrit-Owner: jolly <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <[email protected]>
Gerrit-Reviewer: jolly <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: osmith <[email protected]>