Ensure python2.6 support

This commit is contained in:
Siu Kwan Lam 2013-01-24 11:44:25 -06:00
commit 3b1ae9889d
7 changed files with 70 additions and 32 deletions

View file

@ -8,6 +8,7 @@ import shutil
import unittest
import subprocess
import tempfile
import contextlib
is_py3k = bool(sys.version_info[0] == 3)
BITS = tuple.__itemsize__ * 8
@ -29,9 +30,40 @@ import llvm.ee as le
tests = []
# ---------------------------------------------------------------------------
class TestAsm(unittest.TestCase):
if sys.version_info[:2] <= (2, 6):
# create custom TestCase
class TestCase(unittest.TestCase):
def assertIn(self, item, container):
self.assertTrue(item in container)
def assertNotIn(self, item, container):
self.assertFalse(item in container)
def assertLess(self, a, b):
self.assertTrue(a < b)
def assertIs(self, a, b):
self.assertTrue(a is b)
@contextlib.contextmanager
def assertRaises(self, exc):
try:
yield
except exc:
pass
else:
raise self.failureException("Did not raise %s" % exc)
else:
TestCase = unittest.TestCase
# ---------------------------------------------------------------------------
class TestAsm(TestCase):
def setUp(self):
self.tmpdir = tempfile.mkdtemp()
@ -82,7 +114,7 @@ tests.append(TestAsm)
# ---------------------------------------------------------------------------
class TestAttr(unittest.TestCase):
class TestAttr(TestCase):
def make_module(self):
test_module = """
define i32 @sum(i32, i32) {
@ -104,7 +136,7 @@ tests.append(TestAttr)
# ---------------------------------------------------------------------------
class TestAtomic(unittest.TestCase):
class TestAtomic(TestCase):
orderings = ['unordered', 'monotonic', 'acquire',
'release', 'acq_rel', 'seq_cst']
@ -187,7 +219,7 @@ tests.append(TestAtomic)
# ---------------------------------------------------------------------------
class TestConstExpr(unittest.TestCase):
class TestConstExpr(TestCase):
def test_constexpr_opcode(self):
mod = Module.new('test_constexpr_opcode')
@ -203,7 +235,7 @@ tests.append(TestConstExpr)
# ---------------------------------------------------------------------------
class TestOperands(unittest.TestCase):
class TestOperands(TestCase):
# implement a test function
test_module = """
define i32 @prod(i32, i32) {
@ -259,7 +291,7 @@ tests.append(TestOperands)
# ---------------------------------------------------------------------------
class TestPasses(unittest.TestCase):
class TestPasses(TestCase):
# Create a module.
asm = """
@ -385,7 +417,7 @@ tests.append(TestPasses)
# ---------------------------------------------------------------------------
class TestEngineBuilder(unittest.TestCase):
class TestEngineBuilder(TestCase):
def make_test_module(self):
module = Module.new("testmodule")
@ -452,7 +484,7 @@ tests.append(TestEngineBuilder)
# ---------------------------------------------------------------------------
class TestExecutionEngine(unittest.TestCase):
class TestExecutionEngine(TestCase):
def test_get_pointer_to_global(self):
module = lc.Module.new(str(self))
gvar = module.add_global_variable(Type.int(), 'hello')
@ -492,7 +524,7 @@ class TestExecutionEngine(unittest.TestCase):
tests.append(TestExecutionEngine)
# ---------------------------------------------------------------------------
class TestObjCache(unittest.TestCase):
class TestObjCache(TestCase):
def test_objcache(self):
# Testing module aliasing
@ -593,7 +625,7 @@ tests.append(TestObjCache)
# ---------------------------------------------------------------------------
class TestTargetMachines(unittest.TestCase):
class TestTargetMachines(TestCase):
'''Exercise target machines
Require PTX backend
@ -646,7 +678,7 @@ tests.append(TestTargetMachines)
# ---------------------------------------------------------------------------
class TestNative(unittest.TestCase):
class TestNative(TestCase):
def setUp(self):
self.tmpdir = tempfile.mkdtemp()
@ -708,7 +740,7 @@ if sys.platform != 'win32':
# ---------------------------------------------------------------------------
class TestNativeAsm(unittest.TestCase):
class TestNativeAsm(TestCase):
def test_asm(self):
m = Module.new('module1')
@ -731,7 +763,7 @@ tests.append(TestNativeAsm)
# ---------------------------------------------------------------------------
class TestUses(unittest.TestCase):
class TestUses(TestCase):
def test_uses(self):
m = Module.new('a')
@ -768,7 +800,7 @@ tests.append(TestUses)
# ---------------------------------------------------------------------------
class TestMetaData(unittest.TestCase):
class TestMetaData(TestCase):
# test module metadata
def test_metadata(self):
m = Module.new('a')
@ -788,7 +820,7 @@ tests.append(TestMetaData)
# ---------------------------------------------------------------------------
class TestInlining(unittest.TestCase):
class TestInlining(TestCase):
def test_inline_call(self):
mod = Module.new(__name__)
callee = mod.add_function(Type.function(Type.int(), [Type.int()]),
@ -817,7 +849,7 @@ tests.append(TestInlining)
# ---------------------------------------------------------------------------
class TestIssue10(unittest.TestCase):
class TestIssue10(TestCase):
def test_issue10(self):
m = Module.new('a')
ti = Type.int()
@ -838,7 +870,7 @@ tests.append(TestIssue10)
# ---------------------------------------------------------------------------
class TestOpaque(unittest.TestCase):
class TestOpaque(TestCase):
def test_opaque(self):
# Create an opaque type
@ -869,7 +901,7 @@ class TestOpaque(unittest.TestCase):
tests.append(TestOpaque)
# ---------------------------------------------------------------------------
class TestCPUSupport(unittest.TestCase):
class TestCPUSupport(TestCase):
def _build_test_module(self):
mod = Module.new('test')
@ -945,7 +977,7 @@ class TestCPUSupport(unittest.TestCase):
tests.append(TestCPUSupport)
# ---------------------------------------------------------------------------
class TestIntrinsicBasic(unittest.TestCase):
class TestIntrinsicBasic(TestCase):
def _build_module(self, float):
mod = Module.new('test')
@ -1032,7 +1064,7 @@ tests.append(TestIntrinsicBasic)
# ---------------------------------------------------------------------------
class TestIntrinsic(unittest.TestCase):
class TestIntrinsic(TestCase):
def test_bswap(self):
# setup a function and a builder
mod = Module.new('test')
@ -1130,7 +1162,7 @@ tests.append(TestIntrinsic)
# ---------------------------------------------------------------------------
class TestVolatile(unittest.TestCase):
class TestVolatile(TestCase):
def test_volatile(self):
mod = Module.new('mod')
@ -1184,7 +1216,7 @@ tests.append(TestVolatile)
# ---------------------------------------------------------------------------
class TestNamedMetaData(unittest.TestCase):
class TestNamedMetaData(TestCase):
def test_named_md(self):
m = Module.new('test_named_md')
nmd = m.get_or_insert_named_metadata('something')

View file

@ -3,12 +3,13 @@
# Import the llvm-py modules.
from llvm import *
from llvm.core import *
from llvm.test_llvmpy import TestCase
import logging
import unittest
class TestInlineAsm(unittest.TestCase):
class TestInlineAsm(TestCase):
def test_inline_asm(self):
mod = Module.new(__name__)
fnty = Type.function(Type.int(), [Type.int()])

View file

@ -2,13 +2,14 @@ from llvm.core import *
from llvm.passes import *
from llvm.ee import *
import llvm
from llvm.test_llvmpy import TestCase
from os.path import dirname, join as join_path
import unittest
import re
class TestLoopVectorizer(unittest.TestCase):
class TestLoopVectorizer(TestCase):
def test_loop_vectorizer(self):
if llvm.version <= (3, 1):
return # SKIP

View file

@ -1,10 +1,10 @@
from __future__ import print_function
import unittest
from llvm.test_llvmpy import TestCase
from llvm.core import *
class TestMetaData(unittest.TestCase):
class TestMetaData(TestCase):
def test_metadata_get(self):
module = Module.new('test_metadata')
md = MetaData.get(module, [Constant.int(Type.int(), 1234)])

View file

@ -1,8 +1,9 @@
from llvm.core import *
from llvm.tbaa import *
from llvm.test_llvmpy import TestCase
import unittest
class TestTBAABuilder(unittest.TestCase):
class TestTBAABuilder(TestCase):
def test_tbaa_builder(self):
mod = Module.new('test_tbaa_builder')
fty = Type.function(Type.void(), [Type.pointer(Type.float())])

View file

@ -7,9 +7,9 @@ import unittest, sys, logging
from llvm import *
from llvm.core import *
from llvm.test_llvmpy import TestCase
class TestModule(unittest.TestCase):
class TestModule(TestCase):
def setUp(self):
pass
@ -100,8 +100,10 @@ def main():
gc.set_debug(gc.DEBUG_LEAK)
# run tests
unittest.main(exit=False) # set exit to False so that it will return.
if sys.version_info[:2] > (2, 6):
unittest.main(exit=False) # set exit to False so that it will return.
else:
unittest.main()
# done
for it in gc.garbage:
logging.debug('garbage = %s', it)

View file

@ -4,8 +4,9 @@ import unittest
import llvm.ee
from llvm.core import *
from llvm import _dwarf, debuginfo
from llvm.test_llvmpy import TestCase
class TestDebugInfo(unittest.TestCase):
class TestDebugInfo(TestCase):
def test_dwarf_constants(self):
dwarf_constants = vars(_dwarf)