tool/jitlogparser/test/test_parser.py::test_import_log_2
def test_import_log_2():
if sys.platform == 'win32' or not autodetect().startswith('x86'):
py.test.skip('x86 only test')
_, loops = import_log(str(py.path.local(__file__).join('..',
'logtest2.log')))
try:
for loop in loops:
> loop.force_asm()
tool/jitlogparser/test/test_parser.py:298:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tool/jitlogparser/parser.py:472: in <lambda>
dump_start=start_ofs))
tool/jitlogparser/parser.py:110: in postprocess
backend_tp, dump_start)
tool/jitlogparser/parser.py:151: in _asm_disassemble
return list(machine_code_dump(d, origin_addr, tp))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
data = 'H\x81\xec\x98\x00\x00\x00H\x89l$`H\x89\xfdH\x89\\$hL\x89d$pL\x89l$xL\x89\xb4$\x80\x00\x00\x00L\x89\xbc$\x88\x00\x00\x...A\xff\xe3I\xbbx\xc28\x15U\x7f\x00\x00ASI\xbb\xd0\x1c\xb3\x14U\x7f\x00\x00ASI\xbb\x00\x10\xb3\x14U\x7f\x00\x00A\xff\xe3'
originaddr = 140003396230368L, backend_name = 'x86_64', label_list = None
def machine_code_dump(data, originaddr, backend_name, label_list=None):
objdump_machine_option = {
'x86': 'i386',
'x86-without-sse2': 'i386',
'x86_32': 'i386',
'x86_64': 'i386:x86-64',
'x86-64': 'i386:x86-64',
'i386': 'i386',
'arm': 'arm',
'arm_32': 'arm',
'aarch64': 'aarch64',
'ppc' : 'powerpc:common64',
'ppc-64' : 'powerpc:common64',
'riscv64': 'riscv:rv64',
's390x': 's390:64-bit',
}
machine_endianness = {
# default value: 'little'
'ppc' : sys.byteorder, # i.e. same as the running machine...
'ppc-64' : sys.byteorder, # i.e. same as the running machine...
's390x' : sys.byteorder, # i.e. same as the running machine...
}
cmd = find_objdump()
objdump = ('%(command)s -b binary -m %(machine)s '
'--endian=%(endianness)s '
'--disassembler-options=intel-mnemonics '
'--adjust-vma=%(origin)d -D %(file)s')
#
f = open(tmpfile, 'wb')
f.write(data)
f.close()
p = subprocess.Popen(objdump % {
'command': cmd,
'file': tmpfile,
'origin': originaddr,
'machine': objdump_machine_option[backend_name],
'endianness': machine_endianness.get(backend_name, 'little'),
}, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = p.communicate()
assert not p.returncode, ('Encountered an error running objdump: %s' %
> stderr)
E AssertionError: Encountered an error running objdump: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/objdump: error: unknown argument '-b'
jit/backend/tool/viewcode.py:82: AssertionError
---------- Captured stdout call ----------
loading symbols from python...
Encountered an error running nm: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: python: No such file or directory
---------- Captured stderr call ----------
0%..loaded
builder: rpython-macos-x86-64 build #276
test: tool/jitlogparser/test/test_parser/py/test_import_log_2