From bdf9a04e371cb474768bcbf223b195a24a0ec224 Mon Sep 17 00:00:00 2001 From: Ilan Schnell Date: Sat, 22 Sep 2012 20:44:01 -0500 Subject: [PATCH] add opaque tests --- llvm/test_llvmpy.py | 36 ++++++++++++++++++++++++++++++++++-- test/opaque.py | 41 ----------------------------------------- 2 files changed, 34 insertions(+), 43 deletions(-) delete mode 100644 test/opaque.py diff --git a/llvm/test_llvmpy.py b/llvm/test_llvmpy.py index c5a3c69..a18ff0d 100644 --- a/llvm/test_llvmpy.py +++ b/llvm/test_llvmpy.py @@ -17,7 +17,7 @@ else: from cStringIO import StringIO -from llvm import __version__ +import llvm from llvm.core import (Module, Type, GlobalVariable, Function, Builder, Constant, MetaData, MetaDataString, inline_function) import llvm.core as lc @@ -638,6 +638,38 @@ tests.append(TestIssue10) # --------------------------------------------------------------------------- +class TestOpaque(unittest.TestCase): + + def test_opaque(self): + # Create an opaque type + ts = Type.opaque('mystruct') + self.assertTrue('type opaque' in str(ts)) + self.assertTrue(ts.is_opaque) + self.assertTrue(ts.is_identified) + self.assertFalse(ts.is_literal) + #print(ts) + + # Create a recursive type + ts.set_body([Type.int(), Type.pointer(ts)]) + + self.assertEqual(ts.elements[0], Type.int()) + self.assertEqual(ts.elements[1], Type.pointer(ts)) + self.assertEqual(ts.elements[1].pointee, ts) + self.assertFalse(ts.is_opaque) # is not longer a opaque type + #print(ts) + + with self.assertRaises(llvm.LLVMException): + # Cannot redefine + ts.set_body([]) + + def test_opaque_with_no_name(self): + with self.assertRaises(llvm.LLVMException): + Type.opaque('') + +tests.append(TestOpaque) + +# --------------------------------------------------------------------------- + class TestIntrinsic(unittest.TestCase): def test_bswap(self): # setup a function and a builder @@ -788,7 +820,7 @@ tests.append(TestVolatile) def run(verbosity=1): print('llvmpy is installed in: ' + os.path.dirname(__file__)) - print('llvmpy version: ' + __version__) + print('llvmpy version: ' + llvm.__version__) print(sys.version) suite = unittest.TestSuite() diff --git a/test/opaque.py b/test/opaque.py deleted file mode 100644 index f89334d..0000000 --- a/test/opaque.py +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env python - -from llvm.core import * -from llvm import LLVMException - -import logging, unittest - -class TestOpaque(unittest.TestCase): - - def test_opaque(self): - # Create an opaque type - ts = Type.opaque('mystruct') - self.assertTrue('type opaque' in str(ts)) - self.assertTrue(ts.is_opaque) - self.assertTrue(ts.is_identified) - self.assertFalse(ts.is_literal) - - logging.debug(ts) - - # Create a recursive type - ts.set_body([Type.int(), Type.pointer(ts)]) - - self.assertEqual(ts.elements[0], Type.int()) - self.assertEqual(ts.elements[1], Type.pointer(ts)) - self.assertEqual(ts.elements[1].pointee, ts) - self.assertFalse(ts.is_opaque) # is not longer a opaque type - - logging.debug(ts) - - with self.assertRaises(LLVMException): - # Cannot redefine - ts.set_body([]) - - def test_opaque_with_no_name(self): - with self.assertRaises(LLVMException): - Type.opaque('') - -if __name__ == '__main__': - unittest.main() - -