[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