github.com/tetratelabs/wazero@v1.7.3-0.20240513003603-48f702e154b5/internal/integration_test/spectest/v2/testdata/exports.wast (about) 1 ;; Functions 2 3 (module (func) (export "a" (func 0))) 4 (module (func) (export "a" (func 0)) (export "b" (func 0))) 5 (module (func) (func) (export "a" (func 0)) (export "b" (func 1))) 6 7 (module (func (export "a"))) 8 (module (func (export "a") (export "b") (export "c"))) 9 (module (func (export "a") (export "b") (param i32))) 10 (module (func) (export "a" (func 0))) 11 (module (func $a (export "a"))) 12 (module (func $a) (export "a" (func $a))) 13 (module (export "a" (func 0)) (func)) 14 (module (export "a" (func $a)) (func $a)) 15 16 (module $Func 17 (export "e" (func $f)) 18 (func $f (param $n i32) (result i32) 19 (return (i32.add (local.get $n) (i32.const 1))) 20 ) 21 ) 22 (assert_return (invoke "e" (i32.const 42)) (i32.const 43)) 23 (assert_return (invoke $Func "e" (i32.const 42)) (i32.const 43)) 24 (module) 25 (module $Other1) 26 (assert_return (invoke $Func "e" (i32.const 42)) (i32.const 43)) 27 28 (module 29 (type (;0;) (func (result i32))) 30 (func (;0;) (type 0) (result i32) i32.const 42) 31 (export "a" (func 0)) 32 (export "b" (func 0)) 33 (export "c" (func 0))) 34 (assert_return (invoke "a") (i32.const 42)) 35 (assert_return (invoke "b") (i32.const 42)) 36 (assert_return (invoke "c") (i32.const 42)) 37 38 (assert_invalid 39 (module (export "a" (func 0))) 40 "unknown function" 41 ) 42 (assert_invalid 43 (module (func) (export "a" (func 1))) 44 "unknown function" 45 ) 46 (assert_invalid 47 (module (import "spectest" "print_i32" (func (param i32))) (export "a" (func 1))) 48 "unknown function" 49 ) 50 (assert_invalid 51 (module (func) (export "a" (func 0)) (export "a" (func 0))) 52 "duplicate export name" 53 ) 54 (assert_invalid 55 (module (func) (func) (export "a" (func 0)) (export "a" (func 1))) 56 "duplicate export name" 57 ) 58 (assert_invalid 59 (module (func) (global i32 (i32.const 0)) (export "a" (func 0)) (export "a" (global 0))) 60 "duplicate export name" 61 ) 62 (assert_invalid 63 (module (func) (table 0 funcref) (export "a" (func 0)) (export "a" (table 0))) 64 "duplicate export name" 65 ) 66 (assert_invalid 67 (module (func) (memory 0) (export "a" (func 0)) (export "a" (memory 0))) 68 "duplicate export name" 69 ) 70 71 72 ;; Globals 73 74 (module (global i32 (i32.const 0)) (export "a" (global 0))) 75 (module (global i32 (i32.const 0)) (export "a" (global 0)) (export "b" (global 0))) 76 (module (global i32 (i32.const 0)) (global i32 (i32.const 0)) (export "a" (global 0)) (export "b" (global 1))) 77 78 (module (global (export "a") i32 (i32.const 0))) 79 (module (global i32 (i32.const 0)) (export "a" (global 0))) 80 (module (global $a (export "a") i32 (i32.const 0))) 81 (module (global $a i32 (i32.const 0)) (export "a" (global $a))) 82 (module (export "a" (global 0)) (global i32 (i32.const 0))) 83 (module (export "a" (global $a)) (global $a i32 (i32.const 0))) 84 85 (module $Global 86 (export "e" (global $g)) 87 (global $g i32 (i32.const 42)) 88 ) 89 (assert_return (get "e") (i32.const 42)) 90 (assert_return (get $Global "e") (i32.const 42)) 91 (module) 92 (module $Other2) 93 (assert_return (get $Global "e") (i32.const 42)) 94 95 (assert_invalid 96 (module (export "a" (global 0))) 97 "unknown global" 98 ) 99 (assert_invalid 100 (module (global i32 (i32.const 0)) (export "a" (global 1))) 101 "unknown global" 102 ) 103 (assert_invalid 104 (module (import "spectest" "global_i32" (global i32)) (export "a" (global 1))) 105 "unknown global" 106 ) 107 (assert_invalid 108 (module (global i32 (i32.const 0)) (export "a" (global 0)) (export "a" (global 0))) 109 "duplicate export name" 110 ) 111 (assert_invalid 112 (module (global i32 (i32.const 0)) (global i32 (i32.const 0)) (export "a" (global 0)) (export "a" (global 1))) 113 "duplicate export name" 114 ) 115 (assert_invalid 116 (module (global i32 (i32.const 0)) (func) (export "a" (global 0)) (export "a" (func 0))) 117 "duplicate export name" 118 ) 119 (assert_invalid 120 (module (global i32 (i32.const 0)) (table 0 funcref) (export "a" (global 0)) (export "a" (table 0))) 121 "duplicate export name" 122 ) 123 (assert_invalid 124 (module (global i32 (i32.const 0)) (memory 0) (export "a" (global 0)) (export "a" (memory 0))) 125 "duplicate export name" 126 ) 127 128 129 ;; Tables 130 131 (module (table 0 funcref) (export "a" (table 0))) 132 (module (table 0 funcref) (export "a" (table 0)) (export "b" (table 0))) 133 (module (table 0 funcref) (table 0 funcref) (export "a" (table 0)) (export "b" (table 1))) 134 135 (module (table (export "a") 0 funcref)) 136 (module (table (export "a") 0 1 funcref)) 137 (module (table 0 funcref) (export "a" (table 0))) 138 (module (table 0 1 funcref) (export "a" (table 0))) 139 (module (table $a (export "a") 0 funcref)) 140 (module (table $a (export "a") 0 1 funcref)) 141 (module (table $a 0 funcref) (export "a" (table $a))) 142 (module (table $a 0 1 funcref) (export "a" (table $a))) 143 (module (export "a" (table 0)) (table 0 funcref)) 144 (module (export "a" (table 0)) (table 0 1 funcref)) 145 (module (export "a" (table $a)) (table $a 0 funcref)) 146 (module (export "a" (table $a)) (table $a 0 1 funcref)) 147 148 (; TODO: access table ;) 149 150 (assert_invalid 151 (module (export "a" (table 0))) 152 "unknown table" 153 ) 154 (assert_invalid 155 (module (table 0 funcref) (export "a" (table 1))) 156 "unknown table" 157 ) 158 (assert_invalid 159 (module (import "spectest" "table" (table 10 20 funcref)) (export "a" (table 1))) 160 "unknown table" 161 ) 162 (assert_invalid 163 (module (table 0 funcref) (export "a" (table 0)) (export "a" (table 0))) 164 "duplicate export name" 165 ) 166 (assert_invalid 167 (module (table 0 funcref) (table 0 funcref) (export "a" (table 0)) (export "a" (table 1))) 168 "duplicate export name" 169 ) 170 (assert_invalid 171 (module (table 0 funcref) (func) (export "a" (table 0)) (export "a" (func 0))) 172 "duplicate export name" 173 ) 174 (assert_invalid 175 (module (table 0 funcref) (global i32 (i32.const 0)) (export "a" (table 0)) (export "a" (global 0))) 176 "duplicate export name" 177 ) 178 (assert_invalid 179 (module (table 0 funcref) (memory 0) (export "a" (table 0)) (export "a" (memory 0))) 180 "duplicate export name" 181 ) 182 183 184 ;; Memories 185 186 (module (memory 0) (export "a" (memory 0))) 187 (module (memory 0) (export "a" (memory 0)) (export "b" (memory 0))) 188 ;; No multiple memories yet. 189 ;; (module (memory 0) (memory 0) (export "a" (memory 0)) (export "b" (memory 1))) 190 191 (module (memory (export "a") 0)) 192 (module (memory (export "a") 0 1)) 193 (module (memory 0) (export "a" (memory 0))) 194 (module (memory 0 1) (export "a" (memory 0))) 195 (module (memory $a (export "a") 0)) 196 (module (memory $a (export "a") 0 1)) 197 (module (memory $a 0) (export "a" (memory $a))) 198 (module (memory $a 0 1) (export "a" (memory $a))) 199 (module (export "a" (memory 0)) (memory 0)) 200 (module (export "a" (memory 0)) (memory 0 1)) 201 (module (export "a" (memory $a)) (memory $a 0)) 202 (module (export "a" (memory $a)) (memory $a 0 1)) 203 204 (; TODO: access memory ;) 205 206 (assert_invalid 207 (module (export "a" (memory 0))) 208 "unknown memory" 209 ) 210 (assert_invalid 211 (module (memory 0) (export "a" (memory 1))) 212 "unknown memory" 213 ) 214 (assert_invalid 215 (module (import "spectest" "memory" (memory 1 2)) (export "a" (memory 1))) 216 "unknown memory" 217 ) 218 (assert_invalid 219 (module (memory 0) (export "a" (memory 0)) (export "a" (memory 0))) 220 "duplicate export name" 221 ) 222 ;; No multiple memories yet. 223 ;; (assert_invalid 224 ;; (module (memory 0) (memory 0) (export "a" (memory 0)) (export "a" (memory 1))) 225 ;; "duplicate export name" 226 ;; ) 227 (assert_invalid 228 (module (memory 0) (func) (export "a" (memory 0)) (export "a" (func 0))) 229 "duplicate export name" 230 ) 231 (assert_invalid 232 (module (memory 0) (global i32 (i32.const 0)) (export "a" (memory 0)) (export "a" (global 0))) 233 "duplicate export name" 234 ) 235 (assert_invalid 236 (module (memory 0) (table 0 funcref) (export "a" (memory 0)) (export "a" (table 0))) 237 "duplicate export name" 238 )