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 ic3_tester(abstract_tester): EXPECTED_ERROR_TYPES: list = [ errors.JavaError, errors.NoPrefixJavaError, ] TOOL_NAME = "ic3" def __init__(self): super().__init__() @classmethod def check_success(cls, path: Path, apk_filename: str): """Check if the analysis finished without crashing.""" if (path / "dare_out").exists(): # if the tool use dare, check that dare succed if not ( path / "dare_out" / "retargeted" / utils.removesuffix(apk_filename, ".apk") / "classes.txt" ).exists(): return False return len(list((path / "ic3_out").iterdir())) >= 1