Coverage for tests/test_shared_memory.py: 100%
46 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 TestSharedMemory(unittest.TestCase):
7 def test_new(self):
8 engine = Store().engine
9 memory_type = MemoryType(Limits(1, 2), is_64=False, shared=True)
10 assert(not memory_type.is_64)
11 shared_memory = SharedMemory(engine, memory_type)
12 with self.assertRaises(TypeError):
13 shared_memory.grow('') # type: ignore
14 with self.assertRaises(WasmtimeError):
15 shared_memory.grow(-1)
16 self.assertEqual(shared_memory.data_ptr()[0], 0)
17 self.assertEqual(shared_memory.data_len(), 65536)
18 self.assertTrue(isinstance(shared_memory.type(), MemoryType))
20 def test_grow(self):
21 engine = Store().engine
22 memory_type = MemoryType(Limits(1, 2), shared=True)
23 shared_memory = SharedMemory(engine, memory_type)
24 assert(shared_memory.grow(1) == 1)
25 assert(shared_memory.grow(0) == 2)
26 with self.assertRaises(WasmtimeError):
27 shared_memory.grow(1)
29 def test_errors(self):
30 engine = Store().engine
31 ty = MemoryType(Limits(1, 2), shared=True)
32 with self.assertRaises(AttributeError):
33 SharedMemory(1, ty) # type: ignore
34 with self.assertRaises(AttributeError):
35 SharedMemory(engine, 1) # type: ignore
37 def test_shared_memory_type_fails_if_no_max_specified(self):
38 with self.assertRaises(WasmtimeError):
39 # Shared memories must have a max size
40 MemoryType(Limits(0x100000000, None), shared=True)
42 def test_shared_memory_type_works_if_min_max_i64_is_set(self):
43 ty = MemoryType(Limits(0x100000000, 0x100000000), is_64=True, shared=True)
44 assert(ty.limits.min == 0x100000000)
45 assert(ty.limits.max == 0x100000000)
46 assert(ty.is_64)
48 def test_shared_memory_type_fails_if_is_too_large(self):
49 with self.assertRaises(WasmtimeError):
50 MemoryType(Limits(1, 0x100000000), shared=True)
52 def test_memory_type_has_to_be_shared(self):
53 engine = Store().engine
54 ty = MemoryType(Limits(1, 2))
55 with self.assertRaises(WasmtimeError):
56 SharedMemory(engine, ty)