jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43621?usp=email )
Change subject: IPAd: Cleanly process TC_set_device_capabilities
......................................................................
IPAd: Cleanly process TC_set_device_capabilities
Process the test and make IPAd terminate cleanly. This is required to
check if all memory was freed and there is no memory leak.
Related: SYS#8199
Change-Id: I426b2d0d00790577468599fedd65377a4e4bfeed
---
M ipad/IPAd_Tests.ttcn
1 file changed, 10 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/21/43621/1
diff --git a/ipad/IPAd_Tests.ttcn b/ipad/IPAd_Tests.ttcn
index 0c013d9..18ed355 100644
--- a/ipad/IPAd_Tests.ttcn
+++ b/ipad/IPAd_Tests.ttcn
@@ -981,7 +981,17 @@
private function f_TC_set_device_capabilities(charstring id) runs on IPAd_ConnHdlr {
f_exec_ipad("-D 0xF1");
f_es10x_init(dev_capa := 'F1'O);
+ f_http_register();
+
+ /* IPAd will poll for eIM package. */
+ 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_set_device_capabilities() runs on MTC_CT {
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43621?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: I426b2d0d00790577468599fedd65377a4e4bfeed
Gerrit-Change-Number: 43621
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43622?usp=email )
Change subject: IPAd: Check for memory leaks after each test
......................................................................
IPAd: Check for memory leaks after each test
After each test, use grep to verify that no pending allocation is left
after the last free() function call.
The built-in memory leak detection will print the current memory useage
to stdout. The last debug message must have an allocation count of 0
bytes.
Related: SYS#8199
Change-Id: Ifd5390ac230b48614585d2820b9133daebd8c321
---
M ipad/IPAd_Tests.ttcn
A ipad/checkleak.sh
M ipad/testenv.cfg
3 files changed, 15 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/22/43622/1
diff --git a/ipad/IPAd_Tests.ttcn b/ipad/IPAd_Tests.ttcn
index 18ed355..86ab0b1 100644
--- a/ipad/IPAd_Tests.ttcn
+++ b/ipad/IPAd_Tests.ttcn
@@ -469,7 +469,7 @@
f_sleep(1.0);
map(self:PIPE, system:PIPE);
f_PIPEasp_exec_async_start(PIPE, "sh", "rm -f nvstate.bin ; " &
- "onomondo-ipa -C example_ca/pki/issued/alttest.cabundle " &
+ "stdbuf -oL -eL onomondo-ipa -C example_ca/pki/issued/alttest.cabundle " &
parameters &
" 2>&1 | tee -i /tmp/single_log >> onomondo-ipa.log");
@@ -482,8 +482,18 @@
/* Stop IPAd, if still running. */
private function f_stop_ipad(charstring parameters := "") runs on IPAd_ConnHdlr {
+ /* Wait for IPAd to terminate, so that the log is complete. */
+ f_sleep(1.0);
+
map(self:PIPE, system:PIPE);
+
+ /* Expect that the last line Terminate iPAd in case it freezes. */
+ log("Finally checking for memory leaks...");
+ f_PIPEasp_exec_sync(PIPE, "sh checkleak.sh", 0);
+
+ /* Terminate iPAd in case it freezes. */
f_PIPEasp_exec_async_stop(PIPE, "onomondo-ipa");
+
unmap(self:PIPE, system:PIPE);
}
diff --git a/ipad/checkleak.sh b/ipad/checkleak.sh
new file mode 100755
index 0000000..2a9b7d7
--- /dev/null
+++ b/ipad/checkleak.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+grep "====> free" onomondo-ipa.log | tail -n 1 | grep " 0 bytes total"
diff --git a/ipad/testenv.cfg b/ipad/testenv.cfg
index dfec811..98a2fee 100644
--- a/ipad/testenv.cfg
+++ b/ipad/testenv.cfg
@@ -1,7 +1,7 @@
[testsuite]
program=IPAd_Tests
config=IPAd_Tests.cfg
-copy=example_ca
+copy=example_ca checkleak.sh
[pcscd]
prepare=require_vsmartcard_vpcd.sh
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43622?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: Ifd5390ac230b48614585d2820b9133daebd8c321
Gerrit-Change-Number: 43622
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43620?usp=email )
Change subject: IPAd: Add test case for multple eIM packages
......................................................................
IPAd: Add test case for multple eIM packages
IPAd will cycle through the main loop until there is no eIM package
available. The IPAd process keeps running. Provide multiple eIM packes
to see if they do not conflict with each other. At the end there must be
no memory leak, but this is checked in a later patch.
To re-use code from other tests, move the package processing of other
tests to extra functions. These functions are called in this test
multiple times.
Related: SYS#8199
Change-Id: I74bba77cc391ed243729e99a5aeaefb9dbde2922
---
M ipad/IPAd_Tests.ttcn
1 file changed, 104 insertions(+), 36 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/20/43620/1
diff --git a/ipad/IPAd_Tests.ttcn b/ipad/IPAd_Tests.ttcn
index 8f3af56..0c013d9 100644
--- a/ipad/IPAd_Tests.ttcn
+++ b/ipad/IPAd_Tests.ttcn
@@ -502,15 +502,11 @@
/* A testcase to try out an indirect profile download,
* See also: GSMA SGP.32, section 3.2.3.2: Indirect Profile Download */
-private function f_TC_proc_indirect_prfle_dwnld(charstring id) runs on IPAd_ConnHdlr {
+private function f_package_indirect_prfle_dwnld(charstring id) runs on IPAd_ConnHdlr {
var integer i;
var charstring eim_fqdn := mp_esipa_ip & ":" & int2str(mp_esipa_port);
var BoundProfilePackage boundProfilePackage;
- f_exec_ipad();
- f_es10x_init();
- f_http_register();
-
/* Prepare indirect profile download by responding with a download trigger request */
f_esipa_transceive(valueof(ts_getEimPackageResponse_dnlTrigReq(ts_profileDownloadTriggerRequest(eimTransactionId := '42'O))),
tr_getEimPackageRequest);
@@ -567,6 +563,13 @@
/* IPAd will poll for notifications. */
f_respond_empty_notifications();
+}
+private function f_TC_proc_indirect_prfle_dwnld(charstring id) runs on IPAd_ConnHdlr {
+ f_exec_ipad();
+ f_es10x_init();
+ f_http_register();
+
+ f_package_indirect_prfle_dwnld(id);
/* IPAd will poll for eIM package. */
f_terminate_poll_cycle();
@@ -592,14 +595,10 @@
/* A testcase to try out an the Generic eUICC Package Download and Execution Procedure,
* See also: GSMA SGP.32, section 3.3.1: Generic eUICC Package Download and Execution */
-private function f_TC_proc_euicc_pkg_dwnld_exec(charstring id) runs on IPAd_ConnHdlr {
+private function f_package_euicc_pkg_dwnld_exec(charstring id) runs on IPAd_ConnHdlr {
template (value) EuiccPackageSigned euiccPackageSigned := ts_euiccPackageSigned(eimTransactionId := '42'O);
template (present) EuiccPackageRequest euiccPackageRequest := ts_euiccPackageRequest(euiccPackageSigned);
- f_exec_ipad();
- f_es10x_init();
- f_http_register();
-
/* Step #1-#2 */
f_esipa_transceive(valueof(ts_getEimPackageResponse_euiccPkgReq(euiccPackageRequest)), tr_getEimPackageRequest);
@@ -626,6 +625,13 @@
/* IPAd will poll for notifications. */
f_respond_empty_notifications();
+}
+private function f_TC_proc_euicc_pkg_dwnld_exec(charstring id) runs on IPAd_ConnHdlr {
+ f_exec_ipad();
+ f_es10x_init();
+ f_http_register();
+
+ f_package_euicc_pkg_dwnld_exec(id);
/* IPAd will poll for eIM package. */
f_terminate_poll_cycle();
@@ -652,11 +658,7 @@
/* A testcase to try out an the Generic eUICC Package Download and Execution Procedure,
* but this time we force a rollback meneuver */
-private function f_TC_proc_euicc_pkg_dwnld_exec_rollback(charstring id) runs on IPAd_ConnHdlr {
- f_exec_ipad();
- f_es10x_init();
- f_http_register();
-
+private function f_package_euicc_pkg_dwnld_exec_rollback(charstring id) runs on IPAd_ConnHdlr {
/* Step #1-#2 */
f_esipa_transceive(valueof(ts_getEimPackageResponse_euiccPkgReq), tr_getEimPackageRequest);
@@ -702,6 +704,13 @@
/* IPAd will poll for notifications. */
f_respond_empty_notifications();
+}
+private function f_TC_proc_euicc_pkg_dwnld_exec_rollback(charstring id) runs on IPAd_ConnHdlr {
+ f_exec_ipad();
+ f_es10x_init();
+ f_http_register();
+
+ f_package_euicc_pkg_dwnld_exec_rollback(id);
/* IPAd will poll for eIM package. */
f_terminate_poll_cycle();
@@ -727,13 +736,9 @@
/* A testcase to try out an IpaEuiccDataRequest */
-private function f_TC_proc_euicc_data_req(charstring id) runs on IPAd_ConnHdlr {
+private function f_package_euicc_data_req(charstring id) runs on IPAd_ConnHdlr {
var charstring eim_fqdn := mp_esipa_ip & ":" & int2str(mp_esipa_port);
- f_exec_ipad();
- f_es10x_init();
- f_http_register();
-
/* IPAd requests a package, we tell it to execute an ipaEuiccDataRequest */
f_esipa_transceive(valueof(ts_getEimPackageResponse_euiccDataReq(ts_ipaEuiccDataRequest(eimTransactionId := '42'O))),
tr_getEimPackageRequest);
@@ -753,6 +758,13 @@
/* IPAd will poll for notifications. */
f_respond_empty_notifications();
+}
+private function f_TC_proc_euicc_data_req(charstring id) runs on IPAd_ConnHdlr {
+ f_exec_ipad();
+ f_es10x_init();
+ f_http_register();
+
+ f_package_euicc_data_req(id);
/* IPAd will poll for eIM package. */
f_terminate_poll_cycle();
@@ -983,17 +995,12 @@
}
/* 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 {
+private function f_package_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);
@@ -1010,6 +1017,13 @@
/* IPAd will poll for notifications. */
f_respond_empty_notifications();
+}
+private function f_TC_euiccPackageRequest_PSMO(charstring id) runs on IPAd_ConnHdlr {
+ f_exec_ipad();
+ f_es10x_init();
+ f_http_register();
+
+ f_package_euiccPackageRequest_PSMO(id);
/* IPAd will poll for eIM package. */
f_terminate_poll_cycle();
@@ -1033,13 +1047,9 @@
}
/* A testcase to trigger an indirect profile download. This download will fail because the eUICC indicates so. */
-private function f_TC_proc_indirect_prfle_dwnld_cancel_euicc(charstring id) runs on IPAd_ConnHdlr {
+private function f_package_indirect_prfle_dwnld_cancel_euicc(charstring id) runs on IPAd_ConnHdlr {
var charstring eim_fqdn := mp_esipa_ip & ":" & int2str(mp_esipa_port);
- f_exec_ipad();
- f_es10x_init();
- f_http_register();
-
/* Prepare indirect profile download by responding with a download trigger request */
f_esipa_transceive(valueof(ts_getEimPackageResponse_dnlTrigReq(ts_profileDownloadTriggerRequest(eimTransactionId := '42'O))),
tr_getEimPackageRequest);
@@ -1065,6 +1075,13 @@
/* IPAd will poll for notifications. */
f_respond_empty_notifications();
+}
+private function f_TC_proc_indirect_prfle_dwnld_cancel_euicc(charstring id) runs on IPAd_ConnHdlr {
+ f_exec_ipad();
+ f_es10x_init();
+ f_http_register();
+
+ f_package_indirect_prfle_dwnld_cancel_euicc(id);
/* IPAd will poll for eIM package. */
f_terminate_poll_cycle();
@@ -1088,13 +1105,9 @@
}
/* A testcase to trigger an indirect profile download. This download will fail because the eIM indicates so. */
-private function f_TC_proc_indirect_prfle_dwnld_cancel_eim(charstring id) runs on IPAd_ConnHdlr {
+private function f_package_indirect_prfle_dwnld_cancel_eim(charstring id) runs on IPAd_ConnHdlr {
var charstring eim_fqdn := mp_esipa_ip & ":" & int2str(mp_esipa_port);
- f_exec_ipad();
- f_es10x_init();
- f_http_register();
-
/* Prepare indirect profile download by responding with a download trigger request */
f_esipa_transceive(valueof(ts_getEimPackageResponse_dnlTrigReq(ts_profileDownloadTriggerRequest(eimTransactionId := '42'O))),
tr_getEimPackageRequest);
@@ -1123,6 +1136,13 @@
/* IPAd will poll for notifications. */
f_respond_empty_notifications();
+}
+private function f_TC_proc_indirect_prfle_dwnld_cancel_eim(charstring id) runs on IPAd_ConnHdlr {
+ f_exec_ipad();
+ f_es10x_init();
+ f_http_register();
+
+ f_package_indirect_prfle_dwnld_cancel_eim(id);
/* IPAd will poll for eIM package. */
f_terminate_poll_cycle();
@@ -1145,6 +1165,53 @@
setverdict(pass);
}
+/* Test multiple packages at once. */
+private function f_TC_multi_packages(charstring id) runs on IPAd_ConnHdlr {
+ var integer i, rounds := 5;
+
+ f_exec_ipad();
+ f_es10x_init();
+ f_http_register();
+
+ for (i := 0; i < rounds; i := i + 1) {
+ log("Test round ", i, " of ", rounds);
+ log("Testing indirect_prfle_dwnld...");
+ f_package_indirect_prfle_dwnld(id);
+ log("Testing euicc_pkg_dwnld_exec...");
+ f_package_euicc_pkg_dwnld_exec(id);
+ log("Testing euicc_pkg_dwnld_exec_rollback...");
+ f_package_euicc_pkg_dwnld_exec_rollback(id);
+ log("Testing euicc_data_req...");
+ f_package_euicc_data_req(id);
+ log("Testing euiccPackageRequest_PSMO...");
+ f_package_euiccPackageRequest_PSMO(id);
+ log("Testing indirect_prfle_dwnld_cancel_euicc...");
+ f_package_indirect_prfle_dwnld_cancel_euicc(id);
+ log("Testing indirect_prfle_dwnld_cancel_eim...");
+ f_package_indirect_prfle_dwnld_cancel_eim(id);
+ }
+
+ /* IPAd will poll for eIM package. */
+ 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_multi_packages() runs on MTC_CT {
+ var charstring id := testcasename();
+ var IPAd_ConnHdlrPars pars := f_init_pars();
+ var IPAd_ConnHdlr vc_conn;
+ f_init(id, 300.0);
+ vc_conn := f_start_handler(refers(f_TC_multi_packages), pars);
+ vc_conn.done;
+ setverdict(pass);
+}
+
control {
execute ( TC_proc_indirect_prfle_dwnld() );
execute ( TC_proc_euicc_pkg_dwnld_exec() );
@@ -1161,6 +1228,7 @@
execute ( TC_euiccPackageRequest_PSMO() );
execute ( TC_proc_indirect_prfle_dwnld_cancel_euicc() );
execute ( TC_proc_indirect_prfle_dwnld_cancel_eim() );
+ execute ( TC_multi_packages() );
}
}
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43620?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: I74bba77cc391ed243729e99a5aeaefb9dbde2922
Gerrit-Change-Number: 43620
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43619?usp=email )
Change subject: IPAd: Split f_terminate_poll_cycle()
......................................................................
IPAd: Split f_terminate_poll_cycle()
Remove the handling of notification list polling from
f_terminate_poll_cycle() and put it into an extra function. The
notification list is polled by IPAd after every eIM package processing.
This allows to send multiple eIM packages (and process notification list
polling) before terminating the poll cycle at the end. Later tests will
use this to check for memory leaks.
Related: SYS#8199
Change-Id: I4e278f74ce3bb9bbd666f13c2a72ed90eba34af7
---
M ipad/IPAd_Tests.ttcn
1 file changed, 34 insertions(+), 10 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/19/43619/1
diff --git a/ipad/IPAd_Tests.ttcn b/ipad/IPAd_Tests.ttcn
index 75e7be7..8f3af56 100644
--- a/ipad/IPAd_Tests.ttcn
+++ b/ipad/IPAd_Tests.ttcn
@@ -450,12 +450,15 @@
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 {
+/* Respond with empty notification list. */
+private function f_respond_empty_notifications() 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);
+}
+/* After processing notifications and eIM packages, IPAd will poll again.
+ * Respond with no eIM package. */
+private function f_terminate_poll_cycle() runs on IPAd_ConnHdlr {
/* IPAd requests a package, we tell it that there is no package available */
f_esipa_transceive(valueof(ts_getEimPackageResponse_noEimPackageAvailable), tr_getEimPackageRequest);
}
@@ -562,7 +565,10 @@
/* Receive RemoveNotificationFromList from iPAD->eUICC */
f_vpcd_transceive(enc_NotificationSentResponse(valueof(ts_notificationSentResponse)));
- /* IPAd will poll again. */
+ /* IPAd will poll for notifications. */
+ f_respond_empty_notifications();
+
+ /* IPAd will poll for eIM package. */
f_terminate_poll_cycle();
/* Wait some time until the the last HTTP response is actually delivered */
@@ -618,7 +624,10 @@
f_vpcd_transceive(enc_NotificationSentResponse(valueof(ts_notificationSentResponse)));
f_vpcd_transceive(enc_NotificationSentResponse(valueof(ts_notificationSentResponse)));
- /* IPAd will poll again. */
+ /* IPAd will poll for notifications. */
+ f_respond_empty_notifications();
+
+ /* IPAd will poll for eIM package. */
f_terminate_poll_cycle();
/* Wait some time until the the last HTTP response is actually delivered */
@@ -691,7 +700,10 @@
f_vpcd_transceive(enc_NotificationSentResponse(valueof(ts_notificationSentResponse)));
f_vpcd_transceive(enc_NotificationSentResponse(valueof(ts_notificationSentResponse)));
- /* IPAd will poll again. */
+ /* IPAd will poll for notifications. */
+ f_respond_empty_notifications();
+
+ /* IPAd will poll for eIM package. */
f_terminate_poll_cycle();
/* Wait some time until the the last HTTP response is actually delivered */
@@ -739,7 +751,10 @@
f_esipa_transceive(valueof(ts_provideEimPackageResultResponse_eimAck(eimAcknowledgements := {1,2,3,4})),
tr_provideEimPackageResult(*, tr_eimPackageResult_euiccDataResp(eimTransactionId := '42'O)));
- /* IPAd will poll again. */
+ /* IPAd will poll for notifications. */
+ f_respond_empty_notifications();
+
+ /* IPAd will poll for eIM package. */
f_terminate_poll_cycle();
/* Wait some time until the the last HTTP response is actually delivered */
@@ -993,7 +1008,10 @@
f_esipa_transceive(valueof(ts_provideEimPackageResultResponse_eimAck()), ?);
f_vpcd_transceive(enc_NotificationSentResponse(valueof(ts_notificationSentResponse)));
- /* IPAd will poll again. */
+ /* IPAd will poll for notifications. */
+ f_respond_empty_notifications();
+
+ /* IPAd will poll for eIM package. */
f_terminate_poll_cycle();
/* Wait some time until the the last HTTP response is actually delivered */
@@ -1045,7 +1063,10 @@
f_esipa_transceive(valueof(ts_cancelSessionResponseEsipa),
tr_cancelSessionRequestEsipa(cancelSessionResponse := tr_SGP32_cancelSessionResponse));
- /* IPAd will poll again. */
+ /* IPAd will poll for notifications. */
+ f_respond_empty_notifications();
+
+ /* IPAd will poll for eIM package. */
f_terminate_poll_cycle();
/* Wait some time until the the last HTTP response is actually delivered */
@@ -1100,7 +1121,10 @@
f_esipa_transceive(valueof(ts_cancelSessionResponseEsipa),
tr_cancelSessionRequestEsipa(cancelSessionResponse := tr_SGP32_cancelSessionResponse));
- /* IPAd will poll again. */
+ /* IPAd will poll for notifications. */
+ f_respond_empty_notifications();
+
+ /* IPAd will poll for eIM package. */
f_terminate_poll_cycle();
/* Wait some time until the the last HTTP response is actually delivered */
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43619?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: I4e278f74ce3bb9bbd666f13c2a72ed90eba34af7
Gerrit-Change-Number: 43619
Gerrit-PatchSet: 1
Gerrit-Owner: jolly <andreas(a)eversberg.eu>
Attention is currently required from: dexter, jolly.
dexter has posted comments on this change by dexter. ( https://gerrit.osmocom.org/c/onomondo-eim/+/43176?usp=email )
Change subject: SGP32Definitions: invert asn1ct tag workaround
......................................................................
Set Ready For Review
--
To view, visit https://gerrit.osmocom.org/c/onomondo-eim/+/43176?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: onomondo-eim
Gerrit-Branch: master
Gerrit-Change-Id: I43625be897f7a1cdbf0fa6b71ee651df993f8584
Gerrit-Change-Number: 43176
Gerrit-PatchSet: 14
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-Comment-Date: Thu, 10 Sep 2026 15:58:13 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
Attention is currently required from: jolly.
dexter has posted comments on this change by dexter. ( https://gerrit.osmocom.org/c/onomondo-eim/+/43177?usp=email )
Change subject: SGP32Definitions: add JSON specific variant of SGP32-CancelSessionResponse
......................................................................
Patch Set 14:
(1 comment)
Patchset:
PS14:
This is the updated version from the "Questionable Workaround" the problem was only fixable by introducing a dedicated JSON type. I personally think that this is a bug in the specification, because this is the only outlier.
--
To view, visit https://gerrit.osmocom.org/c/onomondo-eim/+/43177?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: onomondo-eim
Gerrit-Branch: master
Gerrit-Change-Id: I566571778d2433bd87a46276e81d9d526ae97325
Gerrit-Change-Number: 43177
Gerrit-PatchSet: 14
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: jolly <andreas(a)eversberg.eu>
Gerrit-Comment-Date: Thu, 10 Sep 2026 15:58:06 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Attention is currently required from: dexter, jolly.
dexter has posted comments on this change by dexter. ( https://gerrit.osmocom.org/c/onomondo-eim/+/43177?usp=email )
Change subject: SGP32Definitions: add JSON specific variant of SGP32-CancelSessionResponse
......................................................................
Set Ready For Review
--
To view, visit https://gerrit.osmocom.org/c/onomondo-eim/+/43177?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: onomondo-eim
Gerrit-Branch: master
Gerrit-Change-Id: I566571778d2433bd87a46276e81d9d526ae97325
Gerrit-Change-Number: 43177
Gerrit-PatchSet: 14
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: dexter <pmaier(a)sysmocom.de>
Gerrit-Comment-Date: Thu, 10 Sep 2026 15:54:35 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/onomondo-eim/+/43618?usp=email )
Change subject: SGP32Definitions: revert workaround for SGP32-RetrieveNotificationsListResponse
......................................................................
SGP32Definitions: revert workaround for SGP32-RetrieveNotificationsListResponse
The SGP32-RetrieveNotificationsListResponse only plays a role on ES10b
level (see also SGP.32, section 5.9.11). This means that this ASN.1 type
is irrelevant on eIM level. Let's revert the workaround we did since it
does not have any effect.
Change-Id: Ia084c9dcbec4f26e4f0ddb7e455702bfcd03dd18
Related SYS#8100
Change-Id: I5a1d442acb972cce8fa5d09e84b5121d0a5124a6
---
M asn1/SGP32Definitions.asn1
1 file changed, 1 insertion(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/onomondo-eim refs/changes/18/43618/1
diff --git a/asn1/SGP32Definitions.asn1 b/asn1/SGP32Definitions.asn1
index cc052b4..b82e352 100644
--- a/asn1/SGP32Definitions.asn1
+++ b/asn1/SGP32Definitions.asn1
@@ -490,9 +490,8 @@
euiccPackageResults [2] NULL
} OPTIONAL
}
--- workaround for erlang asn1ct: remove already specified context-specific tag [43]
-- workaround: add prefix ("SGP32-") to avoid clash with SGP.22
-SGP32-RetrieveNotificationsListResponse ::= CHOICE { -- Tag 'BF2B'
+SGP32-RetrieveNotificationsListResponse ::= [43] CHOICE { -- Tag 'BF2B'
notificationList PendingNotificationList, -- Tag 'A0'
notificationsListResultError INTEGER { undefinedError(127)}, -- Tag '81'
euiccPackageResultList EuiccPackageResultList -- Tag 'A2'
--
To view, visit https://gerrit.osmocom.org/c/onomondo-eim/+/43618?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: onomondo-eim
Gerrit-Branch: master
Gerrit-Change-Id: I5a1d442acb972cce8fa5d09e84b5121d0a5124a6
Gerrit-Change-Number: 43618
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
dexter has abandoned this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43184?usp=email )
Change subject: WIP: SGP32Definitions: apply (questionable) workaround
......................................................................
Abandoned
the situation is somewhat clearer now, we can go without this workaround
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/43184?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: abandon
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I4e9834a8a5ae29397542c696c0bc81692d4d564b
Gerrit-Change-Number: 43184
Gerrit-PatchSet: 12
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ggsn/+/43583?usp=email )
Change subject: lib/getopt1: declare _getopt_internal()
......................................................................
lib/getopt1: declare _getopt_internal()
lib/getopt1.c and lib/getopt.c include "getopt.h", but the bundled
header is named lib/gnugetopt.h and no lib/getopt.h exists. The include
therefore falls through to the system getopt.h. That header declares
getopt(), getopt_long() and getopt_long_only(), but not
_getopt_internal(), which is private to the GNU implementation, so the
two calls in getopt1.c have no declaration in scope.
clang 16 and later reject an implicit declaration instead of warning:
lib/getopt1.c:72:9: error: call to undeclared function
'_getopt_internal'; ISO C99 and later do not support implicit
function declarations
GNU/Linux never gets there. On glibc, getopt1.c defines ELIDE_CODE and
compiles to nothing, because the C library already provides the whole
interface. The bundled copy is only really built where the C library is
not glibc, which is where the declaration is missing.
Declare _getopt_internal() in getopt1.c, matching the K&R definition in
getopt.c. Fixing the include to name gnugetopt.h would be the other
way, but that header is installed under a different name on purpose and
the declaration is the smaller change.
Reproduced with clang 17 (Xcode 16) on macOS ARM64; the file compiles
clean with the declaration in place.
Change-Id: Ia8bfe94dfd1ea1f4b270f1661305d6247dfc361b
Signed-off-by: Andrei Gosman <andrei.gosman(a)gmail.com>
---
M lib/getopt1.c
1 file changed, 5 insertions(+), 0 deletions(-)
Approvals:
Jenkins Builder: Verified
pespin: Looks good to me, approved
laforge: Looks good to me, but someone else must approve
diff --git a/lib/getopt1.c b/lib/getopt1.c
index c4e4190..9215a27 100644
--- a/lib/getopt1.c
+++ b/lib/getopt1.c
@@ -52,6 +52,11 @@
#ifndef ELIDE_CODE
+/* getopt.c defines this in K&R style; clang 16 and later refuse the
+ * implicit declaration that the non-glibc branch of gnugetopt.h leaves. */
+extern int _getopt_internal(int argc, char *const *argv, const char *shortopts,
+ const struct option *longopts, int *longind, int long_only);
+
/* This needs to come after some library #include
to get __GNU_LIBRARY__ defined. */
#ifdef __GNU_LIBRARY__
--
To view, visit https://gerrit.osmocom.org/c/osmo-ggsn/+/43583?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: osmo-ggsn
Gerrit-Branch: master
Gerrit-Change-Id: Ia8bfe94dfd1ea1f4b270f1661305d6247dfc361b
Gerrit-Change-Number: 43583
Gerrit-PatchSet: 2
Gerrit-Owner: Andrei G <andrei.gosman(a)gmail.com>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>