40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
from .abstract_tester import abstract_tester
|
|
import utils
|
|
import error_collector as errors
|
|
import datetime
|
|
import re
|
|
from typing import Type
|
|
from pathlib import Path
|
|
|
|
|
|
class dialdroid_tester(abstract_tester):
|
|
EXPECTED_ERROR_TYPES: list = [
|
|
errors.JavaError,
|
|
errors.NoPrefixJavaError,
|
|
errors.FlowdroidLog4jError,
|
|
]
|
|
TOOL_NAME = "dialdroid"
|
|
|
|
def __init__(self):
|
|
super().__init__()
|
|
|
|
@classmethod
|
|
def check_success(cls, path: Path, apk_filename: str):
|
|
l1 = False
|
|
l2 = False
|
|
with (path / "stdout").open(errors="replace") as file:
|
|
for line in file:
|
|
if (
|
|
l2
|
|
and line.strip()
|
|
== f"Done:{utils.removesuffix(apk_filename.lower(), '.apk')}"
|
|
):
|
|
return True
|
|
l2 = False
|
|
if l1 and "Analysis has run for" in line:
|
|
l2 = True
|
|
l1 = False
|
|
if "Maximum memory consumption:" in line:
|
|
l1 = True
|
|
|
|
return False
|