[diffoscope] 01/03: Replace file path by a fixed placeholder in readelf and objdump output
Jérémy Bobbio
lunar at moszumanska.debian.org
Tue Dec 22 18:22:38 CET 2015
This is an automated email from the git hooks/post-receive script.
lunar pushed a commit to branch master
in repository diffoscope.
commit f527e4f2c66f078ca169f4847034150ec1b02d11
Author: Jérémy Bobbio <lunar at debian.org>
Date: Tue Dec 22 13:39:34 2015 +0000
Replace file path by a fixed placeholder in readelf and objdump output
We used to replace the file path by its basename. But this won't work when
diffoscope is working on two ELF files with different basename (which can
easily happen when the command line specify two different ELF files).
---
diffoscope/comparators/elf.py | 6 ++----
tests/data/elf_obj_expected_diff | 3 +--
2 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/diffoscope/comparators/elf.py b/diffoscope/comparators/elf.py
index ce2ea3c..e199270 100644
--- a/diffoscope/comparators/elf.py
+++ b/diffoscope/comparators/elf.py
@@ -30,7 +30,6 @@ class Readelf(Command):
super().__init__(*args, **kwargs)
# we don't care about the name of the archive
self._archive_re = re.compile(r'^File: %s\(' % re.escape(self.path))
- self._basename = os.path.basename(self.path)
@tool_required('readelf')
def cmdline(self):
@@ -44,7 +43,7 @@ class Readelf(Command):
# we don't care about the name of the archive
line = self._archive_re.sub('File: lib.a(', line.decode('utf-8'))
# the full path can appear in the output, we need to remove it
- return line.replace(self.path, self._basename).encode('utf-8')
+ return line.replace(self.path, '<elf>').encode('utf-8')
except UnicodeDecodeError:
return line
@@ -61,7 +60,6 @@ class ObjdumpDisassemble(Command):
super().__init__(*args, **kwargs)
# we don't care about the name of the archive
self._archive_re = re.compile(r'^In archive %s:' % re.escape(self.path))
- self._basename = os.path.basename(self.path)
@tool_required('objdump')
def cmdline(self):
@@ -72,7 +70,7 @@ class ObjdumpDisassemble(Command):
# we don't care about the name of the archive
line = self._archive_re.sub('In archive:', line.decode('utf-8'))
# the full path can appear in the output, we need to remove it
- return line.replace(self.path, self._basename).encode('utf-8')
+ return line.replace(self.path, '<elf>').encode('utf-8')
except UnicodeDecodeError:
return line
diff --git a/tests/data/elf_obj_expected_diff b/tests/data/elf_obj_expected_diff
index 4d684f0..3aabe2b 100644
--- a/tests/data/elf_obj_expected_diff
+++ b/tests/data/elf_obj_expected_diff
@@ -1,7 +1,6 @@
@@ -1,22 +1,22 @@
--test1.o: file format elf64-x86-64
-+test2.o: file format elf64-x86-64
+ <elf>: file format elf64-x86-64
Contents of section .text:
- 0000 554889e5 b82a0000 005dc3 UH...*...].
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/diffoscope.git
More information about the diffoscope
mailing list