diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2019-04-16 16:47:50 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-16 16:47:50 -0700 |
commit | 4d81752204fede13d6513def4195aabe66c5586f (patch) | |
tree | f6322eaa40e0fc38beaa7ca68dc3b55b8629f473 /test | |
parent | 698fddca4e598cb4f72fe61557c9f91ed879a289 (diff) | |
download | binaryen-4d81752204fede13d6513def4195aabe66c5586f.tar.gz binaryen-4d81752204fede13d6513def4195aabe66c5586f.tar.bz2 binaryen-4d81752204fede13d6513def4195aabe66c5586f.zip |
Change default feature set to MVP (#1993)
In the absence of the target features section or command line flags. When there are command line flags, it is an error if they do not exactly match the target features section, except if --detect-features has been provided.
Also adds a --print-features pass to print the command line flags for all enabled options and uses it to make the feature tests more rigorous.
Diffstat (limited to 'test')
-rw-r--r-- | test/lld/duplicate_imports.wast.out | 7 | ||||
-rw-r--r-- | test/lld/em_asm.wast.mem.out | 7 | ||||
-rw-r--r-- | test/lld/em_asm.wast.out | 7 | ||||
-rw-r--r-- | test/lld/em_asm_O0.wast.out | 7 | ||||
-rw-r--r-- | test/lld/em_asm_shared.wast.out | 7 | ||||
-rw-r--r-- | test/lld/em_asm_table.wast.out | 7 | ||||
-rw-r--r-- | test/lld/em_js_O0.wast.out | 7 | ||||
-rw-r--r-- | test/lld/hello_world.wast.mem.out | 7 | ||||
-rw-r--r-- | test/lld/hello_world.wast.out | 7 | ||||
-rw-r--r-- | test/lld/init.wast.out | 7 | ||||
-rw-r--r-- | test/lld/recursive.wast.out | 7 | ||||
-rw-r--r-- | test/lld/reserved_func_ptr.wast.out | 7 | ||||
-rw-r--r-- | test/lld/shared.wast.out | 7 | ||||
-rw-r--r-- | test/passes/code-folding_enable-threads.txt (renamed from test/passes/code-folding.txt) | 0 | ||||
-rw-r--r-- | test/passes/code-folding_enable-threads.wast (renamed from test/passes/code-folding.wast) | 0 | ||||
-rw-r--r-- | test/passes/flatten_dfo_O3_enable-threads.txt (renamed from test/passes/flatten_dfo_O3.txt) | 0 | ||||
-rw-r--r-- | test/passes/flatten_dfo_O3_enable-threads.wast (renamed from test/passes/flatten_dfo_O3.wast) | 0 | ||||
-rw-r--r-- | test/passes/flatten_simplify-locals-nonesting_souperify-single-use_enable-threads.txt (renamed from test/passes/flatten_simplify-locals-nonesting_souperify-single-use.txt) | 0 | ||||
-rw-r--r-- | test/passes/flatten_simplify-locals-nonesting_souperify-single-use_enable-threads.wast (renamed from test/passes/flatten_simplify-locals-nonesting_souperify-single-use.wast) | 0 | ||||
-rw-r--r-- | test/passes/flatten_simplify-locals-nonesting_souperify_enable-threads.txt (renamed from test/passes/flatten_simplify-locals-nonesting_souperify.txt) | 0 | ||||
-rw-r--r-- | test/passes/flatten_simplify-locals-nonesting_souperify_enable-threads.wast (renamed from test/passes/flatten_simplify-locals-nonesting_souperify.wast) | 0 | ||||
-rw-r--r-- | test/passes/fuzz-exec_enable-sign-ext.txt (renamed from test/passes/fuzz-exec.txt) | 0 | ||||
-rw-r--r-- | test/passes/fuzz-exec_enable-sign-ext.wast (renamed from test/passes/fuzz-exec.wast) | 0 | ||||
-rw-r--r-- | test/passes/inlining-optimizing_enable-threads.txt (renamed from test/passes/inlining-optimizing.txt) | 0 | ||||
-rw-r--r-- | test/passes/inlining-optimizing_enable-threads.wast (renamed from test/passes/inlining-optimizing.wast) | 0 | ||||
-rw-r--r-- | test/passes/optimize-instructions_enable-threads.txt (renamed from test/passes/optimize-instructions.txt) | 0 | ||||
-rw-r--r-- | test/passes/optimize-instructions_enable-threads.wast (renamed from test/passes/optimize-instructions.wast) | 0 | ||||
-rw-r--r-- | test/passes/precompute_enable-simd.txt (renamed from test/passes/precompute.txt) | 0 | ||||
-rw-r--r-- | test/passes/precompute_enable-simd.wast (renamed from test/passes/precompute.wast) | 0 | ||||
-rw-r--r-- | test/passes/remove-unused-module-elements_enable-threads.txt (renamed from test/passes/remove-unused-module-elements.txt) | 0 | ||||
-rw-r--r-- | test/passes/remove-unused-module-elements_enable-threads.wast (renamed from test/passes/remove-unused-module-elements.wast) | 0 | ||||
-rw-r--r-- | test/passes/remove-unused-names_merge-blocks_enable-threads.txt (renamed from test/passes/remove-unused-names_merge-blocks.txt) | 0 | ||||
-rw-r--r-- | test/passes/remove-unused-names_merge-blocks_enable-threads.wast (renamed from test/passes/remove-unused-names_merge-blocks.wast) | 0 | ||||
-rw-r--r-- | test/passes/remove-unused-nonfunction-module-elements_enable-threads.txt (renamed from test/passes/remove-unused-nonfunction-module-elements.txt) | 0 | ||||
-rw-r--r-- | test/passes/remove-unused-nonfunction-module-elements_enable-threads.wast (renamed from test/passes/remove-unused-nonfunction-module-elements.wast) | 0 | ||||
-rw-r--r-- | test/passes/safe-heap_enable-threads_enable-simd.txt (renamed from test/passes/safe-heap.txt) | 0 | ||||
-rw-r--r-- | test/passes/safe-heap_enable-threads_enable-simd.wast (renamed from test/passes/safe-heap.wast) | 0 | ||||
-rw-r--r-- | test/passes/safe-heap_low-memory-unused_enable-threads_enable-simd.txt (renamed from test/passes/safe-heap_low-memory-unused.txt) | 0 | ||||
-rw-r--r-- | test/passes/safe-heap_low-memory-unused_enable-threads_enable-simd.wast (renamed from test/passes/safe-heap_low-memory-unused.wast) | 0 | ||||
-rw-r--r-- | test/passes/simplify-locals_all-features.txt (renamed from test/passes/simplify-locals.txt) | 0 | ||||
-rw-r--r-- | test/passes/simplify-locals_all-features.wast (renamed from test/passes/simplify-locals.wast) | 0 | ||||
-rw-r--r-- | test/passes/ssa_enable-threads.txt (renamed from test/passes/ssa.txt) | 0 | ||||
-rw-r--r-- | test/passes/ssa_enable-threads.wast (renamed from test/passes/ssa.wast) | 0 | ||||
-rw-r--r-- | test/passes/ssa_fuzz-exec_enable-threads.txt (renamed from test/passes/ssa_fuzz-exec.txt) | 0 | ||||
-rw-r--r-- | test/passes/ssa_fuzz-exec_enable-threads.wast (renamed from test/passes/ssa_fuzz-exec.wast) | 0 | ||||
-rw-r--r-- | test/passes/translate-to-fuzz_all-features.txt (renamed from test/passes/translate-to-fuzz.txt) | 0 | ||||
-rw-r--r-- | test/passes/translate-to-fuzz_all-features.wast (renamed from test/passes/translate-to-fuzz.wast) | 0 | ||||
-rw-r--r-- | test/passes/translate-to-fuzz_no-fuzz-nans_all-features.txt (renamed from test/passes/translate-to-fuzz_no-fuzz-nans.txt) | 0 | ||||
-rw-r--r-- | test/passes/translate-to-fuzz_no-fuzz-nans_all-features.wast (renamed from test/passes/translate-to-fuzz_no-fuzz-nans.wast) | 0 | ||||
-rw-r--r-- | test/unit/test_features.py | 70 | ||||
-rw-r--r-- | test/unit/test_memory_packing.py | 4 | ||||
-rw-r--r-- | test/unit/utils.py | 38 |
52 files changed, 60 insertions, 143 deletions
diff --git a/test/lld/duplicate_imports.wast.out b/test/lld/duplicate_imports.wast.out index cbb1db44a..b8d046ab7 100644 --- a/test/lld/duplicate_imports.wast.out +++ b/test/lld/duplicate_imports.wast.out @@ -138,13 +138,6 @@ "invoke_ffd" ], "features": [ - "--mvp-features", - "--enable-threads", - "--enable-bulk-memory", - "--enable-mutable-globals", - "--enable-nontrapping-float-to-int", - "--enable-sign-ext", - "--enable-simd" ] } -- END METADATA -- diff --git a/test/lld/em_asm.wast.mem.out b/test/lld/em_asm.wast.mem.out index 13484ff3d..2aac1ef36 100644 --- a/test/lld/em_asm.wast.mem.out +++ b/test/lld/em_asm.wast.mem.out @@ -262,13 +262,6 @@ "invokeFuncs": [ ], "features": [ - "--mvp-features", - "--enable-threads", - "--enable-bulk-memory", - "--enable-mutable-globals", - "--enable-nontrapping-float-to-int", - "--enable-sign-ext", - "--enable-simd" ] } -- END METADATA -- diff --git a/test/lld/em_asm.wast.out b/test/lld/em_asm.wast.out index 7986466cd..5917fb187 100644 --- a/test/lld/em_asm.wast.out +++ b/test/lld/em_asm.wast.out @@ -263,13 +263,6 @@ "invokeFuncs": [ ], "features": [ - "--mvp-features", - "--enable-threads", - "--enable-bulk-memory", - "--enable-mutable-globals", - "--enable-nontrapping-float-to-int", - "--enable-sign-ext", - "--enable-simd" ] } -- END METADATA -- diff --git a/test/lld/em_asm_O0.wast.out b/test/lld/em_asm_O0.wast.out index 45868e567..d194c8185 100644 --- a/test/lld/em_asm_O0.wast.out +++ b/test/lld/em_asm_O0.wast.out @@ -123,13 +123,6 @@ "invokeFuncs": [ ], "features": [ - "--mvp-features", - "--enable-threads", - "--enable-bulk-memory", - "--enable-mutable-globals", - "--enable-nontrapping-float-to-int", - "--enable-sign-ext", - "--enable-simd" ] } -- END METADATA -- diff --git a/test/lld/em_asm_shared.wast.out b/test/lld/em_asm_shared.wast.out index 19eabedc8..220a10aca 100644 --- a/test/lld/em_asm_shared.wast.out +++ b/test/lld/em_asm_shared.wast.out @@ -255,13 +255,6 @@ "invokeFuncs": [ ], "features": [ - "--mvp-features", - "--enable-threads", - "--enable-bulk-memory", - "--enable-mutable-globals", - "--enable-nontrapping-float-to-int", - "--enable-sign-ext", - "--enable-simd" ] } -- END METADATA -- diff --git a/test/lld/em_asm_table.wast.out b/test/lld/em_asm_table.wast.out index 1ed2cd5bd..50f24876e 100644 --- a/test/lld/em_asm_table.wast.out +++ b/test/lld/em_asm_table.wast.out @@ -93,13 +93,6 @@ "invokeFuncs": [ ], "features": [ - "--mvp-features", - "--enable-threads", - "--enable-bulk-memory", - "--enable-mutable-globals", - "--enable-nontrapping-float-to-int", - "--enable-sign-ext", - "--enable-simd" ] } -- END METADATA -- diff --git a/test/lld/em_js_O0.wast.out b/test/lld/em_js_O0.wast.out index 3db4c83d7..02d4fed07 100644 --- a/test/lld/em_js_O0.wast.out +++ b/test/lld/em_js_O0.wast.out @@ -73,13 +73,6 @@ "invokeFuncs": [ ], "features": [ - "--mvp-features", - "--enable-threads", - "--enable-bulk-memory", - "--enable-mutable-globals", - "--enable-nontrapping-float-to-int", - "--enable-sign-ext", - "--enable-simd" ] } -- END METADATA -- diff --git a/test/lld/hello_world.wast.mem.out b/test/lld/hello_world.wast.mem.out index 79ef1342a..834f4945a 100644 --- a/test/lld/hello_world.wast.mem.out +++ b/test/lld/hello_world.wast.mem.out @@ -98,13 +98,6 @@ "invokeFuncs": [ ], "features": [ - "--mvp-features", - "--enable-threads", - "--enable-bulk-memory", - "--enable-mutable-globals", - "--enable-nontrapping-float-to-int", - "--enable-sign-ext", - "--enable-simd" ] } -- END METADATA -- diff --git a/test/lld/hello_world.wast.out b/test/lld/hello_world.wast.out index c4a54667b..67fd6428b 100644 --- a/test/lld/hello_world.wast.out +++ b/test/lld/hello_world.wast.out @@ -99,13 +99,6 @@ "invokeFuncs": [ ], "features": [ - "--mvp-features", - "--enable-threads", - "--enable-bulk-memory", - "--enable-mutable-globals", - "--enable-nontrapping-float-to-int", - "--enable-sign-ext", - "--enable-simd" ] } -- END METADATA -- diff --git a/test/lld/init.wast.out b/test/lld/init.wast.out index 676f00327..645f78f67 100644 --- a/test/lld/init.wast.out +++ b/test/lld/init.wast.out @@ -110,13 +110,6 @@ "invokeFuncs": [ ], "features": [ - "--mvp-features", - "--enable-threads", - "--enable-bulk-memory", - "--enable-mutable-globals", - "--enable-nontrapping-float-to-int", - "--enable-sign-ext", - "--enable-simd" ] } -- END METADATA -- diff --git a/test/lld/recursive.wast.out b/test/lld/recursive.wast.out index 277d3cf1f..8f81cdc91 100644 --- a/test/lld/recursive.wast.out +++ b/test/lld/recursive.wast.out @@ -156,13 +156,6 @@ "invokeFuncs": [ ], "features": [ - "--mvp-features", - "--enable-threads", - "--enable-bulk-memory", - "--enable-mutable-globals", - "--enable-nontrapping-float-to-int", - "--enable-sign-ext", - "--enable-simd" ] } -- END METADATA -- diff --git a/test/lld/reserved_func_ptr.wast.out b/test/lld/reserved_func_ptr.wast.out index 5a5a6f29d..3ddf2f0ce 100644 --- a/test/lld/reserved_func_ptr.wast.out +++ b/test/lld/reserved_func_ptr.wast.out @@ -193,13 +193,6 @@ "invokeFuncs": [ ], "features": [ - "--mvp-features", - "--enable-threads", - "--enable-bulk-memory", - "--enable-mutable-globals", - "--enable-nontrapping-float-to-int", - "--enable-sign-ext", - "--enable-simd" ] } -- END METADATA -- diff --git a/test/lld/shared.wast.out b/test/lld/shared.wast.out index 7716daa32..135aa3e5b 100644 --- a/test/lld/shared.wast.out +++ b/test/lld/shared.wast.out @@ -124,13 +124,6 @@ "invokeFuncs": [ ], "features": [ - "--mvp-features", - "--enable-threads", - "--enable-bulk-memory", - "--enable-mutable-globals", - "--enable-nontrapping-float-to-int", - "--enable-sign-ext", - "--enable-simd" ] } -- END METADATA -- diff --git a/test/passes/code-folding.txt b/test/passes/code-folding_enable-threads.txt index 0fe3aa144..0fe3aa144 100644 --- a/test/passes/code-folding.txt +++ b/test/passes/code-folding_enable-threads.txt diff --git a/test/passes/code-folding.wast b/test/passes/code-folding_enable-threads.wast index d9c1cc950..d9c1cc950 100644 --- a/test/passes/code-folding.wast +++ b/test/passes/code-folding_enable-threads.wast diff --git a/test/passes/flatten_dfo_O3.txt b/test/passes/flatten_dfo_O3_enable-threads.txt index 74ddb5e2e..74ddb5e2e 100644 --- a/test/passes/flatten_dfo_O3.txt +++ b/test/passes/flatten_dfo_O3_enable-threads.txt diff --git a/test/passes/flatten_dfo_O3.wast b/test/passes/flatten_dfo_O3_enable-threads.wast index e6e136b68..e6e136b68 100644 --- a/test/passes/flatten_dfo_O3.wast +++ b/test/passes/flatten_dfo_O3_enable-threads.wast diff --git a/test/passes/flatten_simplify-locals-nonesting_souperify-single-use.txt b/test/passes/flatten_simplify-locals-nonesting_souperify-single-use_enable-threads.txt index af2ba0f59..af2ba0f59 100644 --- a/test/passes/flatten_simplify-locals-nonesting_souperify-single-use.txt +++ b/test/passes/flatten_simplify-locals-nonesting_souperify-single-use_enable-threads.txt diff --git a/test/passes/flatten_simplify-locals-nonesting_souperify-single-use.wast b/test/passes/flatten_simplify-locals-nonesting_souperify-single-use_enable-threads.wast index cfb94aa5c..cfb94aa5c 100644 --- a/test/passes/flatten_simplify-locals-nonesting_souperify-single-use.wast +++ b/test/passes/flatten_simplify-locals-nonesting_souperify-single-use_enable-threads.wast diff --git a/test/passes/flatten_simplify-locals-nonesting_souperify.txt b/test/passes/flatten_simplify-locals-nonesting_souperify_enable-threads.txt index 6d70acdcd..6d70acdcd 100644 --- a/test/passes/flatten_simplify-locals-nonesting_souperify.txt +++ b/test/passes/flatten_simplify-locals-nonesting_souperify_enable-threads.txt diff --git a/test/passes/flatten_simplify-locals-nonesting_souperify.wast b/test/passes/flatten_simplify-locals-nonesting_souperify_enable-threads.wast index bd1b825b6..bd1b825b6 100644 --- a/test/passes/flatten_simplify-locals-nonesting_souperify.wast +++ b/test/passes/flatten_simplify-locals-nonesting_souperify_enable-threads.wast diff --git a/test/passes/fuzz-exec.txt b/test/passes/fuzz-exec_enable-sign-ext.txt index 409f93181..409f93181 100644 --- a/test/passes/fuzz-exec.txt +++ b/test/passes/fuzz-exec_enable-sign-ext.txt diff --git a/test/passes/fuzz-exec.wast b/test/passes/fuzz-exec_enable-sign-ext.wast index 08042d2b9..08042d2b9 100644 --- a/test/passes/fuzz-exec.wast +++ b/test/passes/fuzz-exec_enable-sign-ext.wast diff --git a/test/passes/inlining-optimizing.txt b/test/passes/inlining-optimizing_enable-threads.txt index 437870065..437870065 100644 --- a/test/passes/inlining-optimizing.txt +++ b/test/passes/inlining-optimizing_enable-threads.txt diff --git a/test/passes/inlining-optimizing.wast b/test/passes/inlining-optimizing_enable-threads.wast index f0435baa4..f0435baa4 100644 --- a/test/passes/inlining-optimizing.wast +++ b/test/passes/inlining-optimizing_enable-threads.wast diff --git a/test/passes/optimize-instructions.txt b/test/passes/optimize-instructions_enable-threads.txt index 67f0516fb..67f0516fb 100644 --- a/test/passes/optimize-instructions.txt +++ b/test/passes/optimize-instructions_enable-threads.txt diff --git a/test/passes/optimize-instructions.wast b/test/passes/optimize-instructions_enable-threads.wast index fa683ca78..fa683ca78 100644 --- a/test/passes/optimize-instructions.wast +++ b/test/passes/optimize-instructions_enable-threads.wast diff --git a/test/passes/precompute.txt b/test/passes/precompute_enable-simd.txt index f7f58f58f..f7f58f58f 100644 --- a/test/passes/precompute.txt +++ b/test/passes/precompute_enable-simd.txt diff --git a/test/passes/precompute.wast b/test/passes/precompute_enable-simd.wast index d6b1cc1b7..d6b1cc1b7 100644 --- a/test/passes/precompute.wast +++ b/test/passes/precompute_enable-simd.wast diff --git a/test/passes/remove-unused-module-elements.txt b/test/passes/remove-unused-module-elements_enable-threads.txt index c2471e743..c2471e743 100644 --- a/test/passes/remove-unused-module-elements.txt +++ b/test/passes/remove-unused-module-elements_enable-threads.txt diff --git a/test/passes/remove-unused-module-elements.wast b/test/passes/remove-unused-module-elements_enable-threads.wast index 4bd5ccf10..4bd5ccf10 100644 --- a/test/passes/remove-unused-module-elements.wast +++ b/test/passes/remove-unused-module-elements_enable-threads.wast diff --git a/test/passes/remove-unused-names_merge-blocks.txt b/test/passes/remove-unused-names_merge-blocks_enable-threads.txt index b60d01957..b60d01957 100644 --- a/test/passes/remove-unused-names_merge-blocks.txt +++ b/test/passes/remove-unused-names_merge-blocks_enable-threads.txt diff --git a/test/passes/remove-unused-names_merge-blocks.wast b/test/passes/remove-unused-names_merge-blocks_enable-threads.wast index f9603a60d..f9603a60d 100644 --- a/test/passes/remove-unused-names_merge-blocks.wast +++ b/test/passes/remove-unused-names_merge-blocks_enable-threads.wast diff --git a/test/passes/remove-unused-nonfunction-module-elements.txt b/test/passes/remove-unused-nonfunction-module-elements_enable-threads.txt index 2d9609efa..2d9609efa 100644 --- a/test/passes/remove-unused-nonfunction-module-elements.txt +++ b/test/passes/remove-unused-nonfunction-module-elements_enable-threads.txt diff --git a/test/passes/remove-unused-nonfunction-module-elements.wast b/test/passes/remove-unused-nonfunction-module-elements_enable-threads.wast index 4370328ce..4370328ce 100644 --- a/test/passes/remove-unused-nonfunction-module-elements.wast +++ b/test/passes/remove-unused-nonfunction-module-elements_enable-threads.wast diff --git a/test/passes/safe-heap.txt b/test/passes/safe-heap_enable-threads_enable-simd.txt index 1f9640ce2..1f9640ce2 100644 --- a/test/passes/safe-heap.txt +++ b/test/passes/safe-heap_enable-threads_enable-simd.txt diff --git a/test/passes/safe-heap.wast b/test/passes/safe-heap_enable-threads_enable-simd.wast index 17c9995c4..17c9995c4 100644 --- a/test/passes/safe-heap.wast +++ b/test/passes/safe-heap_enable-threads_enable-simd.wast diff --git a/test/passes/safe-heap_low-memory-unused.txt b/test/passes/safe-heap_low-memory-unused_enable-threads_enable-simd.txt index 469cf9f94..469cf9f94 100644 --- a/test/passes/safe-heap_low-memory-unused.txt +++ b/test/passes/safe-heap_low-memory-unused_enable-threads_enable-simd.txt diff --git a/test/passes/safe-heap_low-memory-unused.wast b/test/passes/safe-heap_low-memory-unused_enable-threads_enable-simd.wast index 17c9995c4..17c9995c4 100644 --- a/test/passes/safe-heap_low-memory-unused.wast +++ b/test/passes/safe-heap_low-memory-unused_enable-threads_enable-simd.wast diff --git a/test/passes/simplify-locals.txt b/test/passes/simplify-locals_all-features.txt index 7a6de1873..7a6de1873 100644 --- a/test/passes/simplify-locals.txt +++ b/test/passes/simplify-locals_all-features.txt diff --git a/test/passes/simplify-locals.wast b/test/passes/simplify-locals_all-features.wast index 34a93d442..34a93d442 100644 --- a/test/passes/simplify-locals.wast +++ b/test/passes/simplify-locals_all-features.wast diff --git a/test/passes/ssa.txt b/test/passes/ssa_enable-threads.txt index 54a5cd757..54a5cd757 100644 --- a/test/passes/ssa.txt +++ b/test/passes/ssa_enable-threads.txt diff --git a/test/passes/ssa.wast b/test/passes/ssa_enable-threads.wast index bbfad89bf..bbfad89bf 100644 --- a/test/passes/ssa.wast +++ b/test/passes/ssa_enable-threads.wast diff --git a/test/passes/ssa_fuzz-exec.txt b/test/passes/ssa_fuzz-exec_enable-threads.txt index 35499266e..35499266e 100644 --- a/test/passes/ssa_fuzz-exec.txt +++ b/test/passes/ssa_fuzz-exec_enable-threads.txt diff --git a/test/passes/ssa_fuzz-exec.wast b/test/passes/ssa_fuzz-exec_enable-threads.wast index 1ad1e2a6f..1ad1e2a6f 100644 --- a/test/passes/ssa_fuzz-exec.wast +++ b/test/passes/ssa_fuzz-exec_enable-threads.wast diff --git a/test/passes/translate-to-fuzz.txt b/test/passes/translate-to-fuzz_all-features.txt index fe24e738e..fe24e738e 100644 --- a/test/passes/translate-to-fuzz.txt +++ b/test/passes/translate-to-fuzz_all-features.txt diff --git a/test/passes/translate-to-fuzz.wast b/test/passes/translate-to-fuzz_all-features.wast index 5b378f2b2..5b378f2b2 100644 --- a/test/passes/translate-to-fuzz.wast +++ b/test/passes/translate-to-fuzz_all-features.wast diff --git a/test/passes/translate-to-fuzz_no-fuzz-nans.txt b/test/passes/translate-to-fuzz_no-fuzz-nans_all-features.txt index 294b4f986..294b4f986 100644 --- a/test/passes/translate-to-fuzz_no-fuzz-nans.txt +++ b/test/passes/translate-to-fuzz_no-fuzz-nans_all-features.txt diff --git a/test/passes/translate-to-fuzz_no-fuzz-nans.wast b/test/passes/translate-to-fuzz_no-fuzz-nans_all-features.wast index cbf25fde1..cbf25fde1 100644 --- a/test/passes/translate-to-fuzz_no-fuzz-nans.wast +++ b/test/passes/translate-to-fuzz_no-fuzz-nans_all-features.wast diff --git a/test/unit/test_features.py b/test/unit/test_features.py index 1672b957a..8764bef97 100644 --- a/test/unit/test_features.py +++ b/test/unit/test_features.py @@ -1,10 +1,9 @@ import os -import unittest from scripts.test.shared import WASM_OPT, run_process -from utils import input_path, roundtrip +from utils import BinaryenTestCase -class FeatureValidationTest(unittest.TestCase): +class FeatureValidationTest(BinaryenTestCase): def check_feature(self, module, error, flag): p = run_process(WASM_OPT + ['--mvp-features', '--print', '-o', os.devnull], input=module, check=False, capture_output=True) @@ -116,53 +115,50 @@ class FeatureValidationTest(unittest.TestCase): self.check_bulk_mem(module, 'nonzero segment flags (bulk memory is disabled)') -class TargetFeaturesSectionTest(unittest.TestCase): - def disassemble(self, filename): - path = input_path(filename) - p = run_process(WASM_OPT + ['--print', '-o', os.devnull, path], check=False, - capture_output=True) - self.assertEqual(p.returncode, 0) - self.assertEqual(p.stderr, '') - return p.stdout - +class TargetFeaturesSectionTest(BinaryenTestCase): def test_atomics(self): - roundtrip(self, 'atomics_target_feature.wasm') - module = self.disassemble('atomics_target_feature.wasm') - self.assertIn('i32.atomic.rmw.add', module) + filename = 'atomics_target_feature.wasm' + self.roundtrip(filename) + self.check_features(filename, ['threads']) + self.assertIn('i32.atomic.rmw.add', self.disassemble(filename)) def test_bulk_memory(self): - roundtrip(self, 'bulkmem_target_feature.wasm') - module = self.disassemble('bulkmem_target_feature.wasm') - self.assertIn('memory.copy', module) + filename = 'bulkmem_target_feature.wasm' + self.roundtrip(filename) + self.check_features(filename, ['bulk-memory']) + self.assertIn('memory.copy', self.disassemble(filename)) def test_nontrapping_fptoint(self): - roundtrip(self, 'truncsat_target_feature.wasm') - module = self.disassemble('truncsat_target_feature.wasm') - self.assertIn('i32.trunc_sat_f32_u', module) + filename = 'truncsat_target_feature.wasm' + self.roundtrip(filename) + self.check_features(filename, ['nontrapping-float-to-int']) + self.assertIn('i32.trunc_sat_f32_u', self.disassemble(filename)) def test_sign_ext(self): - roundtrip(self, 'signext_target_feature.wasm') - module = self.disassemble('signext_target_feature.wasm') - self.assertIn('i32.extend8_s', module) + filename = 'signext_target_feature.wasm' + self.roundtrip(filename) + self.check_features(filename, ['sign-ext']) + self.assertIn('i32.extend8_s', self.disassemble(filename)) def test_simd(self): - roundtrip(self, 'simd_target_feature.wasm') - module = self.disassemble('simd_target_feature.wasm') - self.assertIn('i32x4.splat', module) + filename = 'simd_target_feature.wasm' + self.roundtrip(filename) + self.check_features(filename, ['simd']) + self.assertIn('i32x4.splat', self.disassemble(filename)) def test_incompatible_features(self): - path = input_path('signext_target_feature.wasm') + path = self.input_path('signext_target_feature.wasm') p = run_process( - WASM_OPT + ['--print', '-mvp', '--enable-simd', '-o', os.devnull, path], + WASM_OPT + ['--print', '--enable-simd', '-o', os.devnull, path], check=False, capture_output=True ) self.assertNotEqual(p.returncode, 0) - self.assertIn('Fatal: module uses features not explicitly specified, ' + - 'use --detect-features to resolve', + self.assertIn('Fatal: module features do not match specified features. ' + + 'Use --detect-features to resolve.', p.stderr) def test_incompatible_features_forced(self): - path = input_path('signext_target_feature.wasm') + path = self.input_path('signext_target_feature.wasm') p = run_process( WASM_OPT + ['--print', '--detect-features', '-mvp', '--enable-simd', '-o', os.devnull, path], @@ -172,11 +168,5 @@ class TargetFeaturesSectionTest(unittest.TestCase): self.assertIn('all used features should be allowed', p.stderr) def test_explicit_detect_features(self): - path = input_path('signext_target_feature.wasm') - p = run_process( - WASM_OPT + ['--print', '-mvp', '--detect-features', - '-o', os.devnull, path], - check=False, capture_output=True - ) - self.assertEqual(p.returncode, 0) - self.assertEqual(p.stderr, '') + self.check_features('signext_target_feature.wasm', ['sign-ext', 'simd'], + opts=['-mvp', '--detect-features', '--enable-simd']) diff --git a/test/unit/test_memory_packing.py b/test/unit/test_memory_packing.py index 0d62b0ed5..a0ccd3006 100644 --- a/test/unit/test_memory_packing.py +++ b/test/unit/test_memory_packing.py @@ -1,12 +1,12 @@ import os -import unittest from scripts.test.shared import WASM_OPT, run_process +from utils import BinaryenTestCase '''Test that MemoryPacking correctly respects the web limitations by not generating more than 100K data segments''' -class MemoryPackingTest(unittest.TestCase): +class MemoryPackingTest(BinaryenTestCase): def test_large_segment(self): data = '"' + (('A' + ('\\00' * 9)) * 100001) + '"' module = ''' diff --git a/test/unit/utils.py b/test/unit/utils.py index eaeb29d42..876f2f4ec 100644 --- a/test/unit/utils.py +++ b/test/unit/utils.py @@ -1,16 +1,34 @@ import os +import unittest from scripts.test.shared import WASM_OPT, run_process, options -def input_path(filename): - return os.path.join(options.binaryen_test, 'unit', 'input', filename) +class BinaryenTestCase(unittest.TestCase): + def input_path(self, filename): + return os.path.join(options.binaryen_test, 'unit', 'input', filename) + def roundtrip(self, filename, opts=[]): + path = self.input_path(filename) + p = run_process(WASM_OPT + ['-g', '-o', '-', path] + opts, check=False, + capture_output=True) + self.assertEqual(p.returncode, 0) + self.assertEqual(p.stderr, '') + with open(path, 'rb') as f: + self.assertEqual(str(p.stdout), str(f.read())) -def roundtrip(testcase, filename, opts=[]): - path = input_path(filename) - p = run_process(WASM_OPT + ['-g', '-o', '-', path] + opts, check=False, - capture_output=True) - testcase.assertEqual(p.returncode, 0) - testcase.assertEqual(p.stderr, '') - with open(path, 'rb') as f: - testcase.assertEqual(str(p.stdout), str(f.read())) + def disassemble(self, filename): + path = self.input_path(filename) + p = run_process(WASM_OPT + ['--print', '-o', os.devnull, path], check=False, + capture_output=True) + self.assertEqual(p.returncode, 0) + self.assertEqual(p.stderr, '') + return p.stdout + + def check_features(self, filename, features, opts=[]): + path = self.input_path(filename) + cmd = WASM_OPT + ['--print-features', '-o', os.devnull, path] + opts + p = run_process(cmd, check=False, capture_output=True) + self.assertEqual(p.returncode, 0) + self.assertEqual(p.stderr, '') + self.assertEqual(p.stdout.split('\n')[:-1], + ['--enable-' + f for f in features]) |