Skip to content
Snippets Groups Projects
Commit 07123d53 authored by Jean-Romain Garnier's avatar Jean-Romain Garnier
Browse files

Format macho.py

parent 2853bd7d
No related branches found
No related tags found
1 merge request!82Rework macho comparator
......@@ -142,7 +142,7 @@ class OtoolReadobj(Command):
# Strip filename
prefix = f"{self._path}:".encode("utf-8")
if line.startswith(prefix):
return line[len(prefix):].strip()
return line[len(prefix) :].strip()
return line
......@@ -182,7 +182,7 @@ class OtoolObjdump(Command):
# Strip filename
prefix = f"{self._path}:".encode("utf-8")
if line.startswith(prefix):
return line[len(prefix):].strip()
return line[len(prefix) :].strip()
return line
......@@ -225,6 +225,10 @@ class LlvmReadobj(Command):
self._path = path
super().__init__(path, *args, **kwargs)
@staticmethod
def fallback():
return None
@tool_required("llvm-readobj")
def cmdline(self):
return ["llvm-readobj"] + self.readobj_options() + [self._path]
......@@ -300,18 +304,32 @@ class LlvmObjdump(Command):
self._section = section
super().__init__(path, *args, **kwargs)
@staticmethod
def fallback():
return None
@tool_required("llvm-objdump")
def cmdline(self):
return ["llvm-objdump"] + self.objdump_options() + [self._path]
def objdump_options(self):
return ["-arch", self._arch, "-section", self._section, "-macho", "-demangle", "-no-leading-addr", "-no-show-raw-insn"]
return [
"-arch",
self._arch,
"-section",
self._section,
"-macho",
"-demangle",
"-no-leading-addr",
"-no-show-raw-insn",
"-line-numbers",
]
def filter(self, line):
# Strip filename
prefix = f"{self._path}:".encode("utf-8")
if line.startswith(prefix):
return line[len(prefix):].strip()
return line[len(prefix) :].strip()
return line
......@@ -334,10 +352,7 @@ class MachoBackend:
differences = []
diff = Difference.from_operation(
cmd,
path1,
path2,
operation_args=[arch, section_name],
cmd, path1, path2, operation_args=[arch, section_name]
)
differences.append(diff)
......@@ -395,11 +410,7 @@ class LlvmBackend(MachoBackend):
@staticmethod
def sections(path, arch):
cmd = [
"llvm-readobj",
"-sections",
path,
]
cmd = ["llvm-readobj", "-sections", path]
output = our_check_output(cmd, shell=False)
output = output.decode("utf-8")
......@@ -447,10 +458,7 @@ class LlvmBackend(MachoBackend):
return sections
MACHO_BACKENDS = [
OtoolBackend,
LlvmBackend,
]
MACHO_BACKENDS = [OtoolBackend, LlvmBackend]
######################
......@@ -567,11 +575,7 @@ class MachoArchitecture(MachoContainerFile):
logger.debug("MachoArchitecture.compare_details is missing tools?")
return [
Difference.from_operation(
x,
self.path,
other.path,
)
Difference.from_operation(x, self.path, other.path)
for x in commands
]
......@@ -644,4 +648,3 @@ class MachoFile(File):
difference.check_for_ordering_differences()
return [difference]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment