[pypy-svn] r36554 - in pypy/dist/pypy/translator/llvm: . test
ericvrp at codespeak.net
ericvrp at codespeak.net
Fri Jan 12 12:49:14 CET 2007
Author: ericvrp
Date: Fri Jan 12 12:49:04 2007
New Revision: 36554
Modified:
pypy/dist/pypy/translator/llvm/buildllvm.py
pypy/dist/pypy/translator/llvm/externs2ll.py
pypy/dist/pypy/translator/llvm/test/runtest.py
pypy/dist/pypy/translator/llvm/test/test_lltype.py
pypy/dist/pypy/translator/llvm/test/test_rtagged.py
Log:
make some translator/llvm aware that they require gcc3.
Modified: pypy/dist/pypy/translator/llvm/buildllvm.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/buildllvm.py (original)
+++ pypy/dist/pypy/translator/llvm/buildllvm.py Fri Jan 12 12:49:04 2007
@@ -15,14 +15,14 @@
return False
return True
-def llvm_version():
- v = os.popen('llvm-as -version 2>&1').read()
+def exe_version(exe):
+ v = os.popen(exe + ' -version 2>&1').read()
v = ''.join([c for c in v if c.isdigit()])
v = int(v) / 10.0
return v
-def llvm_gcc_version():
- v = os.popen('llvm-gcc --version 2>&1').read()
+def exe_version2(exe):
+ v = os.popen(exe + ' --version 2>&1').read()
i = v.index(')')
v = v[i+2:].split()[0].split('.')
major, minor = v[0], ''.join([c for c in v[1] if c.isdigit()])
Modified: pypy/dist/pypy/translator/llvm/externs2ll.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/externs2ll.py (original)
+++ pypy/dist/pypy/translator/llvm/externs2ll.py Fri Jan 12 12:49:04 2007
@@ -7,7 +7,7 @@
from pypy.rpython.rmodel import inputconst
from pypy.rpython.lltypesystem import lltype
from pypy.translator.llvm.codewriter import DEFAULT_CCONV
-from pypy.translator.llvm.buildllvm import llvm_gcc_version
+from pypy.translator.llvm.buildllvm import exe_version2
from pypy.tool.udir import udir
@@ -42,7 +42,7 @@
global _llvm_gcc_version
if not _llvm_gcc_version:
- _llvm_gcc_version = llvm_gcc_version()
+ _llvm_gcc_version = exe_version2('llvm-gcc')
if _llvm_gcc_version < 4.0:
emit_llvm = ''
else:
Modified: pypy/dist/pypy/translator/llvm/test/runtest.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/test/runtest.py (original)
+++ pypy/dist/pypy/translator/llvm/test/runtest.py Fri Jan 12 12:49:04 2007
@@ -1,7 +1,7 @@
import py
from pypy.tool import isolate
from pypy.translator.llvm.genllvm import genllvm_compile
-from pypy.translator.llvm.buildllvm import llvm_is_on_path, llvm_version
+from pypy.translator.llvm.buildllvm import llvm_is_on_path, exe_version, exe_version2
optimize_tests = False
MINIMUM_LLVM_VERSION = 1.7
MAXIMUM_LLVM_VERSION = 2.0
@@ -33,7 +33,7 @@
if not llvm_is_on_path():
py.test.skip("could not find one of llvm-as or llvm-gcc")
return False
- v = llvm_version()
+ v = exe_version('llvm-as')
if v < MINIMUM_LLVM_VERSION:
py.test.skip("llvm version not up-to-date (found "
"%.1f, should be >= %.1f)" % (v, MINIMUM_LLVM_VERSION))
@@ -44,6 +44,13 @@
return False
return True
+def gcc3_test():
+ v = exe_version2('gcc')
+ if int(v) != 3:
+ py.test.skip("test required gcc version 3 (found version %.1f)" % v)
+ return False
+ return True
+
def compile_test(function, annotation, isolate=True, **kwds):
" returns module and compiled function "
if llvm_test():
Modified: pypy/dist/pypy/translator/llvm/test/test_lltype.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/test/test_lltype.py (original)
+++ pypy/dist/pypy/translator/llvm/test/test_lltype.py Fri Jan 12 12:49:04 2007
@@ -240,6 +240,7 @@
assert f() == floats_fn()
def test_fixedsizearray():
+ gcc3_test()
S = Struct("s", ('v', Signed))
A7 = FixedSizeArray(Signed, 7)
A3 = FixedSizeArray(S, 3)
@@ -268,6 +269,7 @@
assert fn() == 607
def test_recursivearray():
+ gcc3_test()
A = ForwardReference()
A.become(FixedSizeArray(Struct("S", ('a', Ptr(A))), 5))
TREE = GcStruct("TREE", ("root", A), ("other", A))
@@ -298,6 +300,7 @@
fn()
def test_call_with_fixedsizearray():
+ gcc3_test()
A = FixedSizeArray(Struct('s1', ('x', Signed)), 5)
S = GcStruct('s', ('a', Ptr(A)))
a = malloc(A, immortal=True)
@@ -313,6 +316,7 @@
assert res == 123
def test_more_prebuilt_arrays():
+ gcc3_test()
A = FixedSizeArray(Struct('s1', ('x', Signed)), 5)
S = GcStruct('s', ('a1', Ptr(A)), ('a2', A))
s = malloc(S, zero=True)
@@ -332,6 +336,7 @@
assert res == 60
def test_fnptr_with_fixedsizearray():
+ gcc3_test()
A = ForwardReference()
F = FuncType([Ptr(A)], Signed)
A.become(FixedSizeArray(Struct('s1', ('f', Ptr(F)), ('n', Signed)), 5))
Modified: pypy/dist/pypy/translator/llvm/test/test_rtagged.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/test/test_rtagged.py (original)
+++ pypy/dist/pypy/translator/llvm/test/test_rtagged.py Fri Jan 12 12:49:04 2007
@@ -68,6 +68,7 @@
def test_tagged_boehm():
runtest.llvm_test()
+ runtest.gcc3_test()
t = Translation(entry_point, standalone=True, gc='boehm')
try:
exename = t.compile_llvm()
More information about the Pypy-commit
mailing list