Coverage for tests/codegen/test_many_arguments.py: 100%
27 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
1from . import bindgen
2from wasmtime import Store
4module = """
5 (component
6 (import "host" (instance $i
7 (export "many-arguments" (func
8 (param "a1" u64)
9 (param "a2" u64)
10 (param "a3" u64)
11 (param "a4" u64)
12 (param "a5" u64)
13 (param "a6" u64)
14 (param "a7" u64)
15 (param "a8" u64)
16 (param "a9" u64)
17 (param "a10" u64)
18 (param "a11" u64)
19 (param "a12" u64)
20 (param "a13" u64)
21 (param "a14" u64)
22 (param "a15" u64)
23 (param "a16" u64)
24 ))
25 ))
26 (core module $m
27 (import "" "" (func $f (param
28 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64
29 )))
31 (func (export "")
32 (param
33 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64 i64
34 )
35 local.get 0
36 local.get 1
37 local.get 2
38 local.get 3
39 local.get 4
40 local.get 5
41 local.get 6
42 local.get 7
43 local.get 8
44 local.get 9
45 local.get 10
46 local.get 11
47 local.get 12
48 local.get 13
49 local.get 14
50 local.get 15
51 call $f
52 )
53 )
54 (core func $f (canon lower (func $i "many-arguments")))
56 (core instance $i (instantiate $m
57 (with "" (instance (export "" (func $f))))
58 ))
60 (func (export "many-arguments")
61 (param "a1" u64)
62 (param "a2" u64)
63 (param "a3" u64)
64 (param "a4" u64)
65 (param "a5" u64)
66 (param "a6" u64)
67 (param "a7" u64)
68 (param "a8" u64)
69 (param "a9" u64)
70 (param "a10" u64)
71 (param "a11" u64)
72 (param "a12" u64)
73 (param "a13" u64)
74 (param "a14" u64)
75 (param "a15" u64)
76 (param "a16" u64)
77 (canon lift (core func $i "")))
78 )
79"""
80bindgen('many_arguments', module)
82from .generated.many_arguments import Root, RootImports, imports
85class MyImports(imports.HostHost):
86 def many_arguments(self,
87 a1: int,
88 a2: int,
89 a3: int,
90 a4: int,
91 a5: int,
92 a6: int,
93 a7: int,
94 a8: int,
95 a9: int,
96 a10: int,
97 a11: int,
98 a12: int,
99 a13: int,
100 a14: int,
101 a15: int,
102 a16: int) -> None:
103 assert(a1 == 1)
104 assert(a2 == 2)
105 assert(a3 == 3)
106 assert(a4 == 4)
107 assert(a5 == 5)
108 assert(a6 == 6)
109 assert(a7 == 7)
110 assert(a8 == 8)
111 assert(a9 == 9)
112 assert(a10 == 10)
113 assert(a11 == 11)
114 assert(a12 == 12)
115 assert(a13 == 13)
116 assert(a14 == 14)
117 assert(a15 == 15)
118 assert(a16 == 16)
121def test_bindings():
122 store = Store()
123 wasm = Root(store, RootImports(MyImports()))
124 wasm.many_arguments(store, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)