[pypy-commit] pypy default: xfail test_push_one_reg if we are running on a system using GNU assembler version < 2.23.

bivab noreply at buildbot.pypy.org
Mon Apr 1 15:55:22 CEST 2013


Author: David Schneider <david.schneider at picle.org>
Branch: 
Changeset: r62911:39ce9a81f240
Date: 2013-04-01 15:53 +0200
http://bitbucket.org/pypy/pypy/changeset/39ce9a81f240/

Log:	xfail test_push_one_reg if we are running on a system using GNU
	assembler version < 2.23.

	Version 2.22 generates an alternative encoding for pushing only one
	register than the one we are using

diff --git a/rpython/jit/backend/arm/test/support.py b/rpython/jit/backend/arm/test/support.py
--- a/rpython/jit/backend/arm/test/support.py
+++ b/rpython/jit/backend/arm/test/support.py
@@ -39,6 +39,11 @@
     i = commands.getoutput("%s -version </dev/null -o /dev/null 2>&1" % AS)
     check_skip(i)
 
+def get_as_version():
+    import commands
+    i = commands.getoutput("%s -v </dev/null -o /dev/null 2>&1" % AS)
+    return tuple([int(j) for j in i.split()[-1].split('.')])
+
 def check_skip(inp, search='arm', msg='only for arm'):
     skip = True
     try:
diff --git a/rpython/jit/backend/arm/test/test_instr_codebuilder.py b/rpython/jit/backend/arm/test/test_instr_codebuilder.py
--- a/rpython/jit/backend/arm/test/test_instr_codebuilder.py
+++ b/rpython/jit/backend/arm/test/test_instr_codebuilder.py
@@ -2,7 +2,10 @@
 from rpython.jit.backend.arm import codebuilder
 from rpython.jit.backend.arm import conditions
 from rpython.jit.backend.arm import instructions
-from rpython.jit.backend.arm.test.support import (requires_arm_as, define_test, gen_test_function)
+from rpython.jit.backend.arm.test.support import requires_arm_as
+from rpython.jit.backend.arm.test.support import get_as_version
+from rpython.jit.backend.arm.test.support import define_test
+from rpython.jit.backend.arm.test.support import gen_test_function
 from gen import assemble
 import py
 
@@ -80,6 +83,9 @@
         self.assert_equal('ORR r0, r7, r12, lsl #8')
 
     def test_push_one_reg(self):
+        if get_as_version() < (2, 23):
+          py.test.xfail("GNU as before version 2.23 generates encoding A1 for "
+                        "pushing only one register")
         self.cb.PUSH([r.r1.value])
         self.assert_equal('PUSH {r1}')
 


More information about the pypy-commit mailing list