mirror of
https://github.com/mvt-project/mvt.git
synced 2026-10-12 02:37:12 +02:00
Skip a malformed battery daily Update line instead of aborting
This commit is contained in:
1 parent
7700749cfa
commit
d2e992e40e
2 files changed
+21
-2
No files matched your search
@@ -73,8 +73,12 @@ class DumpsysBatteryDailyArtifact(AndroidArtifact):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
line = line.strip().replace("Update ", "")
|
line = line.strip().replace("Update ", "")
|
||||||
package_name, vers = line.split(" ", 1)
|
# A truncated or vendor-specific line must not abort the parse and
|
||||||
vers_raw = vers.split("=", 1)[1]
|
# lose every record after it.
|
||||||
|
package_name, _, vers = line.partition(" ")
|
||||||
|
vers_raw = vers.partition("=")[2]
|
||||||
|
if not package_name or not vers_raw:
|
||||||
|
continue
|
||||||
try:
|
try:
|
||||||
version_code: int | str = int(vers_raw)
|
version_code: int | str = int(vers_raw)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
|||||||
@@ -144,3 +144,18 @@ class TestDumpsysBatteryDailyArtifact:
|
|||||||
"Detected uninstall of package com.example.app (vers 0)"
|
"Detected uninstall of package com.example.app (vers 0)"
|
||||||
)
|
)
|
||||||
assert uninstall_alert.event_time == "2026-01-10"
|
assert uninstall_alert.event_time == "2026-01-10"
|
||||||
|
|
||||||
|
def test_malformed_update_line_does_not_lose_later_records(self):
|
||||||
|
# A truncated "Update" line, or one from a vendor that omits "vers=",
|
||||||
|
# used to raise out of parse() and lose every record after it.
|
||||||
|
dba = DumpsysBatteryDailyArtifact()
|
||||||
|
dba.parse(
|
||||||
|
" Daily from 2021-05-10-08-00-00 to 2021-05-11-08-00-00:\n"
|
||||||
|
" Update com.first vers=1\n"
|
||||||
|
" Update com.truncated\n"
|
||||||
|
" Update com.no.equals vers 2\n"
|
||||||
|
" Update com.last vers=3\n"
|
||||||
|
)
|
||||||
|
|
||||||
|
assert [r["package_name"] for r in dba.results] == ["com.first", "com.last"]
|
||||||
|
assert [r["version_code"] for r in dba.results] == [1, 3]
|
||||||
Reference in new issue
Block a user