summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/assert/bad-invoke-no-module.txt6
-rw-r--r--test/bad-single-semicolon.txt8
-rw-r--r--test/bad-string-eof.txt6
-rw-r--r--test/bad-toplevel.txt7
-rw-r--r--test/expr/bad-binary-empty.txt5
-rw-r--r--test/expr/bad-break-name-undefined.txt5
-rw-r--r--test/expr/bad-break-no-label.txt5
-rw-r--r--test/expr/bad-break-undefined.txt5
-rw-r--r--test/expr/bad-compare-empty.txt5
-rw-r--r--test/expr/bad-const-f32-trailing.txt6
-rw-r--r--test/expr/bad-const-i32-garbage.txt6
-rw-r--r--test/expr/bad-const-i32-just-negative-sign.txt7
-rw-r--r--test/expr/bad-const-i32-trailing.txt6
-rw-r--r--test/expr/bad-convert-float-sign.txt6
-rw-r--r--test/expr/bad-convert-int-no-sign.txt6
-rw-r--r--test/expr/bad-getlocal-empty.txt5
-rw-r--r--test/expr/bad-getlocal-name-undefined.txt5
-rw-r--r--test/expr/bad-getlocal-name.txt6
-rw-r--r--test/expr/bad-getlocal-undefined.txt5
-rw-r--r--test/expr/bad-label-name-empty.txt5
-rw-r--r--test/expr/bad-label.txt5
-rw-r--r--test/expr/bad-load-float-sign.txt6
-rw-r--r--test/expr/bad-load-type.txt6
-rw-r--r--test/expr/bad-loadglobal-name-undefined.txt5
-rw-r--r--test/expr/bad-loadglobal-name.txt7
-rw-r--r--test/expr/bad-loadglobal-undefined.txt5
-rw-r--r--test/expr/bad-return-too-few.txt7
-rw-r--r--test/expr/bad-setlocal-name.txt8
-rw-r--r--test/expr/bad-store-float.sign.txt6
-rw-r--r--test/expr/bad-store-type.txt6
-rw-r--r--test/expr/bad-storeglobal-name.txt7
-rw-r--r--test/expr/bad-unary-empty.txt5
-rw-r--r--test/func/bad-local-binding-no-type.txt5
-rw-r--r--test/func/bad-local-binding.txt5
-rw-r--r--test/func/bad-local-name.txt5
-rw-r--r--test/func/bad-param-binding.txt5
-rw-r--r--test/func/bad-param-name.txt5
-rw-r--r--test/func/bad-result-empty.txt5
-rw-r--r--test/func/bad-result-multi.txt5
-rw-r--r--test/func/bad-result-type.txt6
-rw-r--r--test/module/bad-export-empty.txt5
-rw-r--r--test/module/bad-export-name-undefined.txt5
-rw-r--r--test/module/bad-export-name.txt6
-rw-r--r--test/module/bad-export-no-string.txt5
-rw-r--r--test/module/bad-export-undefined.txt5
-rw-r--r--test/module/bad-global-binding.txt5
-rw-r--r--test/module/bad-global-too-many.txt5
-rw-r--r--test/module/bad-import-not-param.txt6
-rw-r--r--test/module/bad-import-not-result.txt6
-rw-r--r--test/module/bad-import-one-string.txt5
-rw-r--r--test/module/bad-memory-empty.txt5
-rw-r--r--test/module/bad-memory-init-size-negative.txt5
-rw-r--r--test/module/bad-memory-init-size.txt6
-rw-r--r--test/module/bad-memory-max-less-than-init.txt5
-rw-r--r--test/module/bad-memory-max-size-negative.txt5
-rw-r--r--test/module/bad-memory-segment-address-negative.txt5
-rw-r--r--test/module/bad-memory-segment-address-oob.txt5
-rw-r--r--test/module/bad-memory-segment-address.txt6
-rw-r--r--test/module/bad-memory-segment-end-oob.txt5
-rw-r--r--test/module/bad-module-no-close.txt5
-rw-r--r--test/module/bad-table-invalid.txt6
-rw-r--r--test/parse/assert/assert-after-module.txt (renamed from test/assert/assert-after-module.txt)0
-rw-r--r--test/parse/assert/assertinvalid.txt (renamed from test/assert/assertinvalid.txt)4
-rw-r--r--test/parse/assert/assertreturn.txt (renamed from test/assert/assertreturn.txt)0
-rw-r--r--test/parse/assert/assertreturnnan.txt (renamed from test/assert/assertreturnnan.txt)0
-rw-r--r--test/parse/assert/bad-assert-before-module.txt (renamed from test/assert/bad-assert-before-module.txt)2
-rw-r--r--test/parse/assert/bad-assertinvalid-succeeds.txt (renamed from test/assert/bad-assertinvalid-succeeds.txt)2
-rw-r--r--test/parse/assert/bad-assertreturn-non-const.txt (renamed from test/assert/bad-assertreturn-non-const.txt)2
-rw-r--r--test/parse/assert/bad-assertreturn-too-few.txt (renamed from test/assert/bad-assertreturn-too-few.txt)2
-rw-r--r--test/parse/assert/bad-assertreturn-too-many.txt (renamed from test/assert/bad-assertreturn-too-many.txt)2
-rw-r--r--test/parse/assert/bad-assertreturn-unknown-function.txt (renamed from test/assert/bad-assertreturn-unknown-function.txt)2
-rw-r--r--test/parse/assert/bad-assertreturnnan-invalid-return-type.txt (renamed from test/assert/bad-assertreturnnan-invalid-return-type.txt)2
-rw-r--r--test/parse/assert/bad-assertreturnnan-too-few.txt (renamed from test/assert/bad-assertreturnnan-too-few.txt)2
-rw-r--r--test/parse/assert/bad-assertreturnnan-too-many.txt (renamed from test/assert/bad-assertreturnnan-too-many.txt)2
-rw-r--r--test/parse/assert/bad-assertreturnnan-unknown-function.txt (renamed from test/assert/bad-assertreturnnan-unknown-function.txt)2
-rw-r--r--test/parse/assert/bad-invoke-no-module.txt6
-rw-r--r--test/parse/assert/bad-invoke-too-few.txt (renamed from test/assert/bad-invoke-too-few.txt)2
-rw-r--r--test/parse/assert/bad-invoke-too-many.txt (renamed from test/assert/bad-invoke-too-many.txt)2
-rw-r--r--test/parse/assert/bad-invoke-unknown-function.txt (renamed from test/assert/bad-invoke-unknown-function.txt)2
-rw-r--r--test/parse/assert/invoke.txt (renamed from test/assert/invoke.txt)0
-rw-r--r--test/parse/bad-single-semicolon.txt8
-rw-r--r--test/parse/bad-string-eof.txt6
-rw-r--r--test/parse/bad-string-escape.txt (renamed from test/bad-string-escape.txt)2
-rw-r--r--test/parse/bad-string-hex-escape.txt (renamed from test/bad-string-hex-escape.txt)2
-rw-r--r--test/parse/bad-toplevel.txt7
-rw-r--r--test/parse/basic.txt (renamed from test/basic.txt)0
-rw-r--r--test/parse/empty-file.txt (renamed from test/empty-file.txt)0
-rw-r--r--test/parse/expr/bad-binary-empty.txt5
-rw-r--r--test/parse/expr/bad-binary-one-expr.txt (renamed from test/expr/bad-binary-one-expr.txt)2
-rw-r--r--test/parse/expr/bad-break-bad-depth.txt (renamed from test/expr/bad-break-bad-depth.txt)2
-rw-r--r--test/parse/expr/bad-break-defined-later.txt (renamed from test/expr/bad-break-defined-later.txt)2
-rw-r--r--test/parse/expr/bad-break-name-undefined.txt5
-rw-r--r--test/parse/expr/bad-break-name.txt (renamed from test/expr/bad-break-name.txt)2
-rw-r--r--test/parse/expr/bad-break-no-label.txt5
-rw-r--r--test/parse/expr/bad-break-undefined.txt5
-rw-r--r--test/parse/expr/bad-call-too-few.txt (renamed from test/expr/bad-call-too-few.txt)2
-rw-r--r--test/parse/expr/bad-call-too-many.txt (renamed from test/expr/bad-call-too-many.txt)2
-rw-r--r--test/parse/expr/bad-callimport-too-few.txt (renamed from test/expr/bad-callimport-too-few.txt)2
-rw-r--r--test/parse/expr/bad-callimport-too-many.txt (renamed from test/expr/bad-callimport-too-many.txt)2
-rw-r--r--test/parse/expr/bad-callindirect-empty.txt (renamed from test/expr/bad-callindirect-empty.txt)2
-rw-r--r--test/parse/expr/bad-callindirect-too-few.txt (renamed from test/expr/bad-callindirect-too-few.txt)2
-rw-r--r--test/parse/expr/bad-callindirect-too-many.txt (renamed from test/expr/bad-callindirect-too-many.txt)2
-rw-r--r--test/parse/expr/bad-compare-empty.txt5
-rw-r--r--test/parse/expr/bad-compare-one-expr.txt (renamed from test/expr/bad-compare-one-expr.txt)2
-rw-r--r--test/parse/expr/bad-const-f32-trailing.txt6
-rw-r--r--test/parse/expr/bad-const-i32-garbage.txt6
-rw-r--r--test/parse/expr/bad-const-i32-just-negative-sign.txt7
-rw-r--r--test/parse/expr/bad-const-i32-overflow.txt (renamed from test/expr/bad-const-i32-overflow.txt)2
-rw-r--r--test/parse/expr/bad-const-i32-trailing.txt6
-rw-r--r--test/parse/expr/bad-const-i32-underflow.txt (renamed from test/expr/bad-const-i32-underflow.txt)2
-rw-r--r--test/parse/expr/bad-const-i64-overflow.txt (renamed from test/expr/bad-const-i64-overflow.txt)2
-rw-r--r--test/parse/expr/bad-convert-empty.txt (renamed from test/expr/bad-convert-empty.txt)2
-rw-r--r--test/parse/expr/bad-convert-float-sign.txt6
-rw-r--r--test/parse/expr/bad-convert-int-no-sign.txt6
-rw-r--r--test/parse/expr/bad-convert-too-many.txt (renamed from test/expr/bad-convert-too-many.txt)2
-rw-r--r--test/parse/expr/bad-getlocal-empty.txt5
-rw-r--r--test/parse/expr/bad-getlocal-name-undefined.txt5
-rw-r--r--test/parse/expr/bad-getlocal-name.txt6
-rw-r--r--test/parse/expr/bad-getlocal-too-many.txt (renamed from test/expr/bad-getlocal-too-many.txt)2
-rw-r--r--test/parse/expr/bad-getlocal-undefined.txt5
-rw-r--r--test/parse/expr/bad-if-no-then.txt (renamed from test/expr/bad-if-no-then.txt)2
-rw-r--r--test/parse/expr/bad-if-too-many.txt (renamed from test/expr/bad-if-too-many.txt)2
-rw-r--r--test/parse/expr/bad-label-name-empty.txt5
-rw-r--r--test/parse/expr/bad-label-name.txt (renamed from test/expr/bad-label-name.txt)2
-rw-r--r--test/parse/expr/bad-label.txt5
-rw-r--r--test/parse/expr/bad-load-align-misspelled.txt (renamed from test/expr/bad-load-align-misspelled.txt)2
-rw-r--r--test/parse/expr/bad-load-align-negative.txt (renamed from test/expr/bad-load-align-negative.txt)2
-rw-r--r--test/parse/expr/bad-load-align-not-pot.txt (renamed from test/expr/bad-load-align-not-pot.txt)2
-rw-r--r--test/parse/expr/bad-load-align.txt (renamed from test/expr/bad-load-align.txt)2
-rw-r--r--test/parse/expr/bad-load-float-sign.txt6
-rw-r--r--test/parse/expr/bad-load-offset-negative.txt (renamed from test/expr/bad-load-offset-negative.txt)2
-rw-r--r--test/parse/expr/bad-load-type.txt6
-rw-r--r--test/parse/expr/bad-loadglobal-empty.txt (renamed from test/expr/bad-loadglobal-empty.txt)2
-rw-r--r--test/parse/expr/bad-loadglobal-name-undefined.txt5
-rw-r--r--test/parse/expr/bad-loadglobal-name.txt7
-rw-r--r--test/parse/expr/bad-loadglobal-too-many.txt (renamed from test/expr/bad-loadglobal-too-many.txt)2
-rw-r--r--test/parse/expr/bad-loadglobal-undefined.txt5
-rw-r--r--test/parse/expr/bad-nop.txt (renamed from test/expr/bad-nop.txt)2
-rw-r--r--test/parse/expr/bad-return-multi.txt (renamed from test/expr/bad-return-multi.txt)2
-rw-r--r--test/parse/expr/bad-return-too-few.txt7
-rw-r--r--test/parse/expr/bad-return-too-many.txt (renamed from test/expr/bad-return-too-many.txt)2
-rw-r--r--test/parse/expr/bad-setlocal-name-undefined.txt (renamed from test/expr/bad-setlocal-name-undefined.txt)2
-rw-r--r--test/parse/expr/bad-setlocal-name.txt8
-rw-r--r--test/parse/expr/bad-setlocal-no-value.txt (renamed from test/expr/bad-setlocal-no-value.txt)2
-rw-r--r--test/parse/expr/bad-setlocal-too-many.txt (renamed from test/expr/bad-setlocal-too-many.txt)2
-rw-r--r--test/parse/expr/bad-setlocal-undefined.txt (renamed from test/expr/bad-setlocal-undefined.txt)2
-rw-r--r--test/parse/expr/bad-store-align-not-pot.txt (renamed from test/expr/bad-store-align-not-pot.txt)2
-rw-r--r--test/parse/expr/bad-store-align.txt (renamed from test/expr/bad-store-align.txt)2
-rw-r--r--test/parse/expr/bad-store-float.sign.txt6
-rw-r--r--test/parse/expr/bad-store-offset-negative.txt (renamed from test/expr/bad-store-offset-negative.txt)2
-rw-r--r--test/parse/expr/bad-store-type.txt6
-rw-r--r--test/parse/expr/bad-storeglobal-empty.txt (renamed from test/expr/bad-storeglobal-empty.txt)2
-rw-r--r--test/parse/expr/bad-storeglobal-name-undefined.txt (renamed from test/expr/bad-storeglobal-name-undefined.txt)2
-rw-r--r--test/parse/expr/bad-storeglobal-name.txt7
-rw-r--r--test/parse/expr/bad-storeglobal-too-many.txt (renamed from test/expr/bad-storeglobal-too-many.txt)2
-rw-r--r--test/parse/expr/bad-storeglobal-undefined.txt (renamed from test/expr/bad-storeglobal-undefined.txt)2
-rw-r--r--test/parse/expr/bad-tableswitch-invalid-case.txt (renamed from test/expr/bad-tableswitch-invalid-case.txt)2
-rw-r--r--test/parse/expr/bad-tableswitch-invalid-default-case.txt (renamed from test/expr/bad-tableswitch-invalid-default-case.txt)2
-rw-r--r--test/parse/expr/bad-unary-empty.txt5
-rw-r--r--test/parse/expr/bad-unary-too-many.txt (renamed from test/expr/bad-unary-too-many.txt)2
-rw-r--r--test/parse/expr/bad-unexpected.txt (renamed from test/expr/bad-unexpected.txt)2
-rw-r--r--test/parse/expr/binary.txt (renamed from test/expr/binary.txt)0
-rw-r--r--test/parse/expr/block-named.txt (renamed from test/expr/block-named.txt)0
-rw-r--r--test/parse/expr/block-return.txt (renamed from test/expr/block-return.txt)0
-rw-r--r--test/parse/expr/block.txt (renamed from test/expr/block.txt)0
-rw-r--r--test/parse/expr/br.txt (renamed from test/expr/br.txt)0
-rw-r--r--test/parse/expr/break-block.txt (renamed from test/expr/break-block.txt)0
-rw-r--r--test/parse/expr/break-loop.txt (renamed from test/expr/break-loop.txt)0
-rw-r--r--test/parse/expr/break-named.txt (renamed from test/expr/break-named.txt)0
-rw-r--r--test/parse/expr/break.txt (renamed from test/expr/break.txt)0
-rw-r--r--test/parse/expr/brif-named.txt (renamed from test/expr/brif-named.txt)0
-rw-r--r--test/parse/expr/brif.txt (renamed from test/expr/brif.txt)0
-rw-r--r--test/parse/expr/call-defined-later.txt (renamed from test/expr/call-defined-later.txt)0
-rw-r--r--test/parse/expr/call-empty.txt (renamed from test/expr/call-empty.txt)0
-rw-r--r--test/parse/expr/call-name-prefix.txt (renamed from test/expr/call-name-prefix.txt)0
-rw-r--r--test/parse/expr/call-named.txt (renamed from test/expr/call-named.txt)0
-rw-r--r--test/parse/expr/call.txt (renamed from test/expr/call.txt)0
-rw-r--r--test/parse/expr/callimport-defined-later.txt (renamed from test/expr/callimport-defined-later.txt)0
-rw-r--r--test/parse/expr/callimport-named.txt (renamed from test/expr/callimport-named.txt)0
-rw-r--r--test/parse/expr/callimport-type.txt (renamed from test/expr/callimport-type.txt)0
-rw-r--r--test/parse/expr/callimport.txt (renamed from test/expr/callimport.txt)0
-rw-r--r--test/parse/expr/callindirect-named.txt (renamed from test/expr/callindirect-named.txt)0
-rw-r--r--test/parse/expr/callindirect.txt (renamed from test/expr/callindirect.txt)0
-rw-r--r--test/parse/expr/cast.txt (renamed from test/expr/cast.txt)0
-rw-r--r--test/parse/expr/compare.txt (renamed from test/expr/compare.txt)0
-rw-r--r--test/parse/expr/const.txt (renamed from test/expr/const.txt)0
-rw-r--r--test/parse/expr/convert.txt (renamed from test/expr/convert.txt)0
-rw-r--r--test/parse/expr/expr-break.txt (renamed from test/expr/expr-break.txt)0
-rw-r--r--test/parse/expr/getlocal-index-after-param.txt (renamed from test/expr/getlocal-index-after-param.txt)0
-rw-r--r--test/parse/expr/getlocal-index-mixed-named-unnamed.txt (renamed from test/expr/getlocal-index-mixed-named-unnamed.txt)0
-rw-r--r--test/parse/expr/getlocal-named.txt (renamed from test/expr/getlocal-named.txt)0
-rw-r--r--test/parse/expr/getlocal-param-named.txt (renamed from test/expr/getlocal-param-named.txt)0
-rw-r--r--test/parse/expr/getlocal-param.txt (renamed from test/expr/getlocal-param.txt)0
-rw-r--r--test/parse/expr/getlocal.txt (renamed from test/expr/getlocal.txt)0
-rw-r--r--test/parse/expr/if-return.txt (renamed from test/expr/if-return.txt)0
-rw-r--r--test/parse/expr/if-then-else.txt (renamed from test/expr/if-then-else.txt)0
-rw-r--r--test/parse/expr/if.txt (renamed from test/expr/if.txt)0
-rw-r--r--test/parse/expr/label-name.txt (renamed from test/expr/label-name.txt)0
-rw-r--r--test/parse/expr/label.txt (renamed from test/expr/label.txt)0
-rw-r--r--test/parse/expr/load-aligned.txt (renamed from test/expr/load-aligned.txt)0
-rw-r--r--test/parse/expr/load-offset.txt (renamed from test/expr/load-offset.txt)0
-rw-r--r--test/parse/expr/load.txt (renamed from test/expr/load.txt)0
-rw-r--r--test/parse/expr/loadglobal-name.txt (renamed from test/expr/loadglobal-name.txt)0
-rw-r--r--test/parse/expr/loadglobal.txt (renamed from test/expr/loadglobal.txt)0
-rw-r--r--test/parse/expr/loop-empty.txt (renamed from test/expr/loop-empty.txt)0
-rw-r--r--test/parse/expr/loop-named.txt (renamed from test/expr/loop-named.txt)0
-rw-r--r--test/parse/expr/loop.txt (renamed from test/expr/loop.txt)0
-rw-r--r--test/parse/expr/memory-size.txt (renamed from test/expr/memory-size.txt)0
-rw-r--r--test/parse/expr/nop.txt (renamed from test/expr/nop.txt)0
-rw-r--r--test/parse/expr/resize-memory.txt (renamed from test/expr/resize-memory.txt)0
-rw-r--r--test/parse/expr/return-block.txt (renamed from test/expr/return-block.txt)0
-rw-r--r--test/parse/expr/return-empty.txt (renamed from test/expr/return-empty.txt)0
-rw-r--r--test/parse/expr/return-if.txt (renamed from test/expr/return-if.txt)0
-rw-r--r--test/parse/expr/return-void.txt (renamed from test/expr/return-void.txt)0
-rw-r--r--test/parse/expr/return.txt (renamed from test/expr/return.txt)0
-rw-r--r--test/parse/expr/select.txt (renamed from test/expr/select.txt)0
-rw-r--r--test/parse/expr/setlocal-index-after-param.txt (renamed from test/expr/setlocal-index-after-param.txt)0
-rw-r--r--test/parse/expr/setlocal-index-mixed-named-unnamed.txt (renamed from test/expr/setlocal-index-mixed-named-unnamed.txt)0
-rw-r--r--test/parse/expr/setlocal-named.txt (renamed from test/expr/setlocal-named.txt)0
-rw-r--r--test/parse/expr/setlocal-param-named.txt (renamed from test/expr/setlocal-param-named.txt)0
-rw-r--r--test/parse/expr/setlocal-param.txt (renamed from test/expr/setlocal-param.txt)0
-rw-r--r--test/parse/expr/setlocal.txt (renamed from test/expr/setlocal.txt)0
-rw-r--r--test/parse/expr/store-aligned.txt (renamed from test/expr/store-aligned.txt)0
-rw-r--r--test/parse/expr/store-offset.txt (renamed from test/expr/store-offset.txt)0
-rw-r--r--test/parse/expr/store.txt (renamed from test/expr/store.txt)0
-rw-r--r--test/parse/expr/storeglobal-name.txt (renamed from test/expr/storeglobal-name.txt)0
-rw-r--r--test/parse/expr/storeglobal.txt (renamed from test/expr/storeglobal.txt)0
-rw-r--r--test/parse/expr/tableswitch-default-br.txt (renamed from test/expr/tableswitch-default-br.txt)0
-rw-r--r--test/parse/expr/tableswitch-empty-case.txt (renamed from test/expr/tableswitch-empty-case.txt)0
-rw-r--r--test/parse/expr/tableswitch-empty.txt (renamed from test/expr/tableswitch-empty.txt)0
-rw-r--r--test/parse/expr/tableswitch-multi.txt (renamed from test/expr/tableswitch-multi.txt)0
-rw-r--r--test/parse/expr/tableswitch-named.txt (renamed from test/expr/tableswitch-named.txt)0
-rw-r--r--test/parse/expr/tableswitch-table-br.txt (renamed from test/expr/tableswitch-table-br.txt)0
-rw-r--r--test/parse/expr/tableswitch-unreferenced.txt (renamed from test/expr/tableswitch-unreferenced.txt)0
-rw-r--r--test/parse/expr/tableswitch.txt (renamed from test/expr/tableswitch.txt)0
-rw-r--r--test/parse/expr/unary.txt (renamed from test/expr/unary.txt)0
-rw-r--r--test/parse/expr/unreachable.txt (renamed from test/expr/unreachable.txt)0
-rw-r--r--test/parse/func/bad-func-name.txt (renamed from test/func/bad-func-name.txt)2
-rw-r--r--test/parse/func/bad-local-binding-no-type.txt5
-rw-r--r--test/parse/func/bad-local-binding.txt5
-rw-r--r--test/parse/func/bad-local-name.txt5
-rw-r--r--test/parse/func/bad-local-type-list.txt (renamed from test/func/bad-local-type-list.txt)2
-rw-r--r--test/parse/func/bad-local-type.txt (renamed from test/func/bad-local-type.txt)2
-rw-r--r--test/parse/func/bad-param-after-local.txt (renamed from test/func/bad-param-after-local.txt)2
-rw-r--r--test/parse/func/bad-param-binding.txt5
-rw-r--r--test/parse/func/bad-param-name.txt5
-rw-r--r--test/parse/func/bad-param-redefinition.txt (renamed from test/func/bad-param-redefinition.txt)2
-rw-r--r--test/parse/func/bad-param-type-list.txt (renamed from test/func/bad-param-type-list.txt)2
-rw-r--r--test/parse/func/bad-param.txt (renamed from test/func/bad-param.txt)2
-rw-r--r--test/parse/func/bad-result-empty.txt5
-rw-r--r--test/parse/func/bad-result-multi.txt5
-rw-r--r--test/parse/func/bad-result-type.txt6
-rw-r--r--test/parse/func/bad-sig-param-type-mismatch.txt (renamed from test/func/bad-sig-param-type-mismatch.txt)2
-rw-r--r--test/parse/func/bad-sig-params-empty.txt (renamed from test/func/bad-sig-params-empty.txt)2
-rw-r--r--test/parse/func/bad-sig-result-type-mistmatch.txt (renamed from test/func/bad-sig-result-type-mistmatch.txt)2
-rw-r--r--test/parse/func/bad-sig-result-type-not-void.txt (renamed from test/func/bad-sig-result-type-not-void.txt)2
-rw-r--r--test/parse/func/bad-sig-result-type-void.txt (renamed from test/func/bad-sig-result-type-void.txt)2
-rw-r--r--test/parse/func/bad-sig-too-few-params.txt (renamed from test/func/bad-sig-too-few-params.txt)2
-rw-r--r--test/parse/func/bad-sig-too-many-params.txt (renamed from test/func/bad-sig-too-many-params.txt)2
-rw-r--r--test/parse/func/func-named.txt (renamed from test/func/func-named.txt)0
-rw-r--r--test/parse/func/local-empty.txt (renamed from test/func/local-empty.txt)0
-rw-r--r--test/parse/func/local-multi.txt (renamed from test/func/local-multi.txt)0
-rw-r--r--test/parse/func/local.txt (renamed from test/func/local.txt)0
-rw-r--r--test/parse/func/no-space.txt (renamed from test/func/no-space.txt)0
-rw-r--r--test/parse/func/param-binding.txt (renamed from test/func/param-binding.txt)0
-rw-r--r--test/parse/func/param-multi.txt (renamed from test/func/param-multi.txt)0
-rw-r--r--test/parse/func/param-type-1.txt (renamed from test/func/param-type-1.txt)0
-rw-r--r--test/parse/func/param-type-2.txt (renamed from test/func/param-type-2.txt)0
-rw-r--r--test/parse/func/result.txt (renamed from test/func/result.txt)0
-rw-r--r--test/parse/func/sig-match.txt (renamed from test/func/sig-match.txt)0
-rw-r--r--test/parse/func/sig.txt (renamed from test/func/sig.txt)0
-rw-r--r--test/parse/line-comment.txt (renamed from test/line-comment.txt)0
-rw-r--r--test/parse/module/bad-export-empty.txt5
-rw-r--r--test/parse/module/bad-export-name-undefined.txt5
-rw-r--r--test/parse/module/bad-export-name.txt6
-rw-r--r--test/parse/module/bad-export-no-string.txt5
-rw-r--r--test/parse/module/bad-export-too-many.txt (renamed from test/module/bad-export-too-many.txt)2
-rw-r--r--test/parse/module/bad-export-undefined.txt5
-rw-r--r--test/parse/module/bad-func-redefinition.txt (renamed from test/module/bad-func-redefinition.txt)2
-rw-r--r--test/parse/module/bad-global-binding.txt5
-rw-r--r--test/parse/module/bad-global-redefinition.txt (renamed from test/module/bad-global-redefinition.txt)2
-rw-r--r--test/parse/module/bad-global-too-many.txt5
-rw-r--r--test/parse/module/bad-global-type-list.txt (renamed from test/module/bad-global-type-list.txt)2
-rw-r--r--test/parse/module/bad-import-not-param.txt6
-rw-r--r--test/parse/module/bad-import-not-result.txt6
-rw-r--r--test/parse/module/bad-import-one-string.txt5
-rw-r--r--test/parse/module/bad-import-redefinition.txt (renamed from test/module/bad-import-redefinition.txt)2
-rw-r--r--test/parse/module/bad-memory-empty.txt5
-rw-r--r--test/parse/module/bad-memory-init-size-negative.txt5
-rw-r--r--test/parse/module/bad-memory-init-size.txt6
-rw-r--r--test/parse/module/bad-memory-max-less-than-init.txt5
-rw-r--r--test/parse/module/bad-memory-max-size-negative.txt5
-rw-r--r--test/parse/module/bad-memory-max-size.txt (renamed from test/module/bad-memory-max-size.txt)2
-rw-r--r--test/parse/module/bad-memory-segment-address-negative.txt5
-rw-r--r--test/parse/module/bad-memory-segment-address-oob.txt5
-rw-r--r--test/parse/module/bad-memory-segment-address.txt6
-rw-r--r--test/parse/module/bad-memory-segment-end-oob.txt5
-rw-r--r--test/parse/module/bad-memory-segment-overlap.txt (renamed from test/module/bad-memory-segment-overlap.txt)2
-rw-r--r--test/parse/module/bad-memory-too-many.txt (renamed from test/module/bad-memory-too-many.txt)2
-rw-r--r--test/parse/module/bad-module-no-close.txt5
-rw-r--r--test/parse/module/bad-table-invalid.txt6
-rw-r--r--test/parse/module/bad-table-too-many.txt (renamed from test/module/bad-table-too-many.txt)2
-rw-r--r--test/parse/module/export-multi.txt (renamed from test/module/export-multi.txt)0
-rw-r--r--test/parse/module/export-named.txt (renamed from test/module/export-named.txt)0
-rw-r--r--test/parse/module/export.txt (renamed from test/module/export.txt)0
-rw-r--r--test/parse/module/global-empty.txt (renamed from test/module/global-empty.txt)0
-rw-r--r--test/parse/module/global-many.txt (renamed from test/module/global-many.txt)0
-rw-r--r--test/parse/module/global-named.txt (renamed from test/module/global-named.txt)0
-rw-r--r--test/parse/module/global.txt (renamed from test/module/global.txt)0
-rw-r--r--test/parse/module/import-no-param.txt (renamed from test/module/import-no-param.txt)0
-rw-r--r--test/parse/module/import-type.txt (renamed from test/module/import-type.txt)0
-rw-r--r--test/parse/module/import.txt (renamed from test/module/import.txt)0
-rw-r--r--test/parse/module/memory-init-max-size.txt (renamed from test/module/memory-init-max-size.txt)0
-rw-r--r--test/parse/module/memory-init-size.txt (renamed from test/module/memory-init-size.txt)0
-rw-r--r--test/parse/module/memory-segment-1.txt (renamed from test/module/memory-segment-1.txt)0
-rw-r--r--test/parse/module/memory-segment-many.txt (renamed from test/module/memory-segment-many.txt)0
-rw-r--r--test/parse/module/module-empty.txt (renamed from test/module/module-empty.txt)0
-rw-r--r--test/parse/module/table-named.txt (renamed from test/module/table-named.txt)0
-rw-r--r--test/parse/module/table.txt (renamed from test/module/table.txt)0
-rw-r--r--test/parse/module/type-empty-param.txt (renamed from test/module/type-empty-param.txt)0
-rw-r--r--test/parse/module/type-empty.txt (renamed from test/module/type-empty.txt)0
-rw-r--r--test/parse/module/type-multi-param.txt (renamed from test/module/type-multi-param.txt)0
-rw-r--r--test/parse/module/type-no-param.txt (renamed from test/module/type-no-param.txt)0
-rw-r--r--test/parse/module/type.txt (renamed from test/module/type.txt)0
-rw-r--r--test/parse/nested-comments.txt (renamed from test/nested-comments.txt)0
-rw-r--r--test/parse/string-escape.txt (renamed from test/string-escape.txt)0
-rw-r--r--test/parse/string-hex.txt (renamed from test/string-hex.txt)0
327 files changed, 426 insertions, 426 deletions
diff --git a/test/assert/bad-invoke-no-module.txt b/test/assert/bad-invoke-no-module.txt
deleted file mode 100644
index a43e34fa..00000000
--- a/test/assert/bad-invoke-no-module.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-;;; FLAGS: --spec
-(invoke "foo")
-(;; STDERR ;;;
-assert/bad-invoke-no-module.txt:3:2: invoke must occur after a module definition
-;;; STDERR ;;)
diff --git a/test/bad-single-semicolon.txt b/test/bad-single-semicolon.txt
deleted file mode 100644
index db1b9665..00000000
--- a/test/bad-single-semicolon.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-;;; ERROR: 1
-; foo bar
-(module)
-(;; STDERR ;;;
-bad-single-semicolon.txt:2:1: unexpected char
-bad-single-semicolon.txt:2:3: unexpected token "foo"
-bad-single-semicolon.txt:2:7: unexpected token "bar"
-;;; STDERR ;;)
diff --git a/test/bad-string-eof.txt b/test/bad-string-eof.txt
deleted file mode 100644
index 27fcf0e1..00000000
--- a/test/bad-string-eof.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (func) (export "
-(;; STDERR ;;;
-bad-string-eof.txt:3:25: newline in string
-bad-string-eof.txt:3:25: syntax error, unexpected EOF, expecting TEXT
-;;; STDERR ;;)
diff --git a/test/bad-toplevel.txt b/test/bad-toplevel.txt
deleted file mode 100644
index bc6bb8d4..00000000
--- a/test/bad-toplevel.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-;;; ERROR: 1
-(foo bar)
-(;; STDERR ;;;
-bad-toplevel.txt:2:2: unexpected token "foo"
-bad-toplevel.txt:2:6: unexpected token "bar"
-bad-toplevel.txt:2:9: syntax error, unexpected )
-;;; STDERR ;;)
diff --git a/test/expr/bad-binary-empty.txt b/test/expr/bad-binary-empty.txt
deleted file mode 100644
index 65a98436..00000000
--- a/test/expr/bad-binary-empty.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (i32.add)))
-(;; STDERR ;;;
-expr/bad-binary-empty.txt:2:23: syntax error, unexpected ), expecting (
-;;; STDERR ;;)
diff --git a/test/expr/bad-break-name-undefined.txt b/test/expr/bad-break-name-undefined.txt
deleted file mode 100644
index 3287b5ff..00000000
--- a/test/expr/bad-break-name-undefined.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (break $n)))
-(;; STDERR ;;;
-expr/bad-break-name-undefined.txt:2:22: undefined label variable "$n"
-;;; STDERR ;;)
diff --git a/test/expr/bad-break-no-label.txt b/test/expr/bad-break-no-label.txt
deleted file mode 100644
index 9fddba02..00000000
--- a/test/expr/bad-break-no-label.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (break)))
-(;; STDERR ;;;
-expr/bad-break-no-label.txt:2:16: label variable out of range (max 0)
-;;; STDERR ;;)
diff --git a/test/expr/bad-break-undefined.txt b/test/expr/bad-break-undefined.txt
deleted file mode 100644
index 253c1519..00000000
--- a/test/expr/bad-break-undefined.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (break 0)))
-(;; STDERR ;;;
-expr/bad-break-undefined.txt:2:22: label variable out of range (max 0)
-;;; STDERR ;;)
diff --git a/test/expr/bad-compare-empty.txt b/test/expr/bad-compare-empty.txt
deleted file mode 100644
index b126e462..00000000
--- a/test/expr/bad-compare-empty.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (i32.eq)))
-(;; STDERR ;;;
-expr/bad-compare-empty.txt:2:22: syntax error, unexpected ), expecting (
-;;; STDERR ;;)
diff --git a/test/expr/bad-const-f32-trailing.txt b/test/expr/bad-const-f32-trailing.txt
deleted file mode 100644
index c393ccc9..00000000
--- a/test/expr/bad-const-f32-trailing.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (func (f32.const 1234.5678foo)))
-(;; STDERR ;;;
-expr/bad-const-f32-trailing.txt:2:26: unexpected token "1234.5678foo"
-expr/bad-const-f32-trailing.txt:2:38: syntax error, unexpected ), expecting INT or FLOAT
-;;; STDERR ;;)
diff --git a/test/expr/bad-const-i32-garbage.txt b/test/expr/bad-const-i32-garbage.txt
deleted file mode 100644
index 92b20673..00000000
--- a/test/expr/bad-const-i32-garbage.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (func (i32.const one-hundred)))
-(;; STDERR ;;;
-expr/bad-const-i32-garbage.txt:2:26: unexpected token "one-hundred"
-expr/bad-const-i32-garbage.txt:2:37: syntax error, unexpected ), expecting INT or FLOAT
-;;; STDERR ;;)
diff --git a/test/expr/bad-const-i32-just-negative-sign.txt b/test/expr/bad-const-i32-just-negative-sign.txt
deleted file mode 100644
index b6196ab1..00000000
--- a/test/expr/bad-const-i32-just-negative-sign.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-;;; ERROR: 1
-(module
- (func (i32.const -)))
-(;; STDERR ;;;
-expr/bad-const-i32-just-negative-sign.txt:3:20: unexpected token "-"
-expr/bad-const-i32-just-negative-sign.txt:3:21: syntax error, unexpected ), expecting INT or FLOAT
-;;; STDERR ;;)
diff --git a/test/expr/bad-const-i32-trailing.txt b/test/expr/bad-const-i32-trailing.txt
deleted file mode 100644
index dca49dae..00000000
--- a/test/expr/bad-const-i32-trailing.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (func (i32.const 100x)))
-(;; STDERR ;;;
-expr/bad-const-i32-trailing.txt:2:26: unexpected token "100x"
-expr/bad-const-i32-trailing.txt:2:30: syntax error, unexpected ), expecting INT or FLOAT
-;;; STDERR ;;)
diff --git a/test/expr/bad-convert-float-sign.txt b/test/expr/bad-convert-float-sign.txt
deleted file mode 100644
index 8afb81a2..00000000
--- a/test/expr/bad-convert-float-sign.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (func (f32.converts.f64 (f32.const 0))))
-(;; STDERR ;;;
-expr/bad-convert-float-sign.txt:2:16: unexpected token "f32.converts.f64"
-expr/bad-convert-float-sign.txt:2:33: syntax error, unexpected (
-;;; STDERR ;;)
diff --git a/test/expr/bad-convert-int-no-sign.txt b/test/expr/bad-convert-int-no-sign.txt
deleted file mode 100644
index 9c8a04eb..00000000
--- a/test/expr/bad-convert-int-no-sign.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (func (i32.convert.i32 (i32.const))))
-(;; STDERR ;;;
-expr/bad-convert-int-no-sign.txt:2:16: unexpected token "i32.convert.i32"
-expr/bad-convert-int-no-sign.txt:2:32: syntax error, unexpected (
-;;; STDERR ;;)
diff --git a/test/expr/bad-getlocal-empty.txt b/test/expr/bad-getlocal-empty.txt
deleted file mode 100644
index 5a095240..00000000
--- a/test/expr/bad-getlocal-empty.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (local i32) (get_local)))
-(;; STDERR ;;;
-expr/bad-getlocal-empty.txt:2:37: syntax error, unexpected ), expecting INT or VAR
-;;; STDERR ;;)
diff --git a/test/expr/bad-getlocal-name-undefined.txt b/test/expr/bad-getlocal-name-undefined.txt
deleted file mode 100644
index a5994aa9..00000000
--- a/test/expr/bad-getlocal-name-undefined.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (get_local $n)))
-(;; STDERR ;;;
-expr/bad-getlocal-name-undefined.txt:2:26: undefined local variable "$n"
-;;; STDERR ;;)
diff --git a/test/expr/bad-getlocal-name.txt b/test/expr/bad-getlocal-name.txt
deleted file mode 100644
index 4cfebf2b..00000000
--- a/test/expr/bad-getlocal-name.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (func (local $f f32) (get_local f)))
-(;; STDERR ;;;
-expr/bad-getlocal-name.txt:2:41: unexpected token "f"
-expr/bad-getlocal-name.txt:2:42: syntax error, unexpected ), expecting INT or VAR
-;;; STDERR ;;)
diff --git a/test/expr/bad-getlocal-undefined.txt b/test/expr/bad-getlocal-undefined.txt
deleted file mode 100644
index 13244138..00000000
--- a/test/expr/bad-getlocal-undefined.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (get_local 0)))
-(;; STDERR ;;;
-expr/bad-getlocal-undefined.txt:2:26: local variable out of range (max 0)
-;;; STDERR ;;)
diff --git a/test/expr/bad-label-name-empty.txt b/test/expr/bad-label-name-empty.txt
deleted file mode 100644
index a7501938..00000000
--- a/test/expr/bad-label-name-empty.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (label $foo)))
-(;; STDERR ;;;
-expr/bad-label-name-empty.txt:2:26: syntax error, unexpected ), expecting (
-;;; STDERR ;;)
diff --git a/test/expr/bad-label.txt b/test/expr/bad-label.txt
deleted file mode 100644
index 34ffd474..00000000
--- a/test/expr/bad-label.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (label)))
-(;; STDERR ;;;
-expr/bad-label.txt:2:21: syntax error, unexpected ), expecting (
-;;; STDERR ;;)
diff --git a/test/expr/bad-load-float-sign.txt b/test/expr/bad-load-float-sign.txt
deleted file mode 100644
index d70e1d0a..00000000
--- a/test/expr/bad-load-float-sign.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (func (f32.loads (i32.const 0))))
-(;; STDERR ;;;
-expr/bad-load-float-sign.txt:2:16: unexpected token "f32.loads"
-expr/bad-load-float-sign.txt:2:26: syntax error, unexpected (
-;;; STDERR ;;)
diff --git a/test/expr/bad-load-type.txt b/test/expr/bad-load-type.txt
deleted file mode 100644
index a142e359..00000000
--- a/test/expr/bad-load-type.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (func (load.x32 (i32.const 0))))
-(;; STDERR ;;;
-expr/bad-load-type.txt:2:16: unexpected token "load.x32"
-expr/bad-load-type.txt:2:25: syntax error, unexpected (
-;;; STDERR ;;)
diff --git a/test/expr/bad-loadglobal-name-undefined.txt b/test/expr/bad-loadglobal-name-undefined.txt
deleted file mode 100644
index 0e49554b..00000000
--- a/test/expr/bad-loadglobal-name-undefined.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (load_global $n)))
-(;; STDERR ;;;
-expr/bad-loadglobal-name-undefined.txt:2:28: undefined global variable "$n"
-;;; STDERR ;;)
diff --git a/test/expr/bad-loadglobal-name.txt b/test/expr/bad-loadglobal-name.txt
deleted file mode 100644
index 445f36f7..00000000
--- a/test/expr/bad-loadglobal-name.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-;;; ERROR: 1
-(module (global $n f32)
- (func (load_global n)))
-(;; STDERR ;;;
-expr/bad-loadglobal-name.txt:3:22: unexpected token "n"
-expr/bad-loadglobal-name.txt:3:23: syntax error, unexpected ), expecting INT or VAR
-;;; STDERR ;;)
diff --git a/test/expr/bad-loadglobal-undefined.txt b/test/expr/bad-loadglobal-undefined.txt
deleted file mode 100644
index e14a2d91..00000000
--- a/test/expr/bad-loadglobal-undefined.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (load_global 0)))
-(;; STDERR ;;;
-expr/bad-loadglobal-undefined.txt:2:28: global variable out of range (max 0)
-;;; STDERR ;;)
diff --git a/test/expr/bad-return-too-few.txt b/test/expr/bad-return-too-few.txt
deleted file mode 100644
index 15057a5a..00000000
--- a/test/expr/bad-return-too-few.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-;;; ERROR: 1
-(module
- (func (result i32)
- (return)))
-(;; STDERR ;;;
-expr/bad-return-too-few.txt:4:5: type mismatch of function result. got void, expected i32
-;;; STDERR ;;)
diff --git a/test/expr/bad-setlocal-name.txt b/test/expr/bad-setlocal-name.txt
deleted file mode 100644
index 174d6042..00000000
--- a/test/expr/bad-setlocal-name.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-;;; ERROR: 1
-(module (func
- (local $n i32)
- (set_local n (i32.const 0))))
-(;; STDERR ;;;
-expr/bad-setlocal-name.txt:4:14: unexpected token "n"
-expr/bad-setlocal-name.txt:4:16: syntax error, unexpected (, expecting INT or VAR
-;;; STDERR ;;)
diff --git a/test/expr/bad-store-float.sign.txt b/test/expr/bad-store-float.sign.txt
deleted file mode 100644
index 6dcbf9c8..00000000
--- a/test/expr/bad-store-float.sign.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (func (f32.storeu (i32.const 0) (f32.const 0))))
-(;; STDERR ;;;
-expr/bad-store-float.sign.txt:2:16: unexpected token "f32.storeu"
-expr/bad-store-float.sign.txt:2:27: syntax error, unexpected (
-;;; STDERR ;;)
diff --git a/test/expr/bad-store-type.txt b/test/expr/bad-store-type.txt
deleted file mode 100644
index c0191428..00000000
--- a/test/expr/bad-store-type.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (func (store.float32 (i32.const 0) (f32.const 0))))
-(;; STDERR ;;;
-expr/bad-store-type.txt:2:16: unexpected token "store.float32"
-expr/bad-store-type.txt:2:30: syntax error, unexpected (
-;;; STDERR ;;)
diff --git a/test/expr/bad-storeglobal-name.txt b/test/expr/bad-storeglobal-name.txt
deleted file mode 100644
index 5181c990..00000000
--- a/test/expr/bad-storeglobal-name.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-;;; ERROR: 1
-(module (global $n i32)
- (func (store_global n (i32.const 0))))
-(;; STDERR ;;;
-expr/bad-storeglobal-name.txt:3:23: unexpected token "n"
-expr/bad-storeglobal-name.txt:3:25: syntax error, unexpected (, expecting INT or VAR
-;;; STDERR ;;)
diff --git a/test/expr/bad-unary-empty.txt b/test/expr/bad-unary-empty.txt
deleted file mode 100644
index 51e0d27b..00000000
--- a/test/expr/bad-unary-empty.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (f32.neg)))
-(;; STDERR ;;;
-expr/bad-unary-empty.txt:2:23: syntax error, unexpected ), expecting (
-;;; STDERR ;;)
diff --git a/test/func/bad-local-binding-no-type.txt b/test/func/bad-local-binding-no-type.txt
deleted file mode 100644
index fc8c65ec..00000000
--- a/test/func/bad-local-binding-no-type.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (local $n)))
-(;; STDERR ;;;
-func/bad-local-binding-no-type.txt:2:24: syntax error, unexpected ), expecting VALUE_TYPE
-;;; STDERR ;;)
diff --git a/test/func/bad-local-binding.txt b/test/func/bad-local-binding.txt
deleted file mode 100644
index ee07f35f..00000000
--- a/test/func/bad-local-binding.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (local $foo $bar)))
-(;; STDERR ;;;
-func/bad-local-binding.txt:2:27: syntax error, unexpected VAR, expecting VALUE_TYPE
-;;; STDERR ;;)
diff --git a/test/func/bad-local-name.txt b/test/func/bad-local-name.txt
deleted file mode 100644
index a8e18e6f..00000000
--- a/test/func/bad-local-name.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (local 0 i32)))
-(;; STDERR ;;;
-func/bad-local-name.txt:2:22: syntax error, unexpected INT, expecting ) or VALUE_TYPE
-;;; STDERR ;;)
diff --git a/test/func/bad-param-binding.txt b/test/func/bad-param-binding.txt
deleted file mode 100644
index ffd407e0..00000000
--- a/test/func/bad-param-binding.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (param $bar $baz)))
-(;; STDERR ;;;
-func/bad-param-binding.txt:2:27: syntax error, unexpected VAR, expecting VALUE_TYPE
-;;; STDERR ;;)
diff --git a/test/func/bad-param-name.txt b/test/func/bad-param-name.txt
deleted file mode 100644
index a08b2fd1..00000000
--- a/test/func/bad-param-name.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (param 0 i32)))
-(;; STDERR ;;;
-func/bad-param-name.txt:2:22: syntax error, unexpected INT, expecting ) or VALUE_TYPE
-;;; STDERR ;;)
diff --git a/test/func/bad-result-empty.txt b/test/func/bad-result-empty.txt
deleted file mode 100644
index 4ec51de6..00000000
--- a/test/func/bad-result-empty.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (result)))
-(;; STDERR ;;;
-func/bad-result-empty.txt:2:22: syntax error, unexpected ), expecting VALUE_TYPE
-;;; STDERR ;;)
diff --git a/test/func/bad-result-multi.txt b/test/func/bad-result-multi.txt
deleted file mode 100644
index 0836ccfd..00000000
--- a/test/func/bad-result-multi.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (result i32 i64)))
-(;; STDERR ;;;
-func/bad-result-multi.txt:2:27: syntax error, unexpected VALUE_TYPE, expecting )
-;;; STDERR ;;)
diff --git a/test/func/bad-result-type.txt b/test/func/bad-result-type.txt
deleted file mode 100644
index 103df7d0..00000000
--- a/test/func/bad-result-type.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (func (result foo)))
-(;; STDERR ;;;
-func/bad-result-type.txt:2:23: unexpected token "foo"
-func/bad-result-type.txt:2:26: syntax error, unexpected ), expecting VALUE_TYPE
-;;; STDERR ;;)
diff --git a/test/module/bad-export-empty.txt b/test/module/bad-export-empty.txt
deleted file mode 100644
index 622facdc..00000000
--- a/test/module/bad-export-empty.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (export))
-(;; STDERR ;;;
-module/bad-export-empty.txt:2:16: syntax error, unexpected ), expecting TEXT
-;;; STDERR ;;)
diff --git a/test/module/bad-export-name-undefined.txt b/test/module/bad-export-name-undefined.txt
deleted file mode 100644
index e1091f43..00000000
--- a/test/module/bad-export-name-undefined.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (export "foo" $foo))
-(;; STDERR ;;;
-module/bad-export-name-undefined.txt:2:23: undefined function variable "$foo"
-;;; STDERR ;;)
diff --git a/test/module/bad-export-name.txt b/test/module/bad-export-name.txt
deleted file mode 100644
index 1ebe9f56..00000000
--- a/test/module/bad-export-name.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (export "foo" foo))
-(;; STDERR ;;;
-module/bad-export-name.txt:2:23: unexpected token "foo"
-module/bad-export-name.txt:2:26: syntax error, unexpected ), expecting INT or VAR
-;;; STDERR ;;)
diff --git a/test/module/bad-export-no-string.txt b/test/module/bad-export-no-string.txt
deleted file mode 100644
index c7d68875..00000000
--- a/test/module/bad-export-no-string.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (func (nop)) (export nop nop))
-(;; STDERR ;;;
-module/bad-export-no-string.txt:2:30: syntax error, unexpected NOP, expecting TEXT
-;;; STDERR ;;)
diff --git a/test/module/bad-export-undefined.txt b/test/module/bad-export-undefined.txt
deleted file mode 100644
index 2dc1e5b0..00000000
--- a/test/module/bad-export-undefined.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (export "foo" 0))
-(;; STDERR ;;;
-module/bad-export-undefined.txt:2:23: function variable out of range (max 0)
-;;; STDERR ;;)
diff --git a/test/module/bad-global-binding.txt b/test/module/bad-global-binding.txt
deleted file mode 100644
index fa44cd94..00000000
--- a/test/module/bad-global-binding.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (global $n $foo))
-(;; STDERR ;;;
-module/bad-global-binding.txt:2:20: syntax error, unexpected VAR, expecting VALUE_TYPE
-;;; STDERR ;;)
diff --git a/test/module/bad-global-too-many.txt b/test/module/bad-global-too-many.txt
deleted file mode 100644
index 96eef000..00000000
--- a/test/module/bad-global-too-many.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (global $n i32 i32))
-(;; STDERR ;;;
-module/bad-global-too-many.txt:2:24: syntax error, unexpected VALUE_TYPE, expecting )
-;;; STDERR ;;)
diff --git a/test/module/bad-import-not-param.txt b/test/module/bad-import-not-param.txt
deleted file mode 100644
index 5ea3fe38..00000000
--- a/test/module/bad-import-not-param.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (import "foo" "bar" (parump i32)))
-(;; STDERR ;;;
-module/bad-import-not-param.txt:2:30: unexpected token "parump"
-module/bad-import-not-param.txt:2:37: syntax error, unexpected VALUE_TYPE, expecting TYPE or PARAM or RESULT
-;;; STDERR ;;)
diff --git a/test/module/bad-import-not-result.txt b/test/module/bad-import-not-result.txt
deleted file mode 100644
index 7b779310..00000000
--- a/test/module/bad-import-not-result.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (import "foo" "bar" (param i32) (resalt i32)))
-(;; STDERR ;;;
-module/bad-import-not-result.txt:2:42: unexpected token "resalt"
-module/bad-import-not-result.txt:2:49: syntax error, unexpected VALUE_TYPE, expecting RESULT
-;;; STDERR ;;)
diff --git a/test/module/bad-import-one-string.txt b/test/module/bad-import-one-string.txt
deleted file mode 100644
index 752d24bc..00000000
--- a/test/module/bad-import-one-string.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (import "foo" (param i32)))
-(;; STDERR ;;;
-module/bad-import-one-string.txt:2:23: syntax error, unexpected (, expecting TEXT
-;;; STDERR ;;)
diff --git a/test/module/bad-memory-empty.txt b/test/module/bad-memory-empty.txt
deleted file mode 100644
index d38408fd..00000000
--- a/test/module/bad-memory-empty.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (memory))
-(;; STDERR ;;;
-module/bad-memory-empty.txt:2:16: syntax error, unexpected ), expecting INT
-;;; STDERR ;;)
diff --git a/test/module/bad-memory-init-size-negative.txt b/test/module/bad-memory-init-size-negative.txt
deleted file mode 100644
index 5e4b5ce1..00000000
--- a/test/module/bad-memory-init-size-negative.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (memory -100))
-(;; STDERR ;;;
-module/bad-memory-init-size-negative.txt:2:17: invalid initial memory size "-100"
-;;; STDERR ;;)
diff --git a/test/module/bad-memory-init-size.txt b/test/module/bad-memory-init-size.txt
deleted file mode 100644
index bba09d0d..00000000
--- a/test/module/bad-memory-init-size.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (memory foo))
-(;; STDERR ;;;
-module/bad-memory-init-size.txt:2:17: unexpected token "foo"
-module/bad-memory-init-size.txt:2:20: syntax error, unexpected ), expecting INT
-;;; STDERR ;;)
diff --git a/test/module/bad-memory-max-less-than-init.txt b/test/module/bad-memory-max-less-than-init.txt
deleted file mode 100644
index 1567e380..00000000
--- a/test/module/bad-memory-max-less-than-init.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (memory 100 50))
-(;; STDERR ;;;
-module/bad-memory-max-less-than-init.txt:2:10: max size (50) must be greater than or equal to initial size (100)
-;;; STDERR ;;)
diff --git a/test/module/bad-memory-max-size-negative.txt b/test/module/bad-memory-max-size-negative.txt
deleted file mode 100644
index 83db962d..00000000
--- a/test/module/bad-memory-max-size-negative.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (memory 100 -5))
-(;; STDERR ;;;
-module/bad-memory-max-size-negative.txt:2:21: invalid max memory size "-5"
-;;; STDERR ;;)
diff --git a/test/module/bad-memory-segment-address-negative.txt b/test/module/bad-memory-segment-address-negative.txt
deleted file mode 100644
index a8ef204d..00000000
--- a/test/module/bad-memory-segment-address-negative.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (memory 100 (segment -1 "foo")))
-(;; STDERR ;;;
-module/bad-memory-segment-address-negative.txt:2:30: invalid memory segment address "-1"
-;;; STDERR ;;)
diff --git a/test/module/bad-memory-segment-address-oob.txt b/test/module/bad-memory-segment-address-oob.txt
deleted file mode 100644
index 5f62c3dd..00000000
--- a/test/module/bad-memory-segment-address-oob.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (memory 100 (segment 200 "hi")))
-(;; STDERR ;;;
-module/bad-memory-segment-address-oob.txt:2:22: address (200) greater than initial memory size (100)
-;;; STDERR ;;)
diff --git a/test/module/bad-memory-segment-address.txt b/test/module/bad-memory-segment-address.txt
deleted file mode 100644
index 4c6dea22..00000000
--- a/test/module/bad-memory-segment-address.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module (memory 100 (segment foo)))
-(;; STDERR ;;;
-module/bad-memory-segment-address.txt:2:30: unexpected token "foo"
-module/bad-memory-segment-address.txt:2:33: syntax error, unexpected ), expecting INT
-;;; STDERR ;;)
diff --git a/test/module/bad-memory-segment-end-oob.txt b/test/module/bad-memory-segment-end-oob.txt
deleted file mode 100644
index 698c0cc1..00000000
--- a/test/module/bad-memory-segment-end-oob.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module (memory 10 (segment 5 "56789a")))
-(;; STDERR ;;;
-module/bad-memory-segment-end-oob.txt:2:21: segment ends past the end of initial memory size (10)
-;;; STDERR ;;)
diff --git a/test/module/bad-module-no-close.txt b/test/module/bad-module-no-close.txt
deleted file mode 100644
index 4e58648d..00000000
--- a/test/module/bad-module-no-close.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-;;; ERROR: 1
-(module
-(;; STDERR ;;;
-module/bad-module-no-close.txt:3:8: syntax error, unexpected EOF, expecting ( or )
-;;; STDERR ;;)
diff --git a/test/module/bad-table-invalid.txt b/test/module/bad-table-invalid.txt
deleted file mode 100644
index 3446cbe1..00000000
--- a/test/module/bad-table-invalid.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-;;; ERROR: 1
-(module
- (table 0))
-(;; STDERR ;;;
-module/bad-table-invalid.txt:3:10: function variable out of range (max 0)
-;;; STDERR ;;)
diff --git a/test/assert/assert-after-module.txt b/test/parse/assert/assert-after-module.txt
index 068c3108..068c3108 100644
--- a/test/assert/assert-after-module.txt
+++ b/test/parse/assert/assert-after-module.txt
diff --git a/test/assert/assertinvalid.txt b/test/parse/assert/assertinvalid.txt
index 6245192e..2092de9a 100644
--- a/test/assert/assertinvalid.txt
+++ b/test/parse/assert/assertinvalid.txt
@@ -7,7 +7,7 @@
"type mismatch")
(;; STDOUT ;;;
assert_invalid error:
- assert/assertinvalid.txt:3:46: function variable out of range (max 1)
+ parse/assert/assertinvalid.txt:3:46: function variable out of range (max 1)
assert_invalid error:
- assert/assertinvalid.txt:6:30: type mismatch in nop. got void, expected i32
+ parse/assert/assertinvalid.txt:6:30: type mismatch in nop. got void, expected i32
;;; STDOUT ;;)
diff --git a/test/assert/assertreturn.txt b/test/parse/assert/assertreturn.txt
index b1394fab..b1394fab 100644
--- a/test/assert/assertreturn.txt
+++ b/test/parse/assert/assertreturn.txt
diff --git a/test/assert/assertreturnnan.txt b/test/parse/assert/assertreturnnan.txt
index 5b73a364..5b73a364 100644
--- a/test/assert/assertreturnnan.txt
+++ b/test/parse/assert/assertreturnnan.txt
diff --git a/test/assert/bad-assert-before-module.txt b/test/parse/assert/bad-assert-before-module.txt
index 509f995e..eb60206e 100644
--- a/test/assert/bad-assert-before-module.txt
+++ b/test/parse/assert/bad-assert-before-module.txt
@@ -2,5 +2,5 @@
;;; ERROR: 1
(assert_return (invoke "f") (i32.const 0))
(;; STDERR ;;;
-assert/bad-assert-before-module.txt:3:17: invoke must occur after a module definition
+parse/assert/bad-assert-before-module.txt:3:17: invoke must occur after a module definition
;;; STDERR ;;)
diff --git a/test/assert/bad-assertinvalid-succeeds.txt b/test/parse/assert/bad-assertinvalid-succeeds.txt
index 63c29391..38a457e9 100644
--- a/test/assert/bad-assertinvalid-succeeds.txt
+++ b/test/parse/assert/bad-assertinvalid-succeeds.txt
@@ -4,5 +4,5 @@
(module (func (result i32) (i32.const 0)))
"success")
(;; STDERR ;;;
-assert/bad-assertinvalid-succeeds.txt:4:4: expected module to be invalid
+parse/assert/bad-assertinvalid-succeeds.txt:4:4: expected module to be invalid
;;; STDERR ;;)
diff --git a/test/assert/bad-assertreturn-non-const.txt b/test/parse/assert/bad-assertreturn-non-const.txt
index ce67a9ab..dc45832d 100644
--- a/test/assert/bad-assertreturn-non-const.txt
+++ b/test/parse/assert/bad-assertreturn-non-const.txt
@@ -10,5 +10,5 @@
(f32.add (f32.const 1) (f32.const 10)))
(f32.const 11))
(;; STDERR ;;;
-assert/bad-assertreturn-non-const.txt:10:6: syntax error, unexpected BINARY, expecting CONST
+parse/assert/bad-assertreturn-non-const.txt:10:6: syntax error, unexpected BINARY, expecting CONST
;;; STDERR ;;)
diff --git a/test/assert/bad-assertreturn-too-few.txt b/test/parse/assert/bad-assertreturn-too-few.txt
index a01939e6..cac62e4f 100644
--- a/test/assert/bad-assertreturn-too-few.txt
+++ b/test/parse/assert/bad-assertreturn-too-few.txt
@@ -5,5 +5,5 @@
(export "foo" $foo))
(assert_return (invoke "foo") (i32.const 0))
(;; STDERR ;;;
-assert/bad-assertreturn-too-few.txt:6:17: too few parameters to function. got 0, expected 1
+parse/assert/bad-assertreturn-too-few.txt:6:17: too few parameters to function. got 0, expected 1
;;; STDERR ;;)
diff --git a/test/assert/bad-assertreturn-too-many.txt b/test/parse/assert/bad-assertreturn-too-many.txt
index 52bd3d98..2c5e0eee 100644
--- a/test/assert/bad-assertreturn-too-many.txt
+++ b/test/parse/assert/bad-assertreturn-too-many.txt
@@ -5,5 +5,5 @@
(export "foo" $foo))
(assert_return (invoke "foo" (i32.const 0)) (i32.const 0))
(;; STDERR ;;;
-assert/bad-assertreturn-too-many.txt:6:17: too many parameters to function. got 1, expected 0
+parse/assert/bad-assertreturn-too-many.txt:6:17: too many parameters to function. got 1, expected 0
;;; STDERR ;;)
diff --git a/test/assert/bad-assertreturn-unknown-function.txt b/test/parse/assert/bad-assertreturn-unknown-function.txt
index 1ab5fd46..4284d2a8 100644
--- a/test/assert/bad-assertreturn-unknown-function.txt
+++ b/test/parse/assert/bad-assertreturn-unknown-function.txt
@@ -3,5 +3,5 @@
(module)
(assert_return (invoke "foo") (i32.const 0))
(;; STDERR ;;;
-assert/bad-assertreturn-unknown-function.txt:4:17: unknown function export "foo"
+parse/assert/bad-assertreturn-unknown-function.txt:4:17: unknown function export "foo"
;;; STDERR ;;)
diff --git a/test/assert/bad-assertreturnnan-invalid-return-type.txt b/test/parse/assert/bad-assertreturnnan-invalid-return-type.txt
index 92e26e17..1de5bed6 100644
--- a/test/assert/bad-assertreturnnan-invalid-return-type.txt
+++ b/test/parse/assert/bad-assertreturnnan-invalid-return-type.txt
@@ -6,5 +6,5 @@
(assert_return_nan (invoke "foo"))
(;; STDERR ;;;
-assert/bad-assertreturnnan-invalid-return-type.txt:7:21: type mismatch. got i32, expected f32 or f64
+parse/assert/bad-assertreturnnan-invalid-return-type.txt:7:21: type mismatch. got i32, expected f32 or f64
;;; STDERR ;;)
diff --git a/test/assert/bad-assertreturnnan-too-few.txt b/test/parse/assert/bad-assertreturnnan-too-few.txt
index 9d4a104d..bd414adb 100644
--- a/test/assert/bad-assertreturnnan-too-few.txt
+++ b/test/parse/assert/bad-assertreturnnan-too-few.txt
@@ -5,5 +5,5 @@
(export "foo" $foo))
(assert_return_nan (invoke "foo"))
(;; STDERR ;;;
-assert/bad-assertreturnnan-too-few.txt:6:21: too few parameters to function. got 0, expected 1
+parse/assert/bad-assertreturnnan-too-few.txt:6:21: too few parameters to function. got 0, expected 1
;;; STDERR ;;)
diff --git a/test/assert/bad-assertreturnnan-too-many.txt b/test/parse/assert/bad-assertreturnnan-too-many.txt
index 47285777..572b3539 100644
--- a/test/assert/bad-assertreturnnan-too-many.txt
+++ b/test/parse/assert/bad-assertreturnnan-too-many.txt
@@ -5,5 +5,5 @@
(export "foo" $foo))
(assert_return_nan (invoke "foo" (f32.const 0)))
(;; STDERR ;;;
-assert/bad-assertreturnnan-too-many.txt:6:21: too many parameters to function. got 1, expected 0
+parse/assert/bad-assertreturnnan-too-many.txt:6:21: too many parameters to function. got 1, expected 0
;;; STDERR ;;)
diff --git a/test/assert/bad-assertreturnnan-unknown-function.txt b/test/parse/assert/bad-assertreturnnan-unknown-function.txt
index 4fa88a73..cfdffa04 100644
--- a/test/assert/bad-assertreturnnan-unknown-function.txt
+++ b/test/parse/assert/bad-assertreturnnan-unknown-function.txt
@@ -3,5 +3,5 @@
(module)
(assert_return_nan (invoke "foo"))
(;; STDERR ;;;
-assert/bad-assertreturnnan-unknown-function.txt:4:21: unknown function export "foo"
+parse/assert/bad-assertreturnnan-unknown-function.txt:4:21: unknown function export "foo"
;;; STDERR ;;)
diff --git a/test/parse/assert/bad-invoke-no-module.txt b/test/parse/assert/bad-invoke-no-module.txt
new file mode 100644
index 00000000..52eb24d3
--- /dev/null
+++ b/test/parse/assert/bad-invoke-no-module.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+;;; FLAGS: --spec
+(invoke "foo")
+(;; STDERR ;;;
+parse/assert/bad-invoke-no-module.txt:3:2: invoke must occur after a module definition
+;;; STDERR ;;)
diff --git a/test/assert/bad-invoke-too-few.txt b/test/parse/assert/bad-invoke-too-few.txt
index 390e49fe..8c64ef02 100644
--- a/test/assert/bad-invoke-too-few.txt
+++ b/test/parse/assert/bad-invoke-too-few.txt
@@ -5,5 +5,5 @@
(export "foo" 0))
(invoke "foo")
(;; STDERR ;;;
-assert/bad-invoke-too-few.txt:6:2: too few parameters to function. got 0, expected 1
+parse/assert/bad-invoke-too-few.txt:6:2: too few parameters to function. got 0, expected 1
;;; STDERR ;;)
diff --git a/test/assert/bad-invoke-too-many.txt b/test/parse/assert/bad-invoke-too-many.txt
index 2ade63c8..adb2a283 100644
--- a/test/assert/bad-invoke-too-many.txt
+++ b/test/parse/assert/bad-invoke-too-many.txt
@@ -5,5 +5,5 @@
(export "foo" 0))
(invoke "foo" (i32.const 0) (i32.const 1))
(;; STDERR ;;;
-assert/bad-invoke-too-many.txt:6:2: too many parameters to function. got 2, expected 1
+parse/assert/bad-invoke-too-many.txt:6:2: too many parameters to function. got 2, expected 1
;;; STDERR ;;)
diff --git a/test/assert/bad-invoke-unknown-function.txt b/test/parse/assert/bad-invoke-unknown-function.txt
index ff3ac972..191a6f81 100644
--- a/test/assert/bad-invoke-unknown-function.txt
+++ b/test/parse/assert/bad-invoke-unknown-function.txt
@@ -6,5 +6,5 @@
(invoke "bar")
(;; STDERR ;;;
-assert/bad-invoke-unknown-function.txt:7:2: unknown function export "bar"
+parse/assert/bad-invoke-unknown-function.txt:7:2: unknown function export "bar"
;;; STDERR ;;)
diff --git a/test/assert/invoke.txt b/test/parse/assert/invoke.txt
index d55148fc..d55148fc 100644
--- a/test/assert/invoke.txt
+++ b/test/parse/assert/invoke.txt
diff --git a/test/parse/bad-single-semicolon.txt b/test/parse/bad-single-semicolon.txt
new file mode 100644
index 00000000..7a82bc4f
--- /dev/null
+++ b/test/parse/bad-single-semicolon.txt
@@ -0,0 +1,8 @@
+;;; ERROR: 1
+; foo bar
+(module)
+(;; STDERR ;;;
+parse/bad-single-semicolon.txt:2:1: unexpected char
+parse/bad-single-semicolon.txt:2:3: unexpected token "foo"
+parse/bad-single-semicolon.txt:2:7: unexpected token "bar"
+;;; STDERR ;;)
diff --git a/test/parse/bad-string-eof.txt b/test/parse/bad-string-eof.txt
new file mode 100644
index 00000000..ad3ec5d7
--- /dev/null
+++ b/test/parse/bad-string-eof.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (func) (export "
+(;; STDERR ;;;
+parse/bad-string-eof.txt:3:25: newline in string
+parse/bad-string-eof.txt:3:25: syntax error, unexpected EOF, expecting TEXT
+;;; STDERR ;;)
diff --git a/test/bad-string-escape.txt b/test/parse/bad-string-escape.txt
index 93008935..70d3647e 100644
--- a/test/bad-string-escape.txt
+++ b/test/parse/bad-string-escape.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func) (export "foobar\r\n" 0))
(;; STDERR ;;;
-bad-string-escape.txt:2:31: bad escape "\r"
+parse/bad-string-escape.txt:2:31: bad escape "\r"
;;; STDERR ;;)
diff --git a/test/bad-string-hex-escape.txt b/test/parse/bad-string-hex-escape.txt
index 59aebed7..dea7b401 100644
--- a/test/bad-string-hex-escape.txt
+++ b/test/parse/bad-string-hex-escape.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func) (export "foo\az" 0))
(;; STDERR ;;;
-bad-string-hex-escape.txt:2:28: bad escape "\a"
+parse/bad-string-hex-escape.txt:2:28: bad escape "\a"
;;; STDERR ;;)
diff --git a/test/parse/bad-toplevel.txt b/test/parse/bad-toplevel.txt
new file mode 100644
index 00000000..9b1fe064
--- /dev/null
+++ b/test/parse/bad-toplevel.txt
@@ -0,0 +1,7 @@
+;;; ERROR: 1
+(foo bar)
+(;; STDERR ;;;
+parse/bad-toplevel.txt:2:2: unexpected token "foo"
+parse/bad-toplevel.txt:2:6: unexpected token "bar"
+parse/bad-toplevel.txt:2:9: syntax error, unexpected )
+;;; STDERR ;;)
diff --git a/test/basic.txt b/test/parse/basic.txt
index 8a49c2dd..8a49c2dd 100644
--- a/test/basic.txt
+++ b/test/parse/basic.txt
diff --git a/test/empty-file.txt b/test/parse/empty-file.txt
index 2f8bfc07..2f8bfc07 100644
--- a/test/empty-file.txt
+++ b/test/parse/empty-file.txt
diff --git a/test/parse/expr/bad-binary-empty.txt b/test/parse/expr/bad-binary-empty.txt
new file mode 100644
index 00000000..61ba1f31
--- /dev/null
+++ b/test/parse/expr/bad-binary-empty.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (i32.add)))
+(;; STDERR ;;;
+parse/expr/bad-binary-empty.txt:2:23: syntax error, unexpected ), expecting (
+;;; STDERR ;;)
diff --git a/test/expr/bad-binary-one-expr.txt b/test/parse/expr/bad-binary-one-expr.txt
index 7f3714fa..042310d3 100644
--- a/test/expr/bad-binary-one-expr.txt
+++ b/test/parse/expr/bad-binary-one-expr.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (i32.add (i32.const 0))))
(;; STDERR ;;;
-expr/bad-binary-one-expr.txt:2:37: syntax error, unexpected ), expecting (
+parse/expr/bad-binary-one-expr.txt:2:37: syntax error, unexpected ), expecting (
;;; STDERR ;;)
diff --git a/test/expr/bad-break-bad-depth.txt b/test/parse/expr/bad-break-bad-depth.txt
index 5b81c5dc..1a666eb8 100644
--- a/test/expr/bad-break-bad-depth.txt
+++ b/test/parse/expr/bad-break-bad-depth.txt
@@ -5,5 +5,5 @@
(label ;; 0
(break 2)))))
(;; STDERR ;;;
-expr/bad-break-bad-depth.txt:6:16: label variable out of range (max 2)
+parse/expr/bad-break-bad-depth.txt:6:16: label variable out of range (max 2)
;;; STDERR ;;)
diff --git a/test/expr/bad-break-defined-later.txt b/test/parse/expr/bad-break-defined-later.txt
index ce8fcdaa..c1879bde 100644
--- a/test/expr/bad-break-defined-later.txt
+++ b/test/parse/expr/bad-break-defined-later.txt
@@ -3,5 +3,5 @@
(break 0)
(label (nop))))
(;; STDERR ;;;
-expr/bad-break-defined-later.txt:3:10: label variable out of range (max 0)
+parse/expr/bad-break-defined-later.txt:3:10: label variable out of range (max 0)
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-break-name-undefined.txt b/test/parse/expr/bad-break-name-undefined.txt
new file mode 100644
index 00000000..c02125ee
--- /dev/null
+++ b/test/parse/expr/bad-break-name-undefined.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (break $n)))
+(;; STDERR ;;;
+parse/expr/bad-break-name-undefined.txt:2:22: undefined label variable "$n"
+;;; STDERR ;;)
diff --git a/test/expr/bad-break-name.txt b/test/parse/expr/bad-break-name.txt
index e30551dc..1f8eed9e 100644
--- a/test/expr/bad-break-name.txt
+++ b/test/parse/expr/bad-break-name.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (label $foo (break foo))))
(;; STDERR ;;;
-expr/bad-break-name.txt:2:34: unexpected token "foo"
+parse/expr/bad-break-name.txt:2:34: unexpected token "foo"
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-break-no-label.txt b/test/parse/expr/bad-break-no-label.txt
new file mode 100644
index 00000000..52261560
--- /dev/null
+++ b/test/parse/expr/bad-break-no-label.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (break)))
+(;; STDERR ;;;
+parse/expr/bad-break-no-label.txt:2:16: label variable out of range (max 0)
+;;; STDERR ;;)
diff --git a/test/parse/expr/bad-break-undefined.txt b/test/parse/expr/bad-break-undefined.txt
new file mode 100644
index 00000000..7b9e61e2
--- /dev/null
+++ b/test/parse/expr/bad-break-undefined.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (break 0)))
+(;; STDERR ;;;
+parse/expr/bad-break-undefined.txt:2:22: label variable out of range (max 0)
+;;; STDERR ;;)
diff --git a/test/expr/bad-call-too-few.txt b/test/parse/expr/bad-call-too-few.txt
index 504cdee4..10d3c5c7 100644
--- a/test/expr/bad-call-too-few.txt
+++ b/test/parse/expr/bad-call-too-few.txt
@@ -3,5 +3,5 @@
(func (param i32) (param f32)
(call 0 (i32.const 0))))
(;; STDERR ;;;
-expr/bad-call-too-few.txt:4:5: too few parameters to function. got 1, expected 2
+parse/expr/bad-call-too-few.txt:4:5: too few parameters to function. got 1, expected 2
;;; STDERR ;;)
diff --git a/test/expr/bad-call-too-many.txt b/test/parse/expr/bad-call-too-many.txt
index 41db5ec5..8d1720c6 100644
--- a/test/expr/bad-call-too-many.txt
+++ b/test/parse/expr/bad-call-too-many.txt
@@ -3,5 +3,5 @@
(func (param i32 i64)
(call 0 (i32.const 0) (i64.const 0) (f32.const 0))))
(;; STDERR ;;;
-expr/bad-call-too-many.txt:4:5: too many parameters to function. got 3, expected 2
+parse/expr/bad-call-too-many.txt:4:5: too many parameters to function. got 3, expected 2
;;; STDERR ;;)
diff --git a/test/expr/bad-callimport-too-few.txt b/test/parse/expr/bad-callimport-too-few.txt
index 2e2ef51e..c93a6b65 100644
--- a/test/expr/bad-callimport-too-few.txt
+++ b/test/parse/expr/bad-callimport-too-few.txt
@@ -4,5 +4,5 @@
(func
(call_import 0 (i32.const 0))))
(;; STDERR ;;;
-expr/bad-callimport-too-few.txt:5:5: too few parameters to function. got 1, expected 2
+parse/expr/bad-callimport-too-few.txt:5:5: too few parameters to function. got 1, expected 2
;;; STDERR ;;)
diff --git a/test/expr/bad-callimport-too-many.txt b/test/parse/expr/bad-callimport-too-many.txt
index 91179977..9bee19a0 100644
--- a/test/expr/bad-callimport-too-many.txt
+++ b/test/parse/expr/bad-callimport-too-many.txt
@@ -4,5 +4,5 @@
(func
(call_import 0 (i32.const 0) (i32.const 1) (i32.const 2))))
(;; STDERR ;;;
-expr/bad-callimport-too-many.txt:5:5: too many parameters to function. got 3, expected 2
+parse/expr/bad-callimport-too-many.txt:5:5: too many parameters to function. got 3, expected 2
;;; STDERR ;;)
diff --git a/test/expr/bad-callindirect-empty.txt b/test/parse/expr/bad-callindirect-empty.txt
index 8914f3c4..30cb99ad 100644
--- a/test/expr/bad-callindirect-empty.txt
+++ b/test/parse/expr/bad-callindirect-empty.txt
@@ -4,5 +4,5 @@
(func
(call_indirect $t)))
(;; STDERR ;;;
-expr/bad-callindirect-empty.txt:5:22: syntax error, unexpected ), expecting (
+parse/expr/bad-callindirect-empty.txt:5:22: syntax error, unexpected ), expecting (
;;; STDERR ;;)
diff --git a/test/expr/bad-callindirect-too-few.txt b/test/parse/expr/bad-callindirect-too-few.txt
index fe952a6c..85993a4d 100644
--- a/test/expr/bad-callindirect-too-few.txt
+++ b/test/parse/expr/bad-callindirect-too-few.txt
@@ -4,5 +4,5 @@
(func
(call_indirect $t (i32.const 0))))
(;; STDERR ;;;
-expr/bad-callindirect-too-few.txt:5:5: too few parameters to function. got 0, expected 2
+parse/expr/bad-callindirect-too-few.txt:5:5: too few parameters to function. got 0, expected 2
;;; STDERR ;;)
diff --git a/test/expr/bad-callindirect-too-many.txt b/test/parse/expr/bad-callindirect-too-many.txt
index 32ecf996..bd2f6453 100644
--- a/test/expr/bad-callindirect-too-many.txt
+++ b/test/parse/expr/bad-callindirect-too-many.txt
@@ -4,5 +4,5 @@
(func
(call_indirect $t (i32.const 0) (i32.const 1) (i32.const 2) (i32.const 3))))
(;; STDERR ;;;
-expr/bad-callindirect-too-many.txt:5:5: too many parameters to function. got 3, expected 2
+parse/expr/bad-callindirect-too-many.txt:5:5: too many parameters to function. got 3, expected 2
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-compare-empty.txt b/test/parse/expr/bad-compare-empty.txt
new file mode 100644
index 00000000..19605f82
--- /dev/null
+++ b/test/parse/expr/bad-compare-empty.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (i32.eq)))
+(;; STDERR ;;;
+parse/expr/bad-compare-empty.txt:2:22: syntax error, unexpected ), expecting (
+;;; STDERR ;;)
diff --git a/test/expr/bad-compare-one-expr.txt b/test/parse/expr/bad-compare-one-expr.txt
index d68e3c04..db6c75e7 100644
--- a/test/expr/bad-compare-one-expr.txt
+++ b/test/parse/expr/bad-compare-one-expr.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (i32.lt_s (i32.const 0))))
(;; STDERR ;;;
-expr/bad-compare-one-expr.txt:2:38: syntax error, unexpected ), expecting (
+parse/expr/bad-compare-one-expr.txt:2:38: syntax error, unexpected ), expecting (
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-const-f32-trailing.txt b/test/parse/expr/bad-const-f32-trailing.txt
new file mode 100644
index 00000000..dd3196f1
--- /dev/null
+++ b/test/parse/expr/bad-const-f32-trailing.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (func (f32.const 1234.5678foo)))
+(;; STDERR ;;;
+parse/expr/bad-const-f32-trailing.txt:2:26: unexpected token "1234.5678foo"
+parse/expr/bad-const-f32-trailing.txt:2:38: syntax error, unexpected ), expecting INT or FLOAT
+;;; STDERR ;;)
diff --git a/test/parse/expr/bad-const-i32-garbage.txt b/test/parse/expr/bad-const-i32-garbage.txt
new file mode 100644
index 00000000..ccf6814e
--- /dev/null
+++ b/test/parse/expr/bad-const-i32-garbage.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (func (i32.const one-hundred)))
+(;; STDERR ;;;
+parse/expr/bad-const-i32-garbage.txt:2:26: unexpected token "one-hundred"
+parse/expr/bad-const-i32-garbage.txt:2:37: syntax error, unexpected ), expecting INT or FLOAT
+;;; STDERR ;;)
diff --git a/test/parse/expr/bad-const-i32-just-negative-sign.txt b/test/parse/expr/bad-const-i32-just-negative-sign.txt
new file mode 100644
index 00000000..141c66fd
--- /dev/null
+++ b/test/parse/expr/bad-const-i32-just-negative-sign.txt
@@ -0,0 +1,7 @@
+;;; ERROR: 1
+(module
+ (func (i32.const -)))
+(;; STDERR ;;;
+parse/expr/bad-const-i32-just-negative-sign.txt:3:20: unexpected token "-"
+parse/expr/bad-const-i32-just-negative-sign.txt:3:21: syntax error, unexpected ), expecting INT or FLOAT
+;;; STDERR ;;)
diff --git a/test/expr/bad-const-i32-overflow.txt b/test/parse/expr/bad-const-i32-overflow.txt
index 283895ed..0ea686a2 100644
--- a/test/expr/bad-const-i32-overflow.txt
+++ b/test/parse/expr/bad-const-i32-overflow.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (i32.const 4294967296)))
(;; STDERR ;;;
-expr/bad-const-i32-overflow.txt:2:26: invalid literal "4294967296"
+parse/expr/bad-const-i32-overflow.txt:2:26: invalid literal "4294967296"
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-const-i32-trailing.txt b/test/parse/expr/bad-const-i32-trailing.txt
new file mode 100644
index 00000000..b6f9188f
--- /dev/null
+++ b/test/parse/expr/bad-const-i32-trailing.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (func (i32.const 100x)))
+(;; STDERR ;;;
+parse/expr/bad-const-i32-trailing.txt:2:26: unexpected token "100x"
+parse/expr/bad-const-i32-trailing.txt:2:30: syntax error, unexpected ), expecting INT or FLOAT
+;;; STDERR ;;)
diff --git a/test/expr/bad-const-i32-underflow.txt b/test/parse/expr/bad-const-i32-underflow.txt
index a7f20bda..682d4a37 100644
--- a/test/expr/bad-const-i32-underflow.txt
+++ b/test/parse/expr/bad-const-i32-underflow.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (i32.const -2147483649)))
(;; STDERR ;;;
-expr/bad-const-i32-underflow.txt:2:26: invalid literal "-2147483649"
+parse/expr/bad-const-i32-underflow.txt:2:26: invalid literal "-2147483649"
;;; STDERR ;;)
diff --git a/test/expr/bad-const-i64-overflow.txt b/test/parse/expr/bad-const-i64-overflow.txt
index ce647172..8c8f9a35 100644
--- a/test/expr/bad-const-i64-overflow.txt
+++ b/test/parse/expr/bad-const-i64-overflow.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (i64.const 18446744073709551616)))
(;; STDERR ;;;
-expr/bad-const-i64-overflow.txt:2:26: invalid literal "18446744073709551616"
+parse/expr/bad-const-i64-overflow.txt:2:26: invalid literal "18446744073709551616"
;;; STDERR ;;)
diff --git a/test/expr/bad-convert-empty.txt b/test/parse/expr/bad-convert-empty.txt
index 066c65bc..1ba099a4 100644
--- a/test/expr/bad-convert-empty.txt
+++ b/test/parse/expr/bad-convert-empty.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (f32.convert_s/i32)))
(;; STDERR ;;;
-expr/bad-convert-empty.txt:2:33: syntax error, unexpected ), expecting (
+parse/expr/bad-convert-empty.txt:2:33: syntax error, unexpected ), expecting (
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-convert-float-sign.txt b/test/parse/expr/bad-convert-float-sign.txt
new file mode 100644
index 00000000..be0bcee6
--- /dev/null
+++ b/test/parse/expr/bad-convert-float-sign.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (func (f32.converts.f64 (f32.const 0))))
+(;; STDERR ;;;
+parse/expr/bad-convert-float-sign.txt:2:16: unexpected token "f32.converts.f64"
+parse/expr/bad-convert-float-sign.txt:2:33: syntax error, unexpected (
+;;; STDERR ;;)
diff --git a/test/parse/expr/bad-convert-int-no-sign.txt b/test/parse/expr/bad-convert-int-no-sign.txt
new file mode 100644
index 00000000..8c32a050
--- /dev/null
+++ b/test/parse/expr/bad-convert-int-no-sign.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (func (i32.convert.i32 (i32.const))))
+(;; STDERR ;;;
+parse/expr/bad-convert-int-no-sign.txt:2:16: unexpected token "i32.convert.i32"
+parse/expr/bad-convert-int-no-sign.txt:2:32: syntax error, unexpected (
+;;; STDERR ;;)
diff --git a/test/expr/bad-convert-too-many.txt b/test/parse/expr/bad-convert-too-many.txt
index 50c47252..4789d1cc 100644
--- a/test/expr/bad-convert-too-many.txt
+++ b/test/parse/expr/bad-convert-too-many.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (i32.trunc_s/f32 (f32.const 0) (nop))))
(;; STDERR ;;;
-expr/bad-convert-too-many.txt:2:46: syntax error, unexpected (, expecting )
+parse/expr/bad-convert-too-many.txt:2:46: syntax error, unexpected (, expecting )
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-getlocal-empty.txt b/test/parse/expr/bad-getlocal-empty.txt
new file mode 100644
index 00000000..a16d0792
--- /dev/null
+++ b/test/parse/expr/bad-getlocal-empty.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (local i32) (get_local)))
+(;; STDERR ;;;
+parse/expr/bad-getlocal-empty.txt:2:37: syntax error, unexpected ), expecting INT or VAR
+;;; STDERR ;;)
diff --git a/test/parse/expr/bad-getlocal-name-undefined.txt b/test/parse/expr/bad-getlocal-name-undefined.txt
new file mode 100644
index 00000000..7b8d89c3
--- /dev/null
+++ b/test/parse/expr/bad-getlocal-name-undefined.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (get_local $n)))
+(;; STDERR ;;;
+parse/expr/bad-getlocal-name-undefined.txt:2:26: undefined local variable "$n"
+;;; STDERR ;;)
diff --git a/test/parse/expr/bad-getlocal-name.txt b/test/parse/expr/bad-getlocal-name.txt
new file mode 100644
index 00000000..fa805e7d
--- /dev/null
+++ b/test/parse/expr/bad-getlocal-name.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (func (local $f f32) (get_local f)))
+(;; STDERR ;;;
+parse/expr/bad-getlocal-name.txt:2:41: unexpected token "f"
+parse/expr/bad-getlocal-name.txt:2:42: syntax error, unexpected ), expecting INT or VAR
+;;; STDERR ;;)
diff --git a/test/expr/bad-getlocal-too-many.txt b/test/parse/expr/bad-getlocal-too-many.txt
index 105ef065..4565951d 100644
--- a/test/expr/bad-getlocal-too-many.txt
+++ b/test/parse/expr/bad-getlocal-too-many.txt
@@ -2,5 +2,5 @@
(module (func (local $foo f64)
(get_local $foo (nop))))
(;; STDERR ;;;
-expr/bad-getlocal-too-many.txt:3:19: syntax error, unexpected (, expecting )
+parse/expr/bad-getlocal-too-many.txt:3:19: syntax error, unexpected (, expecting )
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-getlocal-undefined.txt b/test/parse/expr/bad-getlocal-undefined.txt
new file mode 100644
index 00000000..ece6a3ea
--- /dev/null
+++ b/test/parse/expr/bad-getlocal-undefined.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (get_local 0)))
+(;; STDERR ;;;
+parse/expr/bad-getlocal-undefined.txt:2:26: local variable out of range (max 0)
+;;; STDERR ;;)
diff --git a/test/expr/bad-if-no-then.txt b/test/parse/expr/bad-if-no-then.txt
index adbb277b..17b75f83 100644
--- a/test/expr/bad-if-no-then.txt
+++ b/test/parse/expr/bad-if-no-then.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (if (i32.const 0))))
(;; STDERR ;;;
-expr/bad-if-no-then.txt:2:32: syntax error, unexpected ), expecting (
+parse/expr/bad-if-no-then.txt:2:32: syntax error, unexpected ), expecting (
;;; STDERR ;;)
diff --git a/test/expr/bad-if-too-many.txt b/test/parse/expr/bad-if-too-many.txt
index cd9ce131..579fb885 100644
--- a/test/expr/bad-if-too-many.txt
+++ b/test/parse/expr/bad-if-too-many.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (if_else (i32.const 0) (nop) (nop) (nop))))
(;; STDERR ;;;
-expr/bad-if-too-many.txt:2:50: syntax error, unexpected (, expecting )
+parse/expr/bad-if-too-many.txt:2:50: syntax error, unexpected (, expecting )
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-label-name-empty.txt b/test/parse/expr/bad-label-name-empty.txt
new file mode 100644
index 00000000..c0cac924
--- /dev/null
+++ b/test/parse/expr/bad-label-name-empty.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (label $foo)))
+(;; STDERR ;;;
+parse/expr/bad-label-name-empty.txt:2:26: syntax error, unexpected ), expecting (
+;;; STDERR ;;)
diff --git a/test/expr/bad-label-name.txt b/test/parse/expr/bad-label-name.txt
index 8453df1a..a8541fbe 100644
--- a/test/expr/bad-label-name.txt
+++ b/test/parse/expr/bad-label-name.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (label foo (nop))))
(;; STDERR ;;;
-expr/bad-label-name.txt:2:22: unexpected token "foo"
+parse/expr/bad-label-name.txt:2:22: unexpected token "foo"
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-label.txt b/test/parse/expr/bad-label.txt
new file mode 100644
index 00000000..ff7d1934
--- /dev/null
+++ b/test/parse/expr/bad-label.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (label)))
+(;; STDERR ;;;
+parse/expr/bad-label.txt:2:21: syntax error, unexpected ), expecting (
+;;; STDERR ;;)
diff --git a/test/expr/bad-load-align-misspelled.txt b/test/parse/expr/bad-load-align-misspelled.txt
index 0dc18704..239300f4 100644
--- a/test/expr/bad-load-align-misspelled.txt
+++ b/test/parse/expr/bad-load-align-misspelled.txt
@@ -3,5 +3,5 @@
(func
(i32.load aline=64 (i32.const 0))))
(;; STDERR ;;;
-expr/bad-load-align-misspelled.txt:4:15: unexpected token "aline=64"
+parse/expr/bad-load-align-misspelled.txt:4:15: unexpected token "aline=64"
;;; STDERR ;;)
diff --git a/test/expr/bad-load-align-negative.txt b/test/parse/expr/bad-load-align-negative.txt
index 9da86277..15e93ba9 100644
--- a/test/expr/bad-load-align-negative.txt
+++ b/test/parse/expr/bad-load-align-negative.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (i32.load8_s align=-1 (i32.const 0))))
(;; STDERR ;;;
-expr/bad-load-align-negative.txt:2:28: unexpected token "align=-1"
+parse/expr/bad-load-align-negative.txt:2:28: unexpected token "align=-1"
;;; STDERR ;;)
diff --git a/test/expr/bad-load-align-not-pot.txt b/test/parse/expr/bad-load-align-not-pot.txt
index 1af417cb..71b318f7 100644
--- a/test/expr/bad-load-align-not-pot.txt
+++ b/test/parse/expr/bad-load-align-not-pot.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (i32.load align=3 (i32.const 0))))
(;; STDERR ;;;
-expr/bad-load-align-not-pot.txt:2:25: alignment must be power-of-two
+parse/expr/bad-load-align-not-pot.txt:2:25: alignment must be power-of-two
;;; STDERR ;;)
diff --git a/test/expr/bad-load-align.txt b/test/parse/expr/bad-load-align.txt
index d4da9b76..7002a232 100644
--- a/test/expr/bad-load-align.txt
+++ b/test/parse/expr/bad-load-align.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (i32.load align=foo (i32.const 0))))
(;; STDERR ;;;
-expr/bad-load-align.txt:2:25: unexpected token "align=foo"
+parse/expr/bad-load-align.txt:2:25: unexpected token "align=foo"
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-load-float-sign.txt b/test/parse/expr/bad-load-float-sign.txt
new file mode 100644
index 00000000..2eade442
--- /dev/null
+++ b/test/parse/expr/bad-load-float-sign.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (func (f32.loads (i32.const 0))))
+(;; STDERR ;;;
+parse/expr/bad-load-float-sign.txt:2:16: unexpected token "f32.loads"
+parse/expr/bad-load-float-sign.txt:2:26: syntax error, unexpected (
+;;; STDERR ;;)
diff --git a/test/expr/bad-load-offset-negative.txt b/test/parse/expr/bad-load-offset-negative.txt
index 62c1a9be..be5d678d 100644
--- a/test/expr/bad-load-offset-negative.txt
+++ b/test/parse/expr/bad-load-offset-negative.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (i32.load8_s offset=-1 (i32.const 0))))
(;; STDERR ;;;
-expr/bad-load-offset-negative.txt:2:28: unexpected token "offset=-1"
+parse/expr/bad-load-offset-negative.txt:2:28: unexpected token "offset=-1"
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-load-type.txt b/test/parse/expr/bad-load-type.txt
new file mode 100644
index 00000000..2a0d269b
--- /dev/null
+++ b/test/parse/expr/bad-load-type.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (func (load.x32 (i32.const 0))))
+(;; STDERR ;;;
+parse/expr/bad-load-type.txt:2:16: unexpected token "load.x32"
+parse/expr/bad-load-type.txt:2:25: syntax error, unexpected (
+;;; STDERR ;;)
diff --git a/test/expr/bad-loadglobal-empty.txt b/test/parse/expr/bad-loadglobal-empty.txt
index 45229f19..bc911760 100644
--- a/test/expr/bad-loadglobal-empty.txt
+++ b/test/parse/expr/bad-loadglobal-empty.txt
@@ -2,5 +2,5 @@
(module (global $n i32)
(func (load_global)))
(;; STDERR ;;;
-expr/bad-loadglobal-empty.txt:3:21: syntax error, unexpected ), expecting INT or VAR
+parse/expr/bad-loadglobal-empty.txt:3:21: syntax error, unexpected ), expecting INT or VAR
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-loadglobal-name-undefined.txt b/test/parse/expr/bad-loadglobal-name-undefined.txt
new file mode 100644
index 00000000..428a3cc4
--- /dev/null
+++ b/test/parse/expr/bad-loadglobal-name-undefined.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (load_global $n)))
+(;; STDERR ;;;
+parse/expr/bad-loadglobal-name-undefined.txt:2:28: undefined global variable "$n"
+;;; STDERR ;;)
diff --git a/test/parse/expr/bad-loadglobal-name.txt b/test/parse/expr/bad-loadglobal-name.txt
new file mode 100644
index 00000000..c2bf688c
--- /dev/null
+++ b/test/parse/expr/bad-loadglobal-name.txt
@@ -0,0 +1,7 @@
+;;; ERROR: 1
+(module (global $n f32)
+ (func (load_global n)))
+(;; STDERR ;;;
+parse/expr/bad-loadglobal-name.txt:3:22: unexpected token "n"
+parse/expr/bad-loadglobal-name.txt:3:23: syntax error, unexpected ), expecting INT or VAR
+;;; STDERR ;;)
diff --git a/test/expr/bad-loadglobal-too-many.txt b/test/parse/expr/bad-loadglobal-too-many.txt
index e111441f..75203ec6 100644
--- a/test/expr/bad-loadglobal-too-many.txt
+++ b/test/parse/expr/bad-loadglobal-too-many.txt
@@ -2,5 +2,5 @@
(module (global i32)
(func (load_global 0 (nop))))
(;; STDERR ;;;
-expr/bad-loadglobal-too-many.txt:3:24: syntax error, unexpected (, expecting )
+parse/expr/bad-loadglobal-too-many.txt:3:24: syntax error, unexpected (, expecting )
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-loadglobal-undefined.txt b/test/parse/expr/bad-loadglobal-undefined.txt
new file mode 100644
index 00000000..3631bce8
--- /dev/null
+++ b/test/parse/expr/bad-loadglobal-undefined.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (load_global 0)))
+(;; STDERR ;;;
+parse/expr/bad-loadglobal-undefined.txt:2:28: global variable out of range (max 0)
+;;; STDERR ;;)
diff --git a/test/expr/bad-nop.txt b/test/parse/expr/bad-nop.txt
index ee5ffd3e..4a1bde67 100644
--- a/test/expr/bad-nop.txt
+++ b/test/parse/expr/bad-nop.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (nop foo)))
(;; STDERR ;;;
-expr/bad-nop.txt:2:20: unexpected token "foo"
+parse/expr/bad-nop.txt:2:20: unexpected token "foo"
;;; STDERR ;;)
diff --git a/test/expr/bad-return-multi.txt b/test/parse/expr/bad-return-multi.txt
index c06b275f..eae7808d 100644
--- a/test/expr/bad-return-multi.txt
+++ b/test/parse/expr/bad-return-multi.txt
@@ -2,5 +2,5 @@
(module (func (result f32 f32)
(return (f32.const 0) (f32.const 3.14))))
(;; STDERR ;;;
-expr/bad-return-multi.txt:2:27: syntax error, unexpected VALUE_TYPE, expecting )
+parse/expr/bad-return-multi.txt:2:27: syntax error, unexpected VALUE_TYPE, expecting )
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-return-too-few.txt b/test/parse/expr/bad-return-too-few.txt
new file mode 100644
index 00000000..2505ba8c
--- /dev/null
+++ b/test/parse/expr/bad-return-too-few.txt
@@ -0,0 +1,7 @@
+;;; ERROR: 1
+(module
+ (func (result i32)
+ (return)))
+(;; STDERR ;;;
+parse/expr/bad-return-too-few.txt:4:5: type mismatch of function result. got void, expected i32
+;;; STDERR ;;)
diff --git a/test/expr/bad-return-too-many.txt b/test/parse/expr/bad-return-too-many.txt
index 6e93322a..db9e7a0e 100644
--- a/test/expr/bad-return-too-many.txt
+++ b/test/parse/expr/bad-return-too-many.txt
@@ -3,5 +3,5 @@
(func (result i32 i32)
(return (i32.const 0) (i32.const 0) (i32.const 0))))
(;; STDERR ;;;
-expr/bad-return-too-many.txt:3:21: syntax error, unexpected VALUE_TYPE, expecting )
+parse/expr/bad-return-too-many.txt:3:21: syntax error, unexpected VALUE_TYPE, expecting )
;;; STDERR ;;)
diff --git a/test/expr/bad-setlocal-name-undefined.txt b/test/parse/expr/bad-setlocal-name-undefined.txt
index 00494778..1a602730 100644
--- a/test/expr/bad-setlocal-name-undefined.txt
+++ b/test/parse/expr/bad-setlocal-name-undefined.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (set_local $n (i32.const 0))))
(;; STDERR ;;;
-expr/bad-setlocal-name-undefined.txt:2:26: undefined local variable "$n"
+parse/expr/bad-setlocal-name-undefined.txt:2:26: undefined local variable "$n"
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-setlocal-name.txt b/test/parse/expr/bad-setlocal-name.txt
new file mode 100644
index 00000000..a9f76297
--- /dev/null
+++ b/test/parse/expr/bad-setlocal-name.txt
@@ -0,0 +1,8 @@
+;;; ERROR: 1
+(module (func
+ (local $n i32)
+ (set_local n (i32.const 0))))
+(;; STDERR ;;;
+parse/expr/bad-setlocal-name.txt:4:14: unexpected token "n"
+parse/expr/bad-setlocal-name.txt:4:16: syntax error, unexpected (, expecting INT or VAR
+;;; STDERR ;;)
diff --git a/test/expr/bad-setlocal-no-value.txt b/test/parse/expr/bad-setlocal-no-value.txt
index e6d3e41e..233dfacf 100644
--- a/test/expr/bad-setlocal-no-value.txt
+++ b/test/parse/expr/bad-setlocal-no-value.txt
@@ -3,5 +3,5 @@
(local i32)
(set_local 0)))
(;; STDERR ;;;
-expr/bad-setlocal-no-value.txt:4:15: syntax error, unexpected ), expecting (
+parse/expr/bad-setlocal-no-value.txt:4:15: syntax error, unexpected ), expecting (
;;; STDERR ;;)
diff --git a/test/expr/bad-setlocal-too-many.txt b/test/parse/expr/bad-setlocal-too-many.txt
index 8e01607f..8cf3278b 100644
--- a/test/expr/bad-setlocal-too-many.txt
+++ b/test/parse/expr/bad-setlocal-too-many.txt
@@ -3,5 +3,5 @@
(local i32 i32)
(set_local 0 (i32.const 0) (nop))))
(;; STDERR ;;;
-expr/bad-setlocal-too-many.txt:4:30: syntax error, unexpected (, expecting )
+parse/expr/bad-setlocal-too-many.txt:4:30: syntax error, unexpected (, expecting )
;;; STDERR ;;)
diff --git a/test/expr/bad-setlocal-undefined.txt b/test/parse/expr/bad-setlocal-undefined.txt
index 47de8d50..979e701f 100644
--- a/test/expr/bad-setlocal-undefined.txt
+++ b/test/parse/expr/bad-setlocal-undefined.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (set_local 0 (i32.const 0))))
(;; STDERR ;;;
-expr/bad-setlocal-undefined.txt:2:26: local variable out of range (max 0)
+parse/expr/bad-setlocal-undefined.txt:2:26: local variable out of range (max 0)
;;; STDERR ;;)
diff --git a/test/expr/bad-store-align-not-pot.txt b/test/parse/expr/bad-store-align-not-pot.txt
index 0819cd20..38c102ac 100644
--- a/test/expr/bad-store-align-not-pot.txt
+++ b/test/parse/expr/bad-store-align-not-pot.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (f32.store align=3 (i32.const 0) (f32.const 0.0))))
(;; STDERR ;;;
-expr/bad-store-align-not-pot.txt:2:26: alignment must be power-of-two
+parse/expr/bad-store-align-not-pot.txt:2:26: alignment must be power-of-two
;;; STDERR ;;)
diff --git a/test/expr/bad-store-align.txt b/test/parse/expr/bad-store-align.txt
index c5a08123..1e9043f9 100644
--- a/test/expr/bad-store-align.txt
+++ b/test/parse/expr/bad-store-align.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (i32.store align=foo (i32.const 0) (i32.const 0))))
(;; STDERR ;;;
-expr/bad-store-align.txt:2:26: unexpected token "align=foo"
+parse/expr/bad-store-align.txt:2:26: unexpected token "align=foo"
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-store-float.sign.txt b/test/parse/expr/bad-store-float.sign.txt
new file mode 100644
index 00000000..5eac056f
--- /dev/null
+++ b/test/parse/expr/bad-store-float.sign.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (func (f32.storeu (i32.const 0) (f32.const 0))))
+(;; STDERR ;;;
+parse/expr/bad-store-float.sign.txt:2:16: unexpected token "f32.storeu"
+parse/expr/bad-store-float.sign.txt:2:27: syntax error, unexpected (
+;;; STDERR ;;)
diff --git a/test/expr/bad-store-offset-negative.txt b/test/parse/expr/bad-store-offset-negative.txt
index c175a9d7..63529e12 100644
--- a/test/expr/bad-store-offset-negative.txt
+++ b/test/parse/expr/bad-store-offset-negative.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (i32.store8 offset=-1 (i32.const 0) (i32.const 0))))
(;; STDERR ;;;
-expr/bad-store-offset-negative.txt:2:27: unexpected token "offset=-1"
+parse/expr/bad-store-offset-negative.txt:2:27: unexpected token "offset=-1"
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-store-type.txt b/test/parse/expr/bad-store-type.txt
new file mode 100644
index 00000000..fc212cbb
--- /dev/null
+++ b/test/parse/expr/bad-store-type.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (func (store.float32 (i32.const 0) (f32.const 0))))
+(;; STDERR ;;;
+parse/expr/bad-store-type.txt:2:16: unexpected token "store.float32"
+parse/expr/bad-store-type.txt:2:30: syntax error, unexpected (
+;;; STDERR ;;)
diff --git a/test/expr/bad-storeglobal-empty.txt b/test/parse/expr/bad-storeglobal-empty.txt
index 4bfb4b1a..c010f789 100644
--- a/test/expr/bad-storeglobal-empty.txt
+++ b/test/parse/expr/bad-storeglobal-empty.txt
@@ -2,5 +2,5 @@
(module (global i32)
(func (store_global 0)))
(;; STDERR ;;;
-expr/bad-storeglobal-empty.txt:3:24: syntax error, unexpected ), expecting (
+parse/expr/bad-storeglobal-empty.txt:3:24: syntax error, unexpected ), expecting (
;;; STDERR ;;)
diff --git a/test/expr/bad-storeglobal-name-undefined.txt b/test/parse/expr/bad-storeglobal-name-undefined.txt
index a1167bda..771c7296 100644
--- a/test/expr/bad-storeglobal-name-undefined.txt
+++ b/test/parse/expr/bad-storeglobal-name-undefined.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (store_global $n (i32.const 0))))
(;; STDERR ;;;
-expr/bad-storeglobal-name-undefined.txt:2:29: undefined global variable "$n"
+parse/expr/bad-storeglobal-name-undefined.txt:2:29: undefined global variable "$n"
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-storeglobal-name.txt b/test/parse/expr/bad-storeglobal-name.txt
new file mode 100644
index 00000000..de6055da
--- /dev/null
+++ b/test/parse/expr/bad-storeglobal-name.txt
@@ -0,0 +1,7 @@
+;;; ERROR: 1
+(module (global $n i32)
+ (func (store_global n (i32.const 0))))
+(;; STDERR ;;;
+parse/expr/bad-storeglobal-name.txt:3:23: unexpected token "n"
+parse/expr/bad-storeglobal-name.txt:3:25: syntax error, unexpected (, expecting INT or VAR
+;;; STDERR ;;)
diff --git a/test/expr/bad-storeglobal-too-many.txt b/test/parse/expr/bad-storeglobal-too-many.txt
index 8b5187be..087171fe 100644
--- a/test/expr/bad-storeglobal-too-many.txt
+++ b/test/parse/expr/bad-storeglobal-too-many.txt
@@ -2,5 +2,5 @@
(module (global i32)
(func (store_global 0 (i32.const 0) (nop))))
(;; STDERR ;;;
-expr/bad-storeglobal-too-many.txt:3:39: syntax error, unexpected (, expecting )
+parse/expr/bad-storeglobal-too-many.txt:3:39: syntax error, unexpected (, expecting )
;;; STDERR ;;)
diff --git a/test/expr/bad-storeglobal-undefined.txt b/test/parse/expr/bad-storeglobal-undefined.txt
index 2f310a15..65949fe1 100644
--- a/test/expr/bad-storeglobal-undefined.txt
+++ b/test/parse/expr/bad-storeglobal-undefined.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (store_global 0 (i32.const 0))))
(;; STDERR ;;;
-expr/bad-storeglobal-undefined.txt:2:29: global variable out of range (max 0)
+parse/expr/bad-storeglobal-undefined.txt:2:29: global variable out of range (max 0)
;;; STDERR ;;)
diff --git a/test/expr/bad-tableswitch-invalid-case.txt b/test/parse/expr/bad-tableswitch-invalid-case.txt
index a52d02ec..15a2c5f1 100644
--- a/test/expr/bad-tableswitch-invalid-case.txt
+++ b/test/parse/expr/bad-tableswitch-invalid-case.txt
@@ -6,5 +6,5 @@
(table (case 2)) (br 0)
(case (nop))))))
(;; STDERR ;;;
-expr/bad-tableswitch-invalid-case.txt:6:22: case variable out of range (max 1)
+parse/expr/bad-tableswitch-invalid-case.txt:6:22: case variable out of range (max 1)
;;; STDERR ;;)
diff --git a/test/expr/bad-tableswitch-invalid-default-case.txt b/test/parse/expr/bad-tableswitch-invalid-default-case.txt
index cb124dbb..b4aed7bd 100644
--- a/test/expr/bad-tableswitch-invalid-default-case.txt
+++ b/test/parse/expr/bad-tableswitch-invalid-default-case.txt
@@ -5,5 +5,5 @@
(table (case 0)) (case 3)
(case (nop)))))
(;; STDERR ;;;
-expr/bad-tableswitch-invalid-default-case.txt:5:30: case variable out of range (max 1)
+parse/expr/bad-tableswitch-invalid-default-case.txt:5:30: case variable out of range (max 1)
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-unary-empty.txt b/test/parse/expr/bad-unary-empty.txt
new file mode 100644
index 00000000..6eccf037
--- /dev/null
+++ b/test/parse/expr/bad-unary-empty.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (f32.neg)))
+(;; STDERR ;;;
+parse/expr/bad-unary-empty.txt:2:23: syntax error, unexpected ), expecting (
+;;; STDERR ;;)
diff --git a/test/expr/bad-unary-too-many.txt b/test/parse/expr/bad-unary-too-many.txt
index 68222d70..0cfce75e 100644
--- a/test/expr/bad-unary-too-many.txt
+++ b/test/parse/expr/bad-unary-too-many.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (f32.neg (f32.const 0) (f32.const 0))))
(;; STDERR ;;;
-expr/bad-unary-too-many.txt:2:38: syntax error, unexpected (, expecting )
+parse/expr/bad-unary-too-many.txt:2:38: syntax error, unexpected (, expecting )
;;; STDERR ;;)
diff --git a/test/expr/bad-unexpected.txt b/test/parse/expr/bad-unexpected.txt
index b3ee5ae8..c0c69791 100644
--- a/test/expr/bad-unexpected.txt
+++ b/test/parse/expr/bad-unexpected.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (module)))
(;; STDERR ;;;
-expr/bad-unexpected.txt:2:16: syntax error, unexpected MODULE
+parse/expr/bad-unexpected.txt:2:16: syntax error, unexpected MODULE
;;; STDERR ;;)
diff --git a/test/expr/binary.txt b/test/parse/expr/binary.txt
index f4d01090..f4d01090 100644
--- a/test/expr/binary.txt
+++ b/test/parse/expr/binary.txt
diff --git a/test/expr/block-named.txt b/test/parse/expr/block-named.txt
index 24eefe1a..24eefe1a 100644
--- a/test/expr/block-named.txt
+++ b/test/parse/expr/block-named.txt
diff --git a/test/expr/block-return.txt b/test/parse/expr/block-return.txt
index fd334522..fd334522 100644
--- a/test/expr/block-return.txt
+++ b/test/parse/expr/block-return.txt
diff --git a/test/expr/block.txt b/test/parse/expr/block.txt
index adacdde2..adacdde2 100644
--- a/test/expr/block.txt
+++ b/test/parse/expr/block.txt
diff --git a/test/expr/br.txt b/test/parse/expr/br.txt
index 80ca81a9..80ca81a9 100644
--- a/test/expr/br.txt
+++ b/test/parse/expr/br.txt
diff --git a/test/expr/break-block.txt b/test/parse/expr/break-block.txt
index 40f9892b..40f9892b 100644
--- a/test/expr/break-block.txt
+++ b/test/parse/expr/break-block.txt
diff --git a/test/expr/break-loop.txt b/test/parse/expr/break-loop.txt
index 9bc1fc49..9bc1fc49 100644
--- a/test/expr/break-loop.txt
+++ b/test/parse/expr/break-loop.txt
diff --git a/test/expr/break-named.txt b/test/parse/expr/break-named.txt
index 829f0ac2..829f0ac2 100644
--- a/test/expr/break-named.txt
+++ b/test/parse/expr/break-named.txt
diff --git a/test/expr/break.txt b/test/parse/expr/break.txt
index 0b03258e..0b03258e 100644
--- a/test/expr/break.txt
+++ b/test/parse/expr/break.txt
diff --git a/test/expr/brif-named.txt b/test/parse/expr/brif-named.txt
index 03f75691..03f75691 100644
--- a/test/expr/brif-named.txt
+++ b/test/parse/expr/brif-named.txt
diff --git a/test/expr/brif.txt b/test/parse/expr/brif.txt
index 1537232b..1537232b 100644
--- a/test/expr/brif.txt
+++ b/test/parse/expr/brif.txt
diff --git a/test/expr/call-defined-later.txt b/test/parse/expr/call-defined-later.txt
index 7d2286d7..7d2286d7 100644
--- a/test/expr/call-defined-later.txt
+++ b/test/parse/expr/call-defined-later.txt
diff --git a/test/expr/call-empty.txt b/test/parse/expr/call-empty.txt
index 1f35ac84..1f35ac84 100644
--- a/test/expr/call-empty.txt
+++ b/test/parse/expr/call-empty.txt
diff --git a/test/expr/call-name-prefix.txt b/test/parse/expr/call-name-prefix.txt
index c87a3fcb..c87a3fcb 100644
--- a/test/expr/call-name-prefix.txt
+++ b/test/parse/expr/call-name-prefix.txt
diff --git a/test/expr/call-named.txt b/test/parse/expr/call-named.txt
index b95c276d..b95c276d 100644
--- a/test/expr/call-named.txt
+++ b/test/parse/expr/call-named.txt
diff --git a/test/expr/call.txt b/test/parse/expr/call.txt
index 3eea0a25..3eea0a25 100644
--- a/test/expr/call.txt
+++ b/test/parse/expr/call.txt
diff --git a/test/expr/callimport-defined-later.txt b/test/parse/expr/callimport-defined-later.txt
index 956a0070..956a0070 100644
--- a/test/expr/callimport-defined-later.txt
+++ b/test/parse/expr/callimport-defined-later.txt
diff --git a/test/expr/callimport-named.txt b/test/parse/expr/callimport-named.txt
index 0cd1f02d..0cd1f02d 100644
--- a/test/expr/callimport-named.txt
+++ b/test/parse/expr/callimport-named.txt
diff --git a/test/expr/callimport-type.txt b/test/parse/expr/callimport-type.txt
index a6fdd420..a6fdd420 100644
--- a/test/expr/callimport-type.txt
+++ b/test/parse/expr/callimport-type.txt
diff --git a/test/expr/callimport.txt b/test/parse/expr/callimport.txt
index 854aac81..854aac81 100644
--- a/test/expr/callimport.txt
+++ b/test/parse/expr/callimport.txt
diff --git a/test/expr/callindirect-named.txt b/test/parse/expr/callindirect-named.txt
index b2b62ccc..b2b62ccc 100644
--- a/test/expr/callindirect-named.txt
+++ b/test/parse/expr/callindirect-named.txt
diff --git a/test/expr/callindirect.txt b/test/parse/expr/callindirect.txt
index 04da1800..04da1800 100644
--- a/test/expr/callindirect.txt
+++ b/test/parse/expr/callindirect.txt
diff --git a/test/expr/cast.txt b/test/parse/expr/cast.txt
index 5a6a207a..5a6a207a 100644
--- a/test/expr/cast.txt
+++ b/test/parse/expr/cast.txt
diff --git a/test/expr/compare.txt b/test/parse/expr/compare.txt
index 9df5bae3..9df5bae3 100644
--- a/test/expr/compare.txt
+++ b/test/parse/expr/compare.txt
diff --git a/test/expr/const.txt b/test/parse/expr/const.txt
index 16f8bc63..16f8bc63 100644
--- a/test/expr/const.txt
+++ b/test/parse/expr/const.txt
diff --git a/test/expr/convert.txt b/test/parse/expr/convert.txt
index e529ee7c..e529ee7c 100644
--- a/test/expr/convert.txt
+++ b/test/parse/expr/convert.txt
diff --git a/test/expr/expr-break.txt b/test/parse/expr/expr-break.txt
index fdd18ef0..fdd18ef0 100644
--- a/test/expr/expr-break.txt
+++ b/test/parse/expr/expr-break.txt
diff --git a/test/expr/getlocal-index-after-param.txt b/test/parse/expr/getlocal-index-after-param.txt
index 858ab979..858ab979 100644
--- a/test/expr/getlocal-index-after-param.txt
+++ b/test/parse/expr/getlocal-index-after-param.txt
diff --git a/test/expr/getlocal-index-mixed-named-unnamed.txt b/test/parse/expr/getlocal-index-mixed-named-unnamed.txt
index da6fd4b4..da6fd4b4 100644
--- a/test/expr/getlocal-index-mixed-named-unnamed.txt
+++ b/test/parse/expr/getlocal-index-mixed-named-unnamed.txt
diff --git a/test/expr/getlocal-named.txt b/test/parse/expr/getlocal-named.txt
index f6e7a2a5..f6e7a2a5 100644
--- a/test/expr/getlocal-named.txt
+++ b/test/parse/expr/getlocal-named.txt
diff --git a/test/expr/getlocal-param-named.txt b/test/parse/expr/getlocal-param-named.txt
index 4cca059e..4cca059e 100644
--- a/test/expr/getlocal-param-named.txt
+++ b/test/parse/expr/getlocal-param-named.txt
diff --git a/test/expr/getlocal-param.txt b/test/parse/expr/getlocal-param.txt
index 9bcd0f68..9bcd0f68 100644
--- a/test/expr/getlocal-param.txt
+++ b/test/parse/expr/getlocal-param.txt
diff --git a/test/expr/getlocal.txt b/test/parse/expr/getlocal.txt
index 5d6f03d8..5d6f03d8 100644
--- a/test/expr/getlocal.txt
+++ b/test/parse/expr/getlocal.txt
diff --git a/test/expr/if-return.txt b/test/parse/expr/if-return.txt
index a78eda2b..a78eda2b 100644
--- a/test/expr/if-return.txt
+++ b/test/parse/expr/if-return.txt
diff --git a/test/expr/if-then-else.txt b/test/parse/expr/if-then-else.txt
index 66e6e36b..66e6e36b 100644
--- a/test/expr/if-then-else.txt
+++ b/test/parse/expr/if-then-else.txt
diff --git a/test/expr/if.txt b/test/parse/expr/if.txt
index 6adf02bb..6adf02bb 100644
--- a/test/expr/if.txt
+++ b/test/parse/expr/if.txt
diff --git a/test/expr/label-name.txt b/test/parse/expr/label-name.txt
index 333e5f53..333e5f53 100644
--- a/test/expr/label-name.txt
+++ b/test/parse/expr/label-name.txt
diff --git a/test/expr/label.txt b/test/parse/expr/label.txt
index 283bb2fe..283bb2fe 100644
--- a/test/expr/label.txt
+++ b/test/parse/expr/label.txt
diff --git a/test/expr/load-aligned.txt b/test/parse/expr/load-aligned.txt
index f8a2a943..f8a2a943 100644
--- a/test/expr/load-aligned.txt
+++ b/test/parse/expr/load-aligned.txt
diff --git a/test/expr/load-offset.txt b/test/parse/expr/load-offset.txt
index cf294750..cf294750 100644
--- a/test/expr/load-offset.txt
+++ b/test/parse/expr/load-offset.txt
diff --git a/test/expr/load.txt b/test/parse/expr/load.txt
index fc7b3634..fc7b3634 100644
--- a/test/expr/load.txt
+++ b/test/parse/expr/load.txt
diff --git a/test/expr/loadglobal-name.txt b/test/parse/expr/loadglobal-name.txt
index f777fa79..f777fa79 100644
--- a/test/expr/loadglobal-name.txt
+++ b/test/parse/expr/loadglobal-name.txt
diff --git a/test/expr/loadglobal.txt b/test/parse/expr/loadglobal.txt
index dec71a49..dec71a49 100644
--- a/test/expr/loadglobal.txt
+++ b/test/parse/expr/loadglobal.txt
diff --git a/test/expr/loop-empty.txt b/test/parse/expr/loop-empty.txt
index 95b68fed..95b68fed 100644
--- a/test/expr/loop-empty.txt
+++ b/test/parse/expr/loop-empty.txt
diff --git a/test/expr/loop-named.txt b/test/parse/expr/loop-named.txt
index e5b6f539..e5b6f539 100644
--- a/test/expr/loop-named.txt
+++ b/test/parse/expr/loop-named.txt
diff --git a/test/expr/loop.txt b/test/parse/expr/loop.txt
index 45950ee3..45950ee3 100644
--- a/test/expr/loop.txt
+++ b/test/parse/expr/loop.txt
diff --git a/test/expr/memory-size.txt b/test/parse/expr/memory-size.txt
index d180cc96..d180cc96 100644
--- a/test/expr/memory-size.txt
+++ b/test/parse/expr/memory-size.txt
diff --git a/test/expr/nop.txt b/test/parse/expr/nop.txt
index dbec68e4..dbec68e4 100644
--- a/test/expr/nop.txt
+++ b/test/parse/expr/nop.txt
diff --git a/test/expr/resize-memory.txt b/test/parse/expr/resize-memory.txt
index 86795fee..86795fee 100644
--- a/test/expr/resize-memory.txt
+++ b/test/parse/expr/resize-memory.txt
diff --git a/test/expr/return-block.txt b/test/parse/expr/return-block.txt
index 14b5e864..14b5e864 100644
--- a/test/expr/return-block.txt
+++ b/test/parse/expr/return-block.txt
diff --git a/test/expr/return-empty.txt b/test/parse/expr/return-empty.txt
index e8dea706..e8dea706 100644
--- a/test/expr/return-empty.txt
+++ b/test/parse/expr/return-empty.txt
diff --git a/test/expr/return-if.txt b/test/parse/expr/return-if.txt
index 3ce9cdcc..3ce9cdcc 100644
--- a/test/expr/return-if.txt
+++ b/test/parse/expr/return-if.txt
diff --git a/test/expr/return-void.txt b/test/parse/expr/return-void.txt
index 76196f69..76196f69 100644
--- a/test/expr/return-void.txt
+++ b/test/parse/expr/return-void.txt
diff --git a/test/expr/return.txt b/test/parse/expr/return.txt
index 8a49c2dd..8a49c2dd 100644
--- a/test/expr/return.txt
+++ b/test/parse/expr/return.txt
diff --git a/test/expr/select.txt b/test/parse/expr/select.txt
index dc2b41f0..dc2b41f0 100644
--- a/test/expr/select.txt
+++ b/test/parse/expr/select.txt
diff --git a/test/expr/setlocal-index-after-param.txt b/test/parse/expr/setlocal-index-after-param.txt
index b21241de..b21241de 100644
--- a/test/expr/setlocal-index-after-param.txt
+++ b/test/parse/expr/setlocal-index-after-param.txt
diff --git a/test/expr/setlocal-index-mixed-named-unnamed.txt b/test/parse/expr/setlocal-index-mixed-named-unnamed.txt
index 398db637..398db637 100644
--- a/test/expr/setlocal-index-mixed-named-unnamed.txt
+++ b/test/parse/expr/setlocal-index-mixed-named-unnamed.txt
diff --git a/test/expr/setlocal-named.txt b/test/parse/expr/setlocal-named.txt
index 304cebb4..304cebb4 100644
--- a/test/expr/setlocal-named.txt
+++ b/test/parse/expr/setlocal-named.txt
diff --git a/test/expr/setlocal-param-named.txt b/test/parse/expr/setlocal-param-named.txt
index 4642accd..4642accd 100644
--- a/test/expr/setlocal-param-named.txt
+++ b/test/parse/expr/setlocal-param-named.txt
diff --git a/test/expr/setlocal-param.txt b/test/parse/expr/setlocal-param.txt
index f80c2651..f80c2651 100644
--- a/test/expr/setlocal-param.txt
+++ b/test/parse/expr/setlocal-param.txt
diff --git a/test/expr/setlocal.txt b/test/parse/expr/setlocal.txt
index 01cbf799..01cbf799 100644
--- a/test/expr/setlocal.txt
+++ b/test/parse/expr/setlocal.txt
diff --git a/test/expr/store-aligned.txt b/test/parse/expr/store-aligned.txt
index 07bfcd7c..07bfcd7c 100644
--- a/test/expr/store-aligned.txt
+++ b/test/parse/expr/store-aligned.txt
diff --git a/test/expr/store-offset.txt b/test/parse/expr/store-offset.txt
index 0c189c24..0c189c24 100644
--- a/test/expr/store-offset.txt
+++ b/test/parse/expr/store-offset.txt
diff --git a/test/expr/store.txt b/test/parse/expr/store.txt
index d6d9bf3c..d6d9bf3c 100644
--- a/test/expr/store.txt
+++ b/test/parse/expr/store.txt
diff --git a/test/expr/storeglobal-name.txt b/test/parse/expr/storeglobal-name.txt
index 8c774588..8c774588 100644
--- a/test/expr/storeglobal-name.txt
+++ b/test/parse/expr/storeglobal-name.txt
diff --git a/test/expr/storeglobal.txt b/test/parse/expr/storeglobal.txt
index a1526f66..a1526f66 100644
--- a/test/expr/storeglobal.txt
+++ b/test/parse/expr/storeglobal.txt
diff --git a/test/expr/tableswitch-default-br.txt b/test/parse/expr/tableswitch-default-br.txt
index 63425795..63425795 100644
--- a/test/expr/tableswitch-default-br.txt
+++ b/test/parse/expr/tableswitch-default-br.txt
diff --git a/test/expr/tableswitch-empty-case.txt b/test/parse/expr/tableswitch-empty-case.txt
index 1e22e67b..1e22e67b 100644
--- a/test/expr/tableswitch-empty-case.txt
+++ b/test/parse/expr/tableswitch-empty-case.txt
diff --git a/test/expr/tableswitch-empty.txt b/test/parse/expr/tableswitch-empty.txt
index f37ccc97..f37ccc97 100644
--- a/test/expr/tableswitch-empty.txt
+++ b/test/parse/expr/tableswitch-empty.txt
diff --git a/test/expr/tableswitch-multi.txt b/test/parse/expr/tableswitch-multi.txt
index fec4481c..fec4481c 100644
--- a/test/expr/tableswitch-multi.txt
+++ b/test/parse/expr/tableswitch-multi.txt
diff --git a/test/expr/tableswitch-named.txt b/test/parse/expr/tableswitch-named.txt
index 20d0a471..20d0a471 100644
--- a/test/expr/tableswitch-named.txt
+++ b/test/parse/expr/tableswitch-named.txt
diff --git a/test/expr/tableswitch-table-br.txt b/test/parse/expr/tableswitch-table-br.txt
index b996aa7f..b996aa7f 100644
--- a/test/expr/tableswitch-table-br.txt
+++ b/test/parse/expr/tableswitch-table-br.txt
diff --git a/test/expr/tableswitch-unreferenced.txt b/test/parse/expr/tableswitch-unreferenced.txt
index a60f3ed0..a60f3ed0 100644
--- a/test/expr/tableswitch-unreferenced.txt
+++ b/test/parse/expr/tableswitch-unreferenced.txt
diff --git a/test/expr/tableswitch.txt b/test/parse/expr/tableswitch.txt
index aa04a4c6..aa04a4c6 100644
--- a/test/expr/tableswitch.txt
+++ b/test/parse/expr/tableswitch.txt
diff --git a/test/expr/unary.txt b/test/parse/expr/unary.txt
index 64d5a610..64d5a610 100644
--- a/test/expr/unary.txt
+++ b/test/parse/expr/unary.txt
diff --git a/test/expr/unreachable.txt b/test/parse/expr/unreachable.txt
index e72ae48c..e72ae48c 100644
--- a/test/expr/unreachable.txt
+++ b/test/parse/expr/unreachable.txt
diff --git a/test/func/bad-func-name.txt b/test/parse/func/bad-func-name.txt
index 253cb388..94e66244 100644
--- a/test/func/bad-func-name.txt
+++ b/test/parse/func/bad-func-name.txt
@@ -2,5 +2,5 @@
(module
(func foo))
(;; STDERR ;;;
-func/bad-func-name.txt:3:9: unexpected token "foo"
+parse/func/bad-func-name.txt:3:9: unexpected token "foo"
;;; STDERR ;;)
diff --git a/test/parse/func/bad-local-binding-no-type.txt b/test/parse/func/bad-local-binding-no-type.txt
new file mode 100644
index 00000000..84e92047
--- /dev/null
+++ b/test/parse/func/bad-local-binding-no-type.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (local $n)))
+(;; STDERR ;;;
+parse/func/bad-local-binding-no-type.txt:2:24: syntax error, unexpected ), expecting VALUE_TYPE
+;;; STDERR ;;)
diff --git a/test/parse/func/bad-local-binding.txt b/test/parse/func/bad-local-binding.txt
new file mode 100644
index 00000000..d2617ef6
--- /dev/null
+++ b/test/parse/func/bad-local-binding.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (local $foo $bar)))
+(;; STDERR ;;;
+parse/func/bad-local-binding.txt:2:27: syntax error, unexpected VAR, expecting VALUE_TYPE
+;;; STDERR ;;)
diff --git a/test/parse/func/bad-local-name.txt b/test/parse/func/bad-local-name.txt
new file mode 100644
index 00000000..470e28f0
--- /dev/null
+++ b/test/parse/func/bad-local-name.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (local 0 i32)))
+(;; STDERR ;;;
+parse/func/bad-local-name.txt:2:22: syntax error, unexpected INT, expecting ) or VALUE_TYPE
+;;; STDERR ;;)
diff --git a/test/func/bad-local-type-list.txt b/test/parse/func/bad-local-type-list.txt
index 9735386f..bb597741 100644
--- a/test/func/bad-local-type-list.txt
+++ b/test/parse/func/bad-local-type-list.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (local i32 i64 foo f32)))
(;; STDERR ;;;
-func/bad-local-type-list.txt:2:30: unexpected token "foo"
+parse/func/bad-local-type-list.txt:2:30: unexpected token "foo"
;;; STDERR ;;)
diff --git a/test/func/bad-local-type.txt b/test/parse/func/bad-local-type.txt
index e036ee5d..4f901b78 100644
--- a/test/func/bad-local-type.txt
+++ b/test/parse/func/bad-local-type.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (local foo)))
(;; STDERR ;;;
-func/bad-local-type.txt:2:22: unexpected token "foo"
+parse/func/bad-local-type.txt:2:22: unexpected token "foo"
;;; STDERR ;;)
diff --git a/test/func/bad-param-after-local.txt b/test/parse/func/bad-param-after-local.txt
index 1f92484d..b7b71754 100644
--- a/test/func/bad-param-after-local.txt
+++ b/test/parse/func/bad-param-after-local.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (local i32) (param i32)))
(;; STDERR ;;;
-func/bad-param-after-local.txt:2:28: syntax error, unexpected PARAM
+parse/func/bad-param-after-local.txt:2:28: syntax error, unexpected PARAM
;;; STDERR ;;)
diff --git a/test/parse/func/bad-param-binding.txt b/test/parse/func/bad-param-binding.txt
new file mode 100644
index 00000000..aeeca691
--- /dev/null
+++ b/test/parse/func/bad-param-binding.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (param $bar $baz)))
+(;; STDERR ;;;
+parse/func/bad-param-binding.txt:2:27: syntax error, unexpected VAR, expecting VALUE_TYPE
+;;; STDERR ;;)
diff --git a/test/parse/func/bad-param-name.txt b/test/parse/func/bad-param-name.txt
new file mode 100644
index 00000000..ddd4e273
--- /dev/null
+++ b/test/parse/func/bad-param-name.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (param 0 i32)))
+(;; STDERR ;;;
+parse/func/bad-param-name.txt:2:22: syntax error, unexpected INT, expecting ) or VALUE_TYPE
+;;; STDERR ;;)
diff --git a/test/func/bad-param-redefinition.txt b/test/parse/func/bad-param-redefinition.txt
index 5e5fff30..4a57f312 100644
--- a/test/func/bad-param-redefinition.txt
+++ b/test/parse/func/bad-param-redefinition.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (param $n i32) (param $n f32)))
(;; STDERR ;;;
-func/bad-param-redefinition.txt:2:31: redefinition of parameter "$n"
+parse/func/bad-param-redefinition.txt:2:31: redefinition of parameter "$n"
;;; STDERR ;;)
diff --git a/test/func/bad-param-type-list.txt b/test/parse/func/bad-param-type-list.txt
index 511dea90..f2c6d625 100644
--- a/test/func/bad-param-type-list.txt
+++ b/test/parse/func/bad-param-type-list.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (param i32 i64 foo f32)))
(;; STDERR ;;;
-func/bad-param-type-list.txt:2:30: unexpected token "foo"
+parse/func/bad-param-type-list.txt:2:30: unexpected token "foo"
;;; STDERR ;;)
diff --git a/test/func/bad-param.txt b/test/parse/func/bad-param.txt
index 277ef6ae..2f6b6928 100644
--- a/test/func/bad-param.txt
+++ b/test/parse/func/bad-param.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (param foo)))
(;; STDERR ;;;
-func/bad-param.txt:2:22: unexpected token "foo"
+parse/func/bad-param.txt:2:22: unexpected token "foo"
;;; STDERR ;;)
diff --git a/test/parse/func/bad-result-empty.txt b/test/parse/func/bad-result-empty.txt
new file mode 100644
index 00000000..793cda5b
--- /dev/null
+++ b/test/parse/func/bad-result-empty.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (result)))
+(;; STDERR ;;;
+parse/func/bad-result-empty.txt:2:22: syntax error, unexpected ), expecting VALUE_TYPE
+;;; STDERR ;;)
diff --git a/test/parse/func/bad-result-multi.txt b/test/parse/func/bad-result-multi.txt
new file mode 100644
index 00000000..f44a7914
--- /dev/null
+++ b/test/parse/func/bad-result-multi.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (result i32 i64)))
+(;; STDERR ;;;
+parse/func/bad-result-multi.txt:2:27: syntax error, unexpected VALUE_TYPE, expecting )
+;;; STDERR ;;)
diff --git a/test/parse/func/bad-result-type.txt b/test/parse/func/bad-result-type.txt
new file mode 100644
index 00000000..271e0509
--- /dev/null
+++ b/test/parse/func/bad-result-type.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (func (result foo)))
+(;; STDERR ;;;
+parse/func/bad-result-type.txt:2:23: unexpected token "foo"
+parse/func/bad-result-type.txt:2:26: syntax error, unexpected ), expecting VALUE_TYPE
+;;; STDERR ;;)
diff --git a/test/func/bad-sig-param-type-mismatch.txt b/test/parse/func/bad-sig-param-type-mismatch.txt
index 566b71c2..80dc7b42 100644
--- a/test/func/bad-sig-param-type-mismatch.txt
+++ b/test/parse/func/bad-sig-param-type-mismatch.txt
@@ -3,5 +3,5 @@
(type $t (func (param i32 f32)))
(func (type $t) (param f32 f32)))
(;; STDERR ;;;
-func/bad-sig-param-type-mismatch.txt:4:4: type mismatch for argument 0 of function. got f32, expected i32
+parse/func/bad-sig-param-type-mismatch.txt:4:4: type mismatch for argument 0 of function. got f32, expected i32
;;; STDERR ;;)
diff --git a/test/func/bad-sig-params-empty.txt b/test/parse/func/bad-sig-params-empty.txt
index 05d943ba..c15bcf74 100644
--- a/test/func/bad-sig-params-empty.txt
+++ b/test/parse/func/bad-sig-params-empty.txt
@@ -3,5 +3,5 @@
(type $t (func))
(func (type $t) (param i32)))
(;; STDERR ;;;
-func/bad-sig-params-empty.txt:4:4: expected 0 parameters, got 1
+parse/func/bad-sig-params-empty.txt:4:4: expected 0 parameters, got 1
;;; STDERR ;;)
diff --git a/test/func/bad-sig-result-type-mistmatch.txt b/test/parse/func/bad-sig-result-type-mistmatch.txt
index 1c856f69..8f76d62e 100644
--- a/test/func/bad-sig-result-type-mistmatch.txt
+++ b/test/parse/func/bad-sig-result-type-mistmatch.txt
@@ -3,5 +3,5 @@
(type $t (func (param i32) (result f32)))
(func (type $t) (param i32) (result i64)))
(;; STDERR ;;;
-func/bad-sig-result-type-mistmatch.txt:4:4: type mismatch. got i64, expected f32
+parse/func/bad-sig-result-type-mistmatch.txt:4:4: type mismatch. got i64, expected f32
;;; STDERR ;;)
diff --git a/test/func/bad-sig-result-type-not-void.txt b/test/parse/func/bad-sig-result-type-not-void.txt
index a3a9ba0d..505fb621 100644
--- a/test/func/bad-sig-result-type-not-void.txt
+++ b/test/parse/func/bad-sig-result-type-not-void.txt
@@ -3,5 +3,5 @@
(type $t (func (param i32)))
(func (type $t) (param i32) (result f32)))
(;; STDERR ;;;
-func/bad-sig-result-type-not-void.txt:4:4: type mismatch. got f32, expected void
+parse/func/bad-sig-result-type-not-void.txt:4:4: type mismatch. got f32, expected void
;;; STDERR ;;)
diff --git a/test/func/bad-sig-result-type-void.txt b/test/parse/func/bad-sig-result-type-void.txt
index 922fbadb..a99c0d8e 100644
--- a/test/func/bad-sig-result-type-void.txt
+++ b/test/parse/func/bad-sig-result-type-void.txt
@@ -3,5 +3,5 @@
(type $t (func (param i32) (result f32)))
(func (type $t) (param i32)))
(;; STDERR ;;;
-func/bad-sig-result-type-void.txt:4:4: type mismatch. got void, expected f32
+parse/func/bad-sig-result-type-void.txt:4:4: type mismatch. got void, expected f32
;;; STDERR ;;)
diff --git a/test/func/bad-sig-too-few-params.txt b/test/parse/func/bad-sig-too-few-params.txt
index 089fd65b..f588ab95 100644
--- a/test/func/bad-sig-too-few-params.txt
+++ b/test/parse/func/bad-sig-too-few-params.txt
@@ -3,5 +3,5 @@
(type $t (func (param i32 f32)))
(func (type $t) (param i32)))
(;; STDERR ;;;
-func/bad-sig-too-few-params.txt:4:4: expected 2 parameters, got 1
+parse/func/bad-sig-too-few-params.txt:4:4: expected 2 parameters, got 1
;;; STDERR ;;)
diff --git a/test/func/bad-sig-too-many-params.txt b/test/parse/func/bad-sig-too-many-params.txt
index e478ef1d..027f91d7 100644
--- a/test/func/bad-sig-too-many-params.txt
+++ b/test/parse/func/bad-sig-too-many-params.txt
@@ -3,5 +3,5 @@
(type $t (func (param i32)))
(func (type $t) (param i32 i32)))
(;; STDERR ;;;
-func/bad-sig-too-many-params.txt:4:4: expected 1 parameters, got 2
+parse/func/bad-sig-too-many-params.txt:4:4: expected 1 parameters, got 2
;;; STDERR ;;)
diff --git a/test/func/func-named.txt b/test/parse/func/func-named.txt
index f744db34..f744db34 100644
--- a/test/func/func-named.txt
+++ b/test/parse/func/func-named.txt
diff --git a/test/func/local-empty.txt b/test/parse/func/local-empty.txt
index 0c9c3d8f..0c9c3d8f 100644
--- a/test/func/local-empty.txt
+++ b/test/parse/func/local-empty.txt
diff --git a/test/func/local-multi.txt b/test/parse/func/local-multi.txt
index bb5813d2..bb5813d2 100644
--- a/test/func/local-multi.txt
+++ b/test/parse/func/local-multi.txt
diff --git a/test/func/local.txt b/test/parse/func/local.txt
index c5b0149f..c5b0149f 100644
--- a/test/func/local.txt
+++ b/test/parse/func/local.txt
diff --git a/test/func/no-space.txt b/test/parse/func/no-space.txt
index db3827e3..db3827e3 100644
--- a/test/func/no-space.txt
+++ b/test/parse/func/no-space.txt
diff --git a/test/func/param-binding.txt b/test/parse/func/param-binding.txt
index 0d79fef5..0d79fef5 100644
--- a/test/func/param-binding.txt
+++ b/test/parse/func/param-binding.txt
diff --git a/test/func/param-multi.txt b/test/parse/func/param-multi.txt
index 9ab0a662..9ab0a662 100644
--- a/test/func/param-multi.txt
+++ b/test/parse/func/param-multi.txt
diff --git a/test/func/param-type-1.txt b/test/parse/func/param-type-1.txt
index a1aa01b5..a1aa01b5 100644
--- a/test/func/param-type-1.txt
+++ b/test/parse/func/param-type-1.txt
diff --git a/test/func/param-type-2.txt b/test/parse/func/param-type-2.txt
index 19e0dc3a..19e0dc3a 100644
--- a/test/func/param-type-2.txt
+++ b/test/parse/func/param-type-2.txt
diff --git a/test/func/result.txt b/test/parse/func/result.txt
index aa622c78..aa622c78 100644
--- a/test/func/result.txt
+++ b/test/parse/func/result.txt
diff --git a/test/func/sig-match.txt b/test/parse/func/sig-match.txt
index 0042a9f5..0042a9f5 100644
--- a/test/func/sig-match.txt
+++ b/test/parse/func/sig-match.txt
diff --git a/test/func/sig.txt b/test/parse/func/sig.txt
index 649c66c5..649c66c5 100644
--- a/test/func/sig.txt
+++ b/test/parse/func/sig.txt
diff --git a/test/line-comment.txt b/test/parse/line-comment.txt
index d6d9f737..d6d9f737 100644
--- a/test/line-comment.txt
+++ b/test/parse/line-comment.txt
diff --git a/test/parse/module/bad-export-empty.txt b/test/parse/module/bad-export-empty.txt
new file mode 100644
index 00000000..24df1083
--- /dev/null
+++ b/test/parse/module/bad-export-empty.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (export))
+(;; STDERR ;;;
+parse/module/bad-export-empty.txt:2:16: syntax error, unexpected ), expecting TEXT
+;;; STDERR ;;)
diff --git a/test/parse/module/bad-export-name-undefined.txt b/test/parse/module/bad-export-name-undefined.txt
new file mode 100644
index 00000000..a7e3633f
--- /dev/null
+++ b/test/parse/module/bad-export-name-undefined.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (export "foo" $foo))
+(;; STDERR ;;;
+parse/module/bad-export-name-undefined.txt:2:23: undefined function variable "$foo"
+;;; STDERR ;;)
diff --git a/test/parse/module/bad-export-name.txt b/test/parse/module/bad-export-name.txt
new file mode 100644
index 00000000..31614976
--- /dev/null
+++ b/test/parse/module/bad-export-name.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (export "foo" foo))
+(;; STDERR ;;;
+parse/module/bad-export-name.txt:2:23: unexpected token "foo"
+parse/module/bad-export-name.txt:2:26: syntax error, unexpected ), expecting INT or VAR
+;;; STDERR ;;)
diff --git a/test/parse/module/bad-export-no-string.txt b/test/parse/module/bad-export-no-string.txt
new file mode 100644
index 00000000..a80f15d2
--- /dev/null
+++ b/test/parse/module/bad-export-no-string.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (func (nop)) (export nop nop))
+(;; STDERR ;;;
+parse/module/bad-export-no-string.txt:2:30: syntax error, unexpected NOP, expecting TEXT
+;;; STDERR ;;)
diff --git a/test/module/bad-export-too-many.txt b/test/parse/module/bad-export-too-many.txt
index 9cbd6d59..a7eb7cf6 100644
--- a/test/module/bad-export-too-many.txt
+++ b/test/parse/module/bad-export-too-many.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (func (nop)) (export "nop" 0 foo))
(;; STDERR ;;;
-module/bad-export-too-many.txt:2:38: unexpected token "foo"
+parse/module/bad-export-too-many.txt:2:38: unexpected token "foo"
;;; STDERR ;;)
diff --git a/test/parse/module/bad-export-undefined.txt b/test/parse/module/bad-export-undefined.txt
new file mode 100644
index 00000000..a94b77f9
--- /dev/null
+++ b/test/parse/module/bad-export-undefined.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (export "foo" 0))
+(;; STDERR ;;;
+parse/module/bad-export-undefined.txt:2:23: function variable out of range (max 0)
+;;; STDERR ;;)
diff --git a/test/module/bad-func-redefinition.txt b/test/parse/module/bad-func-redefinition.txt
index 17b29166..a05fd93e 100644
--- a/test/module/bad-func-redefinition.txt
+++ b/test/parse/module/bad-func-redefinition.txt
@@ -3,5 +3,5 @@
(func $n (nop))
(func $n (nop)))
(;; STDERR ;;;
-module/bad-func-redefinition.txt:4:3: redefinition of function "$n"
+parse/module/bad-func-redefinition.txt:4:3: redefinition of function "$n"
;;; STDERR ;;)
diff --git a/test/parse/module/bad-global-binding.txt b/test/parse/module/bad-global-binding.txt
new file mode 100644
index 00000000..9e959b4d
--- /dev/null
+++ b/test/parse/module/bad-global-binding.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (global $n $foo))
+(;; STDERR ;;;
+parse/module/bad-global-binding.txt:2:20: syntax error, unexpected VAR, expecting VALUE_TYPE
+;;; STDERR ;;)
diff --git a/test/module/bad-global-redefinition.txt b/test/parse/module/bad-global-redefinition.txt
index 3b6e5af0..c38205d9 100644
--- a/test/module/bad-global-redefinition.txt
+++ b/test/parse/module/bad-global-redefinition.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (global $n i32) (global $n f32))
(;; STDERR ;;;
-module/bad-global-redefinition.txt:2:26: redefinition of global "$n"
+parse/module/bad-global-redefinition.txt:2:26: redefinition of global "$n"
;;; STDERR ;;)
diff --git a/test/parse/module/bad-global-too-many.txt b/test/parse/module/bad-global-too-many.txt
new file mode 100644
index 00000000..fe7f2a58
--- /dev/null
+++ b/test/parse/module/bad-global-too-many.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (global $n i32 i32))
+(;; STDERR ;;;
+parse/module/bad-global-too-many.txt:2:24: syntax error, unexpected VALUE_TYPE, expecting )
+;;; STDERR ;;)
diff --git a/test/module/bad-global-type-list.txt b/test/parse/module/bad-global-type-list.txt
index 808e1c6d..6288dc50 100644
--- a/test/module/bad-global-type-list.txt
+++ b/test/parse/module/bad-global-type-list.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (global i32 i32 foo))
(;; STDERR ;;;
-module/bad-global-type-list.txt:2:25: unexpected token "foo"
+parse/module/bad-global-type-list.txt:2:25: unexpected token "foo"
;;; STDERR ;;)
diff --git a/test/parse/module/bad-import-not-param.txt b/test/parse/module/bad-import-not-param.txt
new file mode 100644
index 00000000..034c3ddc
--- /dev/null
+++ b/test/parse/module/bad-import-not-param.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (import "foo" "bar" (parump i32)))
+(;; STDERR ;;;
+parse/module/bad-import-not-param.txt:2:30: unexpected token "parump"
+parse/module/bad-import-not-param.txt:2:37: syntax error, unexpected VALUE_TYPE, expecting TYPE or PARAM or RESULT
+;;; STDERR ;;)
diff --git a/test/parse/module/bad-import-not-result.txt b/test/parse/module/bad-import-not-result.txt
new file mode 100644
index 00000000..85350405
--- /dev/null
+++ b/test/parse/module/bad-import-not-result.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (import "foo" "bar" (param i32) (resalt i32)))
+(;; STDERR ;;;
+parse/module/bad-import-not-result.txt:2:42: unexpected token "resalt"
+parse/module/bad-import-not-result.txt:2:49: syntax error, unexpected VALUE_TYPE, expecting RESULT
+;;; STDERR ;;)
diff --git a/test/parse/module/bad-import-one-string.txt b/test/parse/module/bad-import-one-string.txt
new file mode 100644
index 00000000..99b87938
--- /dev/null
+++ b/test/parse/module/bad-import-one-string.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (import "foo" (param i32)))
+(;; STDERR ;;;
+parse/module/bad-import-one-string.txt:2:23: syntax error, unexpected (, expecting TEXT
+;;; STDERR ;;)
diff --git a/test/module/bad-import-redefinition.txt b/test/parse/module/bad-import-redefinition.txt
index 864c86a4..49a9f7d8 100644
--- a/test/module/bad-import-redefinition.txt
+++ b/test/parse/module/bad-import-redefinition.txt
@@ -3,5 +3,5 @@
(import $foo "bar" "baz" (param i32))
(import $foo "quux" "blorf" (param f32)))
(;; STDERR ;;;
-module/bad-import-redefinition.txt:4:3: redefinition of import "$foo"
+parse/module/bad-import-redefinition.txt:4:3: redefinition of import "$foo"
;;; STDERR ;;)
diff --git a/test/parse/module/bad-memory-empty.txt b/test/parse/module/bad-memory-empty.txt
new file mode 100644
index 00000000..211468ae
--- /dev/null
+++ b/test/parse/module/bad-memory-empty.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (memory))
+(;; STDERR ;;;
+parse/module/bad-memory-empty.txt:2:16: syntax error, unexpected ), expecting INT
+;;; STDERR ;;)
diff --git a/test/parse/module/bad-memory-init-size-negative.txt b/test/parse/module/bad-memory-init-size-negative.txt
new file mode 100644
index 00000000..2e352fa3
--- /dev/null
+++ b/test/parse/module/bad-memory-init-size-negative.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (memory -100))
+(;; STDERR ;;;
+parse/module/bad-memory-init-size-negative.txt:2:17: invalid initial memory size "-100"
+;;; STDERR ;;)
diff --git a/test/parse/module/bad-memory-init-size.txt b/test/parse/module/bad-memory-init-size.txt
new file mode 100644
index 00000000..b7d935e3
--- /dev/null
+++ b/test/parse/module/bad-memory-init-size.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (memory foo))
+(;; STDERR ;;;
+parse/module/bad-memory-init-size.txt:2:17: unexpected token "foo"
+parse/module/bad-memory-init-size.txt:2:20: syntax error, unexpected ), expecting INT
+;;; STDERR ;;)
diff --git a/test/parse/module/bad-memory-max-less-than-init.txt b/test/parse/module/bad-memory-max-less-than-init.txt
new file mode 100644
index 00000000..0acc7503
--- /dev/null
+++ b/test/parse/module/bad-memory-max-less-than-init.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (memory 100 50))
+(;; STDERR ;;;
+parse/module/bad-memory-max-less-than-init.txt:2:10: max size (50) must be greater than or equal to initial size (100)
+;;; STDERR ;;)
diff --git a/test/parse/module/bad-memory-max-size-negative.txt b/test/parse/module/bad-memory-max-size-negative.txt
new file mode 100644
index 00000000..f1421b1d
--- /dev/null
+++ b/test/parse/module/bad-memory-max-size-negative.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (memory 100 -5))
+(;; STDERR ;;;
+parse/module/bad-memory-max-size-negative.txt:2:21: invalid max memory size "-5"
+;;; STDERR ;;)
diff --git a/test/module/bad-memory-max-size.txt b/test/parse/module/bad-memory-max-size.txt
index bb5bd792..d26f2c86 100644
--- a/test/module/bad-memory-max-size.txt
+++ b/test/parse/module/bad-memory-max-size.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (memory 100 foo))
(;; STDERR ;;;
-module/bad-memory-max-size.txt:2:21: unexpected token "foo"
+parse/module/bad-memory-max-size.txt:2:21: unexpected token "foo"
;;; STDERR ;;)
diff --git a/test/parse/module/bad-memory-segment-address-negative.txt b/test/parse/module/bad-memory-segment-address-negative.txt
new file mode 100644
index 00000000..989300e7
--- /dev/null
+++ b/test/parse/module/bad-memory-segment-address-negative.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (memory 100 (segment -1 "foo")))
+(;; STDERR ;;;
+parse/module/bad-memory-segment-address-negative.txt:2:30: invalid memory segment address "-1"
+;;; STDERR ;;)
diff --git a/test/parse/module/bad-memory-segment-address-oob.txt b/test/parse/module/bad-memory-segment-address-oob.txt
new file mode 100644
index 00000000..d35841a5
--- /dev/null
+++ b/test/parse/module/bad-memory-segment-address-oob.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (memory 100 (segment 200 "hi")))
+(;; STDERR ;;;
+parse/module/bad-memory-segment-address-oob.txt:2:22: address (200) greater than initial memory size (100)
+;;; STDERR ;;)
diff --git a/test/parse/module/bad-memory-segment-address.txt b/test/parse/module/bad-memory-segment-address.txt
new file mode 100644
index 00000000..8023e329
--- /dev/null
+++ b/test/parse/module/bad-memory-segment-address.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module (memory 100 (segment foo)))
+(;; STDERR ;;;
+parse/module/bad-memory-segment-address.txt:2:30: unexpected token "foo"
+parse/module/bad-memory-segment-address.txt:2:33: syntax error, unexpected ), expecting INT
+;;; STDERR ;;)
diff --git a/test/parse/module/bad-memory-segment-end-oob.txt b/test/parse/module/bad-memory-segment-end-oob.txt
new file mode 100644
index 00000000..16594a69
--- /dev/null
+++ b/test/parse/module/bad-memory-segment-end-oob.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module (memory 10 (segment 5 "56789a")))
+(;; STDERR ;;;
+parse/module/bad-memory-segment-end-oob.txt:2:21: segment ends past the end of initial memory size (10)
+;;; STDERR ;;)
diff --git a/test/module/bad-memory-segment-overlap.txt b/test/parse/module/bad-memory-segment-overlap.txt
index 4eea4bc4..fbd211e9 100644
--- a/test/module/bad-memory-segment-overlap.txt
+++ b/test/parse/module/bad-memory-segment-overlap.txt
@@ -1,5 +1,5 @@
;;; ERROR: 1
(module (memory 100 (segment 0 "hello") (segment 3 "hi")))
(;; STDERR ;;;
-module/bad-memory-segment-overlap.txt:2:42: address (3) less than end of previous segment (5)
+parse/module/bad-memory-segment-overlap.txt:2:42: address (3) less than end of previous segment (5)
;;; STDERR ;;)
diff --git a/test/module/bad-memory-too-many.txt b/test/parse/module/bad-memory-too-many.txt
index e39f50d9..07c62fb3 100644
--- a/test/module/bad-memory-too-many.txt
+++ b/test/parse/module/bad-memory-too-many.txt
@@ -3,5 +3,5 @@
(memory 100)
(memory 1000))
(;; STDERR ;;;
-module/bad-memory-too-many.txt:4:3: only one memory block allowed
+parse/module/bad-memory-too-many.txt:4:3: only one memory block allowed
;;; STDERR ;;)
diff --git a/test/parse/module/bad-module-no-close.txt b/test/parse/module/bad-module-no-close.txt
new file mode 100644
index 00000000..31cec0fb
--- /dev/null
+++ b/test/parse/module/bad-module-no-close.txt
@@ -0,0 +1,5 @@
+;;; ERROR: 1
+(module
+(;; STDERR ;;;
+parse/module/bad-module-no-close.txt:3:8: syntax error, unexpected EOF, expecting ( or )
+;;; STDERR ;;)
diff --git a/test/parse/module/bad-table-invalid.txt b/test/parse/module/bad-table-invalid.txt
new file mode 100644
index 00000000..b3c34c96
--- /dev/null
+++ b/test/parse/module/bad-table-invalid.txt
@@ -0,0 +1,6 @@
+;;; ERROR: 1
+(module
+ (table 0))
+(;; STDERR ;;;
+parse/module/bad-table-invalid.txt:3:10: function variable out of range (max 0)
+;;; STDERR ;;)
diff --git a/test/module/bad-table-too-many.txt b/test/parse/module/bad-table-too-many.txt
index 935aaa8e..f32bf240 100644
--- a/test/module/bad-table-too-many.txt
+++ b/test/parse/module/bad-table-too-many.txt
@@ -4,5 +4,5 @@
(table 0)
(table 0))
(;; STDERR ;;;
-module/bad-table-too-many.txt:5:3: only one table allowed
+parse/module/bad-table-too-many.txt:5:3: only one table allowed
;;; STDERR ;;)
diff --git a/test/module/export-multi.txt b/test/parse/module/export-multi.txt
index a356fc4b..a356fc4b 100644
--- a/test/module/export-multi.txt
+++ b/test/parse/module/export-multi.txt
diff --git a/test/module/export-named.txt b/test/parse/module/export-named.txt
index 9f0e7c73..9f0e7c73 100644
--- a/test/module/export-named.txt
+++ b/test/parse/module/export-named.txt
diff --git a/test/module/export.txt b/test/parse/module/export.txt
index 6ffe9f31..6ffe9f31 100644
--- a/test/module/export.txt
+++ b/test/parse/module/export.txt
diff --git a/test/module/global-empty.txt b/test/parse/module/global-empty.txt
index 255dff6a..255dff6a 100644
--- a/test/module/global-empty.txt
+++ b/test/parse/module/global-empty.txt
diff --git a/test/module/global-many.txt b/test/parse/module/global-many.txt
index 46d40c03..46d40c03 100644
--- a/test/module/global-many.txt
+++ b/test/parse/module/global-many.txt
diff --git a/test/module/global-named.txt b/test/parse/module/global-named.txt
index e7909ff6..e7909ff6 100644
--- a/test/module/global-named.txt
+++ b/test/parse/module/global-named.txt
diff --git a/test/module/global.txt b/test/parse/module/global.txt
index 29abea09..29abea09 100644
--- a/test/module/global.txt
+++ b/test/parse/module/global.txt
diff --git a/test/module/import-no-param.txt b/test/parse/module/import-no-param.txt
index 6c1c2fae..6c1c2fae 100644
--- a/test/module/import-no-param.txt
+++ b/test/parse/module/import-no-param.txt
diff --git a/test/module/import-type.txt b/test/parse/module/import-type.txt
index b50c080e..b50c080e 100644
--- a/test/module/import-type.txt
+++ b/test/parse/module/import-type.txt
diff --git a/test/module/import.txt b/test/parse/module/import.txt
index 6786fbc1..6786fbc1 100644
--- a/test/module/import.txt
+++ b/test/parse/module/import.txt
diff --git a/test/module/memory-init-max-size.txt b/test/parse/module/memory-init-max-size.txt
index ecefc97c..ecefc97c 100644
--- a/test/module/memory-init-max-size.txt
+++ b/test/parse/module/memory-init-max-size.txt
diff --git a/test/module/memory-init-size.txt b/test/parse/module/memory-init-size.txt
index ee26fe96..ee26fe96 100644
--- a/test/module/memory-init-size.txt
+++ b/test/parse/module/memory-init-size.txt
diff --git a/test/module/memory-segment-1.txt b/test/parse/module/memory-segment-1.txt
index 062a5942..062a5942 100644
--- a/test/module/memory-segment-1.txt
+++ b/test/parse/module/memory-segment-1.txt
diff --git a/test/module/memory-segment-many.txt b/test/parse/module/memory-segment-many.txt
index 5a0075e1..5a0075e1 100644
--- a/test/module/memory-segment-many.txt
+++ b/test/parse/module/memory-segment-many.txt
diff --git a/test/module/module-empty.txt b/test/parse/module/module-empty.txt
index 3af8f254..3af8f254 100644
--- a/test/module/module-empty.txt
+++ b/test/parse/module/module-empty.txt
diff --git a/test/module/table-named.txt b/test/parse/module/table-named.txt
index d769a079..d769a079 100644
--- a/test/module/table-named.txt
+++ b/test/parse/module/table-named.txt
diff --git a/test/module/table.txt b/test/parse/module/table.txt
index 730a934b..730a934b 100644
--- a/test/module/table.txt
+++ b/test/parse/module/table.txt
diff --git a/test/module/type-empty-param.txt b/test/parse/module/type-empty-param.txt
index 69a7cf42..69a7cf42 100644
--- a/test/module/type-empty-param.txt
+++ b/test/parse/module/type-empty-param.txt
diff --git a/test/module/type-empty.txt b/test/parse/module/type-empty.txt
index d75fc4cf..d75fc4cf 100644
--- a/test/module/type-empty.txt
+++ b/test/parse/module/type-empty.txt
diff --git a/test/module/type-multi-param.txt b/test/parse/module/type-multi-param.txt
index a6176872..a6176872 100644
--- a/test/module/type-multi-param.txt
+++ b/test/parse/module/type-multi-param.txt
diff --git a/test/module/type-no-param.txt b/test/parse/module/type-no-param.txt
index b3fc19e3..b3fc19e3 100644
--- a/test/module/type-no-param.txt
+++ b/test/parse/module/type-no-param.txt
diff --git a/test/module/type.txt b/test/parse/module/type.txt
index 6d915a83..6d915a83 100644
--- a/test/module/type.txt
+++ b/test/parse/module/type.txt
diff --git a/test/nested-comments.txt b/test/parse/nested-comments.txt
index 89250f84..89250f84 100644
--- a/test/nested-comments.txt
+++ b/test/parse/nested-comments.txt
diff --git a/test/string-escape.txt b/test/parse/string-escape.txt
index 29b4ea38..29b4ea38 100644
--- a/test/string-escape.txt
+++ b/test/parse/string-escape.txt
diff --git a/test/string-hex.txt b/test/parse/string-hex.txt
index 7c64fe4e..7c64fe4e 100644
--- a/test/string-hex.txt
+++ b/test/parse/string-hex.txt