1 from .base import TestBase
2 from ..core import OpCode
3 from ..core import MemoryBuffer
4 from ..core import PassRegistry
5 from ..core import Context
6 from ..core import Module
8 class TestCore(TestBase):
10 self.assertTrue(hasattr(OpCode, 'Ret'))
11 self.assertTrue(isinstance(OpCode.Ret, OpCode))
12 self.assertEqual(OpCode.Ret.value, 1)
14 op = OpCode.from_value(1)
15 self.assertTrue(isinstance(op, OpCode))
16 self.assertEqual(op, OpCode.Ret)
18 def test_memory_buffer_create_from_file(self):
19 source = self.get_test_file()
21 MemoryBuffer(filename=source)
23 def test_memory_buffer_failing(self):
24 with self.assertRaises(Exception):
25 MemoryBuffer(filename="/hopefully/this/path/doesnt/exist")
27 def test_memory_buffer_len(self):
28 source = self.get_test_file()
29 m = MemoryBuffer(filename=source)
30 self.assertEqual(len(m), 50)
32 def test_create_passregistry(self):
35 def test_create_context(self):
36 Context.GetGlobalContext()
38 def test_create_module_with_name(self):
39 # Make sure we can not create a module without a LLVMModuleRef.
40 with self.assertRaises(TypeError):
42 m = Module.CreateWithName("test-module")
44 def test_module_getset_datalayout(self):
45 m = Module.CreateWithName("test-module")
46 dl = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
48 self.assertEqual(m.datalayout, dl)
50 def test_module_getset_target(self):
51 m = Module.CreateWithName("test-module")
52 target = "thumbv7-apple-ios5.0.0"
54 self.assertEqual(m.target, target)
56 def test_module_print_module_to_file(self):
57 m = Module.CreateWithName("test")
58 dl = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:32:64-v128:32:128-a0:0:32-n32-S32"
60 target = "thumbv7-apple-ios5.0.0"
62 m.print_module_to_file("test2.ll")