Coverage for tests/codegen/test_two_exports.py: 100%

18 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-02-20 16:25 +0000

1from . import bindgen 

2from wasmtime import Store 

3 

4module = """ 

5 (component 

6 (import "i" (instance $i 

7 (export "f1" (func)) 

8 (export "f2" (func)) 

9 )) 

10 

11 (core func $f1 (canon lower (func $i "f1"))) 

12 (core func $f2 (canon lower (func $i "f2"))) 

13 

14 (func $f1' (canon lift (core func $f1))) 

15 (func $f2' (canon lift (core func $f2))) 

16 

17 (instance (export "i1") (export "f1" (func $f1'))) 

18 (instance (export "i2") (export "f2" (func $f2'))) 

19 ) 

20""" 

21bindgen('two_exports', module) 

22 

23from .generated.two_exports import Root, RootImports, imports 

24 

25 

26class Host(imports.HostI): 

27 def f1(self) -> None: 

28 self.f1_hit = True 

29 

30 def f2(self) -> None: 

31 self.f2_hit = True 

32 

33 

34def test_bindings(): 

35 store = Store() 

36 host = Host() 

37 wasm = Root(store, RootImports(i=host)) 

38 

39 wasm.i1().f1(store) 

40 assert(host.f1_hit) 

41 wasm.i2().f2(store) 

42 assert(host.f2_hit)