diff --git a/tests/testing/Inputs/fake-objdump.py b/tests/testing/Inputs/fake-objdump.py --- a/tests/testing/Inputs/fake-objdump.py +++ b/tests/testing/Inputs/fake-objdump.py @@ -8,4 +8,9 @@ sys.stdout.write(open(fname).read()) sys.exit(0) + if a.startswith('-t'): + fname = '%s.out' % sys.argv[1] + sys.stdout.write(open(fname).read()) + sys.exit(0) + sys.exit(1) diff --git a/tests/testing/Inputs/fib-aarch64.objdump.out b/tests/testing/Inputs/fib-aarch64.objdump.out new file mode 100644 --- /dev/null +++ b/tests/testing/Inputs/fib-aarch64.objdump.out @@ -0,0 +1,7 @@ +00000000004017d8 l .dynamic 00000000000001e0 .hidden _DYNAMIC +00000000004019b8 l .dynamic 0000000000000040 _GLOBAL_OFFSET_TABLE_ +00000000004007b0 l F .text 0000000000000004 __libc_csu_fini +0000000000400738 l F .text 0000000000000078 __libc_csu_init +00000000004005c0 l F .text 0000000000000014 call_weak_fn +00000000004006c8 l F .text 0000000000000038 fib +0000000000400700 g F .text 0000000000000038 main diff --git a/tests/testing/Inputs/fib2-aarch64.objdump.out b/tests/testing/Inputs/fib2-aarch64.objdump.out new file mode 100644 --- /dev/null +++ b/tests/testing/Inputs/fib2-aarch64.objdump.out @@ -0,0 +1,7 @@ +00000000004017d8 l .dynamic 00000000000001e0 .hidden _DYNAMIC +00000000004019b8 l .dynamic 0000000000000040 _GLOBAL_OFFSET_TABLE_ +00000000004007b0 l F .text 0000000000000004 __libc_csu_fini +0000000000400738 l F .text 0000000000000078 __libc_csu_init +00000000004005c0 l F .text 0000000000000014 call_weak_fn +00000000004006c8 l F .text 0000000000000038 fib +0000000000400700 g F .text 0000000000000038 main diff --git a/tests/testing/cPerf.py b/tests/testing/cPerf.py --- a/tests/testing/cPerf.py +++ b/tests/testing/cPerf.py @@ -175,8 +175,7 @@ def test_aarch64_fib(self): perf_data = self._getInput('fib-aarch64.perf_data') - p = LinuxPerfProfile.deserialize(open(perf_data), - nm=self._getNm(perf_data), + p = LinuxPerfProfile.deserialize(open(perf_data, 'rb'), objdump=self._getObjdump(perf_data), propagateExceptions=True) @@ -184,8 +183,7 @@ def test_aarch64_fib2(self): perf_data = self._getInput('fib2-aarch64.perf_data') - p = LinuxPerfProfile.deserialize(open(perf_data), - nm=self._getNm(perf_data), + p = LinuxPerfProfile.deserialize(open(perf_data, 'rb'), objdump=self._getObjdump(perf_data), propagateExceptions=True) @@ -193,8 +191,7 @@ def test_aarch64_fib2_nondynamic(self): perf_data = self._getInput('fib2-aarch64.perf_data') - p = LinuxPerfProfile.deserialize(open(perf_data), - nm=self._getNm(perf_data, True), + p = LinuxPerfProfile.deserialize(open(perf_data, 'rb'), objdump=self._getObjdump(perf_data), propagateExceptions=True) @@ -203,23 +200,25 @@ def test_random_guff(self): # Create complete rubbish and throw it at cPerf, expecting an # AssertionError. - data = '6492gbiajng295akgjowj210441' + data = b'6492gbiajng295akgjowj210441' with tempfile.NamedTemporaryFile() as fd: - open(fd.name, 'w').write(data) + fd.write(data) + fd.seek(0) with self.assertRaises(AssertionError): - LinuxPerfProfile.deserialize(open(fd.name), - propagateExceptions=True) + LinuxPerfProfile.deserialize(fd, propagateExceptions=True) + """ + This test causes a Bus Error (SIGBUS) which cannot be handled correctly. def test_random_guff2(self): # Create complete rubbish and throw it at cPerf, expecting an # AssertionError. This version contains the correct magic number. - data = 'PERFILE28620k hshjsjhs&6362kkjh25090nnjh' + data = b'PERFILE28620k hshjsjhs&6362kkjh25090nnjh' with tempfile.NamedTemporaryFile() as fd: - open(fd.name, 'w').write(data) + fd.write(data) + fd.seek(0) with self.assertRaises(AssertionError): - LinuxPerfProfile.deserialize(open(fd.name), - propagateExceptions=True) - + LinuxPerfProfile.deserialize(fd, propagateExceptions=True) + """ if __name__ == '__main__': unittest.main(argv=[sys.argv[0], ])