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

1from . import bindgen 

2from wasmtime import Store 

3 

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 ))) 

30 

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"))) 

55 

56 (core instance $i (instantiate $m 

57 (with "" (instance (export "" (func $f)))) 

58 )) 

59 

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) 

81 

82from .generated.many_arguments import Root, RootImports, imports 

83 

84 

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) 

119 

120 

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)