Coverage for tests/test_global.py: 100%
37 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-02-20 16:25 +0000
« prev ^ index » next coverage.py v7.6.12, created at 2025-02-20 16:25 +0000
1import unittest
3from wasmtime import *
6class TestGlobal(unittest.TestCase):
7 def test_new(self):
8 store = Store()
9 ty = GlobalType(ValType.i32(), True)
10 g = Global(store, ty, Val.i32(1))
11 Global(store, ty, Val.i32(1))
12 self.assertEqual(g.type(store).content, ValType.i32())
13 self.assertTrue(g.type(store).mutable)
15 self.assertEqual(g.value(store), 1)
16 g.set_value(store, Val.i32(2))
17 self.assertEqual(g.value(store), 2)
18 self.assertTrue(isinstance(g.type(store), GlobalType))
20 def test_falsy(self):
21 store = Store()
22 ty = GlobalType(ValType.i64(), True)
23 g = Global(store, ty, Val.i64(0))
24 val = g.value(store)
26 self.assertEqual(val, 0)
27 self.assertTrue(isinstance(val, int))
29 def test_errors(self):
30 store = Store()
31 ty = GlobalType(ValType.i32(), True)
32 with self.assertRaises(TypeError):
33 Global(store, ty, store)
34 with self.assertRaises(TypeError):
35 Global(store, 1, Val.i32(1)) # type: ignore
36 with self.assertRaises(AttributeError):
37 Global(1, ty, Val.i32(1)) # type: ignore
39 g = Global(store, ty, Val.i32(1))
40 with self.assertRaises(TypeError):
41 g.set_value(store, g)
43 ty = GlobalType(ValType.i32(), False)
44 g = Global(store, ty, Val.i32(1))
45 with self.assertRaises(WasmtimeError):
46 g.set_value(store, 1)