add uses tests
This commit is contained in:
parent
501c3d0f61
commit
552bae1864
1 changed files with 37 additions and 0 deletions
|
|
@ -339,6 +339,43 @@ tests.append(TestNative)
|
|||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
class TestUses(unittest.TestCase):
|
||||
|
||||
def test_uses(self):
|
||||
m = Module.new('a')
|
||||
t = Type.int()
|
||||
ft = Type.function(t, [t, t, t])
|
||||
f = m.add_function(ft, "func")
|
||||
b = f.append_basic_block('entry')
|
||||
bld = Builder.new(b)
|
||||
tmp1 = bld.add(Constant.int(t, 100), f.args[0], "tmp1")
|
||||
tmp2 = bld.add(tmp1, f.args[1], "tmp2")
|
||||
tmp3 = bld.add(tmp1, f.args[2], "tmp3")
|
||||
bld.ret(tmp3)
|
||||
|
||||
# Testing use count
|
||||
self.assertEqual(f.args[0].use_count, 1)
|
||||
self.assertEqual(f.args[1].use_count, 1)
|
||||
self.assertEqual(f.args[2].use_count, 1)
|
||||
self.assertEqual(tmp1.use_count, 2)
|
||||
self.assertEqual(tmp2.use_count, 0)
|
||||
self.assertEqual(tmp3.use_count, 1)
|
||||
|
||||
# Testing uses
|
||||
self.assert_(f.args[0].uses[0] is tmp1)
|
||||
self.assertEqual(len(f.args[0].uses), 1)
|
||||
self.assert_(f.args[1].uses[0] is tmp2)
|
||||
self.assertEqual(len(f.args[1].uses), 1)
|
||||
self.assert_(f.args[2].uses[0] is tmp3)
|
||||
self.assertEqual(len(f.args[2].uses), 1)
|
||||
self.assertEqual(len(tmp1.uses), 2)
|
||||
self.assertEqual(len(tmp2.uses), 0)
|
||||
self.assertEqual(len(tmp3.uses), 1)
|
||||
|
||||
tests.append(TestUses)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
def run(verbosity=1):
|
||||
print('llvmpy is installed in: ' + os.path.dirname(__file__))
|
||||
print('llvmpy version: ' + __version__)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue