mirror of
https://github.com/mvt-project/mvt.git
synced 2026-02-13 17:12:47 +00:00
46 lines
1.6 KiB
Python
46 lines
1.6 KiB
Python
# Mobile Verification Toolkit (MVT)
|
|
# Copyright (c) 2021-2023 The MVT Authors.
|
|
# Use of this software is governed by the MVT License 1.1 that can be found at
|
|
# https://license.mvt.re/1.1/
|
|
from mvt.android.artifacts.dumpstate_artifact import DumpStateArtifact
|
|
|
|
from ..utils import get_artifact
|
|
|
|
|
|
class TestAndroidArtifactDumpState:
|
|
def _parse_dump_state(self):
|
|
"""
|
|
Load the test artifact
|
|
"""
|
|
file = get_artifact("android_data/bugreport/dumpstate.txt")
|
|
with open(file, "rb") as f:
|
|
data = f.read()
|
|
dumpstate = DumpStateArtifact()
|
|
dumpstate.parse_dumpstate(data)
|
|
return dumpstate
|
|
|
|
def test_extract_dumpstate_sections(self):
|
|
"""
|
|
Test parsing of dumpstate sections
|
|
"""
|
|
dumpstate = self._parse_dump_state()
|
|
assert len(dumpstate.dumpstate_sections) == 4
|
|
|
|
assert len(dumpstate.dumpstate_header) == 4
|
|
assert dumpstate.dumpstate_header.get(b"Bugreport format version") == b"2.0"
|
|
|
|
for section in dumpstate.dumpstate_sections:
|
|
if section["section_name"] == b"SYSTEM LOG":
|
|
assert len(section["lines"]) == 5
|
|
assert section["lines"][0].startswith(b"--------- beginning of system")
|
|
|
|
elif section["section_name"] == b"MODEM CRASH HISTORY":
|
|
# Test parsing where section only has an error message
|
|
assert len(section["lines"]) == 1
|
|
assert (
|
|
section["lines"][0]
|
|
== b"*** /data/tombstones//modem/mcrash_history: No such file or directory"
|
|
)
|
|
|
|
assert len(dumpstate.unparsed_lines) == 11
|