1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
#!/usr/bin/env python
# watch out for uncollected objects
import gc
import unittest, sys
from llvm import *
from llvm.core import *
class TestModule(unittest.TestCase):
def setUp(self):
pass
def testdata_layout(self):
"""Data layout property."""
m = Module.new("test2.1")
self.assertEqual(m.data_layout, '')
m.data_layout = 'some_value'
self.assertEqual(m.data_layout, 'some_value')
reqd = '; ModuleID = \'test2.1\'\ntarget datalayout = "some_value"\n'
self.assertEqual(str(m), reqd)
def testtarget(self):
"""Target property."""
m = Module.new("test3.1")
self.assertEqual(m.target, '')
m.target = 'some_value'
self.assertEqual(m.target, 'some_value')
reqd = '; ModuleID = \'test3.1\'\ntarget triple = "some_value"\n'
self.assertEqual(str(m), reqd)
def testtype_name(self):
"""Type names."""
m = Module.new("test4.1")
r = m.add_type_name("typename41", Type.int())
self.assertEqual(r, 0)
r = m.add_type_name("typename41", Type.int())
self.assertEqual(r, 1)
reqd = "; ModuleID = 'test4.1'\n\n%typename41 = type i32\n"
self.assertEqual(str(m), reqd)
r = m.delete_type_name("typename41")
reqd = "; ModuleID = 'test4.1'\n"
self.assertEqual(str(m), reqd)
r = m.delete_type_name("no such name") # nothing should happen
reqd = "; ModuleID = 'test4.1'\n"
self.assertEqual(str(m), reqd)
def testglobal_variable(self):
"""Global variables."""
m = Module.new("test5.1")
t = Type.int()
gv = m.add_global_variable(t, "gv")
self.assertNotEqual(gv, None)
self.assertEqual(gv.name, "gv")
self.assertEqual(gv.type, Type.pointer(t))
def main():
gc.set_debug(gc.DEBUG_LEAK)
# run tests
unittest.main()
# done
if gc.garbage:
print "garbage = ", gc.garbage
main()
|