<p>dexter <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/pysim/+/24003">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">utils: fix dec_xplmn_w_act() and format_xplmn_w_act()<br><br>The function dec_xplmn_w_act(), which is also used by<br>format_xplmn_w_act() is using integer numbers as MCC/MNC representation.<br>This causes various problems since the information about leading zeros<br>gets lost.<br><br>Change-Id: I57f7dff80f48071ef9a3732ae1088882b127a6d4<br>---<br>M pySim/utils.py<br>M pysim-testdata/Fairwaves-SIM.ok<br>M pysim-testdata/Wavemobile-SIM.ok<br>M pysim-testdata/sysmoISIM-SJA2.ok<br>M pysim-testdata/sysmoUSIM-SJS1.ok<br>M tests/test_utils.py<br>6 files changed, 17 insertions(+), 17 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pySim/utils.py b/pySim/utils.py</span><br><span>index 9694bfa..2253482 100644</span><br><span>--- a/pySim/utils.py</span><br><span>+++ b/pySim/utils.py</span><br><span>@@ -234,13 +234,13 @@</span><br><span>  return sel</span><br><span> </span><br><span> def dec_xplmn_w_act(fivehexbytes:Hexstr) -> Dict[str,Any]:</span><br><span style="color: hsl(0, 100%, 40%);">- res = {'mcc': 0, 'mnc': 0, 'act': []}</span><br><span style="color: hsl(120, 100%, 40%);">+ res = {'mcc': "0", 'mnc': "0", 'act': []}</span><br><span>        plmn_chars = 6</span><br><span>       act_chars = 4</span><br><span>        plmn_str = fivehexbytes[:plmn_chars]                            # first three bytes (six ascii hex chars)</span><br><span>    act_str = fivehexbytes[plmn_chars:plmn_chars + act_chars]       # two bytes after first three bytes</span><br><span style="color: hsl(0, 100%, 40%);">-     res['mcc'] = dec_mcc_from_plmn(plmn_str)</span><br><span style="color: hsl(0, 100%, 40%);">-        res['mnc'] = dec_mnc_from_plmn(plmn_str)</span><br><span style="color: hsl(120, 100%, 40%);">+      res['mcc'] = dec_mcc_from_plmn_str(plmn_str)</span><br><span style="color: hsl(120, 100%, 40%);">+  res['mnc'] = dec_mnc_from_plmn_str(plmn_str)</span><br><span>         res['act'] = dec_act(act_str)</span><br><span>        return res</span><br><span> </span><br><span>@@ -248,10 +248,10 @@</span><br><span>       s = ""</span><br><span>     for rec_data in hexstr_to_Nbytearr(hexstr, 5):</span><br><span>               rec_info = dec_xplmn_w_act(rec_data)</span><br><span style="color: hsl(0, 100%, 40%);">-            if rec_info['mcc'] == 0xFFF and rec_info['mnc'] == 0xFFF:</span><br><span style="color: hsl(120, 100%, 40%);">+             if rec_info['mcc'] == "" and rec_info['mnc'] == "":</span><br><span>                      rec_str = "unused"</span><br><span>                 else:</span><br><span style="color: hsl(0, 100%, 40%);">-                   rec_str = "MCC: %03d MNC: %03d AcT: %s" % (rec_info['mcc'], rec_info['mnc'], ", ".join(rec_info['act']))</span><br><span style="color: hsl(120, 100%, 40%);">+                  rec_str = "MCC: %s MNC: %s AcT: %s" % (rec_info['mcc'], rec_info['mnc'], ", ".join(rec_info['act']))</span><br><span>             s += "\t%s # %s\n" % (rec_data, rec_str)</span><br><span>   return s</span><br><span> </span><br><span>diff --git a/pysim-testdata/Fairwaves-SIM.ok b/pysim-testdata/Fairwaves-SIM.ok</span><br><span>index f83f415..c577aa9 100644</span><br><span>--- a/pysim-testdata/Fairwaves-SIM.ok</span><br><span>+++ b/pysim-testdata/Fairwaves-SIM.ok</span><br><span>@@ -31,7 +31,7 @@</span><br><span>    ffffff0000 # unused</span><br><span> </span><br><span> HPLMNAcT:</span><br><span style="color: hsl(0, 100%, 40%);">-    00f110ffff # MCC: 001 MNC: 001 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span style="color: hsl(120, 100%, 40%);">+   00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span>   ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>diff --git a/pysim-testdata/Wavemobile-SIM.ok b/pysim-testdata/Wavemobile-SIM.ok</span><br><span>index 0682a70..c978891 100644</span><br><span>--- a/pysim-testdata/Wavemobile-SIM.ok</span><br><span>+++ b/pysim-testdata/Wavemobile-SIM.ok</span><br><span>@@ -11,7 +11,7 @@</span><br><span> Display OPLMN: False</span><br><span> PLMNsel: 00f110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff</span><br><span> PLMNwAcT:</span><br><span style="color: hsl(0, 100%, 40%);">-  00f110ffff # MCC: 001 MNC: 001 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span style="color: hsl(120, 100%, 40%);">+   00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span>   ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>@@ -29,7 +29,7 @@</span><br><span>      ffffff0000 # unused</span><br><span> </span><br><span> OPLMNwAcT:</span><br><span style="color: hsl(0, 100%, 40%);">-   00f110ffff # MCC: 001 MNC: 001 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span style="color: hsl(120, 100%, 40%);">+   00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span>   ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>diff --git a/pysim-testdata/sysmoISIM-SJA2.ok b/pysim-testdata/sysmoISIM-SJA2.ok</span><br><span>index d95387b..c463c3f 100644</span><br><span>--- a/pysim-testdata/sysmoISIM-SJA2.ok</span><br><span>+++ b/pysim-testdata/sysmoISIM-SJA2.ok</span><br><span>@@ -11,7 +11,7 @@</span><br><span> Display OPLMN: True</span><br><span> PLMNsel: 00f110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff</span><br><span> PLMNwAcT:</span><br><span style="color: hsl(0, 100%, 40%);">-   00f110ffff # MCC: 001 MNC: 001 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span style="color: hsl(120, 100%, 40%);">+   00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span>   ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>@@ -25,7 +25,7 @@</span><br><span>      ffffff0000 # unused</span><br><span> </span><br><span> OPLMNwAcT:</span><br><span style="color: hsl(0, 100%, 40%);">-   00f110ffff # MCC: 001 MNC: 001 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span style="color: hsl(120, 100%, 40%);">+   00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span>   ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>@@ -39,7 +39,7 @@</span><br><span>      ffffff0000 # unused</span><br><span> </span><br><span> HPLMNAcT:</span><br><span style="color: hsl(0, 100%, 40%);">-    00f110ffff # MCC: 001 MNC: 001 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span style="color: hsl(120, 100%, 40%);">+   00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span>   ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>diff --git a/pysim-testdata/sysmoUSIM-SJS1.ok b/pysim-testdata/sysmoUSIM-SJS1.ok</span><br><span>index bce3c9d..cd14114 100644</span><br><span>--- a/pysim-testdata/sysmoUSIM-SJS1.ok</span><br><span>+++ b/pysim-testdata/sysmoUSIM-SJS1.ok</span><br><span>@@ -11,7 +11,7 @@</span><br><span> Display OPLMN: True</span><br><span> PLMNsel: 00f110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff</span><br><span> PLMNwAcT:</span><br><span style="color: hsl(0, 100%, 40%);">-   00f110ffff # MCC: 001 MNC: 001 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span style="color: hsl(120, 100%, 40%);">+   00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span>   ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>@@ -25,7 +25,7 @@</span><br><span>      ffffff0000 # unused</span><br><span> </span><br><span> OPLMNwAcT:</span><br><span style="color: hsl(0, 100%, 40%);">-   00f110ffff # MCC: 001 MNC: 001 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span style="color: hsl(120, 100%, 40%);">+   00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span>   ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>@@ -39,7 +39,7 @@</span><br><span>      ffffff0000 # unused</span><br><span> </span><br><span> HPLMNAcT:</span><br><span style="color: hsl(0, 100%, 40%);">-    00f110ffff # MCC: 001 MNC: 001 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span style="color: hsl(120, 100%, 40%);">+   00f110ffff # MCC: 001 MNC: 01 AcT: UTRAN, E-UTRAN, GSM, GSM COMPACT, cdma2000 HRPD, cdma2000 1xRTT</span><br><span>   ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>  ffffff0000 # unused</span><br><span>diff --git a/tests/test_utils.py b/tests/test_utils.py</span><br><span>index b70b17b..558b5e7 100755</span><br><span>--- a/tests/test_utils.py</span><br><span>+++ b/tests/test_utils.py</span><br><span>@@ -96,13 +96,13 @@</span><br><span>           self.assertEqual(utils.dec_act("ffff"), ["UTRAN", "E-UTRAN", "GSM", "GSM COMPACT", "cdma2000 HRPD", "cdma2000 1xRTT"])</span><br><span> </span><br><span>     def testDecxPlmn_w_act(self):</span><br><span style="color: hsl(0, 100%, 40%);">-           expected = {'mcc': 295, 'mnc': 10, 'act': ["UTRAN"]}</span><br><span style="color: hsl(120, 100%, 40%);">+                expected = {'mcc': '295', 'mnc': '10', 'act': ["UTRAN"]}</span><br><span>           self.assertEqual(utils.dec_xplmn_w_act("92f5018000"), expected)</span><br><span> </span><br><span>        def testFormatxPlmn_w_act(self):</span><br><span>             input_str = "92f501800092f5508000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000ffffff0000"</span><br><span style="color: hsl(0, 100%, 40%);">-            expected  = "\t92f5018000 # MCC: 295 MNC: 010 AcT: UTRAN\n"</span><br><span style="color: hsl(0, 100%, 40%);">-           expected += "\t92f5508000 # MCC: 295 MNC: 005 AcT: UTRAN\n"</span><br><span style="color: hsl(120, 100%, 40%);">+         expected  = "\t92f5018000 # MCC: 295 MNC: 10 AcT: UTRAN\n"</span><br><span style="color: hsl(120, 100%, 40%);">+          expected += "\t92f5508000 # MCC: 295 MNC: 05 AcT: UTRAN\n"</span><br><span>                 expected += "\tffffff0000 # unused\n"</span><br><span>              expected += "\tffffff0000 # unused\n"</span><br><span>              expected += "\tffffff0000 # unused\n"</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/pysim/+/24003">change 24003</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/pysim/+/24003"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: pysim </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I57f7dff80f48071ef9a3732ae1088882b127a6d4 </div>
<div style="display:none"> Gerrit-Change-Number: 24003 </div>
<div style="display:none"> Gerrit-PatchSet: 5 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>