[pypy-svn] r77745 - pypy/branch/arm-backend/pypy/jit/backend/arm/test
david at codespeak.net
david at codespeak.net
Sat Oct 9 16:45:20 CEST 2010
Author: david
Date: Sat Oct 9 16:45:19 2010
New Revision: 77745
Modified:
pypy/branch/arm-backend/pypy/jit/backend/arm/test/gen.py
pypy/branch/arm-backend/pypy/jit/backend/arm/test/support.py
pypy/branch/arm-backend/pypy/jit/backend/arm/test/test_instr_codebuilder.py
Log:
refactor test support code, add a skipping macro for as version
Modified: pypy/branch/arm-backend/pypy/jit/backend/arm/test/gen.py
==============================================================================
--- pypy/branch/arm-backend/pypy/jit/backend/arm/test/gen.py (original)
+++ pypy/branch/arm-backend/pypy/jit/backend/arm/test/gen.py Sat Oct 9 16:45:19 2010
@@ -1,11 +1,8 @@
import os
import tempfile
+from pypy.jit.backend.arm.test.support import AS
class ASMInstruction(object):
- if os.uname()[0] == 'Darwin':
- asm = '~/Code/arm-jit/android/android-ndk-r4b//build/prebuilt/darwin-x86/arm-eabi-4.4.0/arm-eabi/bin/as'
- else:
- asm = 'as'
asm_opts = '-mcpu=cortex-a8 -march=armv7'
body = """.section .text
.arm
@@ -41,7 +38,7 @@
res = self.body % (self.instr)
self.file.write(res)
self.file.flush()
- os.system("%s %s %s -o %s/a.out" % (self.asm, self.asm_opts, self.name, self.tmpdir))
+ os.system("%s %s %s -o %s/a.out" % (AS, self.asm_opts, self.name, self.tmpdir))
def __del__(self):
self.file.close()
Modified: pypy/branch/arm-backend/pypy/jit/backend/arm/test/support.py
==============================================================================
--- pypy/branch/arm-backend/pypy/jit/backend/arm/test/support.py (original)
+++ pypy/branch/arm-backend/pypy/jit/backend/arm/test/support.py Sat Oct 9 16:45:19 2010
@@ -1,21 +1,33 @@
+import os
+
from pypy.rpython.lltypesystem import lltype, rffi
+if os.uname()[1] == 'llaima.local':
+ AS = '~/Code/arm-jit/android/android-ndk-r4b//build/prebuilt/darwin-x86/arm-eabi-4.4.0/arm-eabi/bin/as'
+else:
+ AS = 'as'
+
def run_asm(asm):
BOOTSTRAP_TP = lltype.FuncType([], lltype.Signed)
- addr = asm.mc.baseaddr()#executable_token._arm_bootstrap_code
+ addr = asm.mc.baseaddr()
assert addr % 8 == 0
func = rffi.cast(lltype.Ptr(BOOTSTRAP_TP), addr)
return func()
def skip_unless_arm():
- import os
import py
+ check_skip(os.uname()[4])
+def requires_arm_as():
+ import commands
+ i = commands.getoutput("%s -version </dev/null -o /dev/null 2>&1" % AS)
+ check_skip(i)
+
+def check_skip(inp, search='arm', msg='only for arm'):
skip = True
try:
- if os.uname()[4].index('arm') >= 0:
+ if inp.index(search) >= 0:
skip = False
finally:
if skip:
- py.test.skip('only for arm')
-
+ py.test.skip(msg)
Modified: pypy/branch/arm-backend/pypy/jit/backend/arm/test/test_instr_codebuilder.py
==============================================================================
--- pypy/branch/arm-backend/pypy/jit/backend/arm/test/test_instr_codebuilder.py (original)
+++ pypy/branch/arm-backend/pypy/jit/backend/arm/test/test_instr_codebuilder.py Sat Oct 9 16:45:19 2010
@@ -1,7 +1,11 @@
from pypy.jit.backend.arm import registers as r
from pypy.jit.backend.arm import codebuilder
+from pypy.jit.backend.arm.test.support import requires_arm_as
from gen import assemble
import py
+
+requires_arm_as()
+
class CodeBuilder(codebuilder.ARMv7Builder):
def __init__(self):
self.buffer = []
More information about the Pypy-commit
mailing list