github.com/tetratelabs/wazero@v1.7.1/internal/integration_test/spectest/v1/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 (assert_invalid 29 (module (func) (export "a" (func 1))) 30 "unknown function" 31 ) 32 (assert_invalid 33 (module (func) (export "a" (func 0)) (export "a" (func 0))) 34 "duplicate export name" 35 ) 36 (assert_invalid 37 (module (func) (func) (export "a" (func 0)) (export "a" (func 1))) 38 "duplicate export name" 39 ) 40 (assert_invalid 41 (module (func) (global i32 (i32.const 0)) (export "a" (func 0)) (export "a" (global 0))) 42 "duplicate export name" 43 ) 44 (assert_invalid 45 (module (func) (table 0 funcref) (export "a" (func 0)) (export "a" (table 0))) 46 "duplicate export name" 47 ) 48 (assert_invalid 49 (module (func) (memory 0) (export "a" (func 0)) (export "a" (memory 0))) 50 "duplicate export name" 51 ) 52 53 54 ;; Globals 55 56 (module (global i32 (i32.const 0)) (export "a" (global 0))) 57 (module (global i32 (i32.const 0)) (export "a" (global 0)) (export "b" (global 0))) 58 (module (global i32 (i32.const 0)) (global i32 (i32.const 0)) (export "a" (global 0)) (export "b" (global 1))) 59 60 (module (global (export "a") i32 (i32.const 0))) 61 (module (global i32 (i32.const 0)) (export "a" (global 0))) 62 (module (global $a (export "a") i32 (i32.const 0))) 63 (module (global $a i32 (i32.const 0)) (export "a" (global $a))) 64 (module (export "a" (global 0)) (global i32 (i32.const 0))) 65 (module (export "a" (global $a)) (global $a i32 (i32.const 0))) 66 67 (module $Global 68 (export "e" (global $g)) 69 (global $g i32 (i32.const 42)) 70 ) 71 (assert_return (get "e") (i32.const 42)) 72 (assert_return (get $Global "e") (i32.const 42)) 73 (module) 74 (module $Other2) 75 (assert_return (get $Global "e") (i32.const 42)) 76 77 (assert_invalid 78 (module (global i32 (i32.const 0)) (export "a" (global 1))) 79 "unknown global" 80 ) 81 (assert_invalid 82 (module (global i32 (i32.const 0)) (export "a" (global 0)) (export "a" (global 0))) 83 "duplicate export name" 84 ) 85 (assert_invalid 86 (module (global i32 (i32.const 0)) (global i32 (i32.const 0)) (export "a" (global 0)) (export "a" (global 1))) 87 "duplicate export name" 88 ) 89 (assert_invalid 90 (module (global i32 (i32.const 0)) (func) (export "a" (global 0)) (export "a" (func 0))) 91 "duplicate export name" 92 ) 93 (assert_invalid 94 (module (global i32 (i32.const 0)) (table 0 funcref) (export "a" (global 0)) (export "a" (table 0))) 95 "duplicate export name" 96 ) 97 (assert_invalid 98 (module (global i32 (i32.const 0)) (memory 0) (export "a" (global 0)) (export "a" (memory 0))) 99 "duplicate export name" 100 ) 101 102 103 ;; Tables 104 105 (module (table 0 funcref) (export "a" (table 0))) 106 (module (table 0 funcref) (export "a" (table 0)) (export "b" (table 0))) 107 ;; No multiple tables yet. 108 ;; (module (table 0 funcref) (table 0 funcref) (export "a" (table 0)) (export "b" (table 1))) 109 110 (module (table (export "a") 0 funcref)) 111 (module (table (export "a") 0 1 funcref)) 112 (module (table 0 funcref) (export "a" (table 0))) 113 (module (table 0 1 funcref) (export "a" (table 0))) 114 (module (table $a (export "a") 0 funcref)) 115 (module (table $a (export "a") 0 1 funcref)) 116 (module (table $a 0 funcref) (export "a" (table $a))) 117 (module (table $a 0 1 funcref) (export "a" (table $a))) 118 (module (export "a" (table 0)) (table 0 funcref)) 119 (module (export "a" (table 0)) (table 0 1 funcref)) 120 (module (export "a" (table $a)) (table $a 0 funcref)) 121 (module (export "a" (table $a)) (table $a 0 1 funcref)) 122 123 (; TODO: access table ;) 124 125 (assert_invalid 126 (module (table 0 funcref) (export "a" (table 1))) 127 "unknown table" 128 ) 129 (assert_invalid 130 (module (table 0 funcref) (export "a" (table 0)) (export "a" (table 0))) 131 "duplicate export name" 132 ) 133 ;; No multiple tables yet. 134 ;; (assert_invalid 135 ;; (module (table 0 funcref) (table 0 funcref) (export "a" (table 0)) (export "a" (table 1))) 136 ;; "duplicate export name" 137 ;; ) 138 (assert_invalid 139 (module (table 0 funcref) (func) (export "a" (table 0)) (export "a" (func 0))) 140 "duplicate export name" 141 ) 142 (assert_invalid 143 (module (table 0 funcref) (global i32 (i32.const 0)) (export "a" (table 0)) (export "a" (global 0))) 144 "duplicate export name" 145 ) 146 (assert_invalid 147 (module (table 0 funcref) (memory 0) (export "a" (table 0)) (export "a" (memory 0))) 148 "duplicate export name" 149 ) 150 151 152 ;; Memories 153 154 (module (memory 0) (export "a" (memory 0))) 155 (module (memory 0) (export "a" (memory 0)) (export "b" (memory 0))) 156 ;; No multiple memories yet. 157 ;; (module (memory 0) (memory 0) (export "a" (memory 0)) (export "b" (memory 1))) 158 159 (module (memory (export "a") 0)) 160 (module (memory (export "a") 0 1)) 161 (module (memory 0) (export "a" (memory 0))) 162 (module (memory 0 1) (export "a" (memory 0))) 163 (module (memory $a (export "a") 0)) 164 (module (memory $a (export "a") 0 1)) 165 (module (memory $a 0) (export "a" (memory $a))) 166 (module (memory $a 0 1) (export "a" (memory $a))) 167 (module (export "a" (memory 0)) (memory 0)) 168 (module (export "a" (memory 0)) (memory 0 1)) 169 (module (export "a" (memory $a)) (memory $a 0)) 170 (module (export "a" (memory $a)) (memory $a 0 1)) 171 172 (; TODO: access memory ;) 173 174 (assert_invalid 175 (module (memory 0) (export "a" (memory 1))) 176 "unknown memory" 177 ) 178 (assert_invalid 179 (module (memory 0) (export "a" (memory 0)) (export "a" (memory 0))) 180 "duplicate export name" 181 ) 182 ;; No multiple memories yet. 183 ;; (assert_invalid 184 ;; (module (memory 0) (memory 0) (export "a" (memory 0)) (export "a" (memory 1))) 185 ;; "duplicate export name" 186 ;; ) 187 (assert_invalid 188 (module (memory 0) (func) (export "a" (memory 0)) (export "a" (func 0))) 189 "duplicate export name" 190 ) 191 (assert_invalid 192 (module (memory 0) (global i32 (i32.const 0)) (export "a" (memory 0)) (export "a" (global 0))) 193 "duplicate export name" 194 ) 195 (assert_invalid 196 (module (memory 0) (table 0 funcref) (export "a" (memory 0)) (export "a" (table 0))) 197 "duplicate export name" 198 )