summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorThomas Lively <7121787+tlively@users.noreply.github.com>2019-04-16 16:47:50 -0700
committerGitHub <noreply@github.com>2019-04-16 16:47:50 -0700
commit4d81752204fede13d6513def4195aabe66c5586f (patch)
treef6322eaa40e0fc38beaa7ca68dc3b55b8629f473 /test
parent698fddca4e598cb4f72fe61557c9f91ed879a289 (diff)
downloadbinaryen-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.out7
-rw-r--r--test/lld/em_asm.wast.mem.out7
-rw-r--r--test/lld/em_asm.wast.out7
-rw-r--r--test/lld/em_asm_O0.wast.out7
-rw-r--r--test/lld/em_asm_shared.wast.out7
-rw-r--r--test/lld/em_asm_table.wast.out7
-rw-r--r--test/lld/em_js_O0.wast.out7
-rw-r--r--test/lld/hello_world.wast.mem.out7
-rw-r--r--test/lld/hello_world.wast.out7
-rw-r--r--test/lld/init.wast.out7
-rw-r--r--test/lld/recursive.wast.out7
-rw-r--r--test/lld/reserved_func_ptr.wast.out7
-rw-r--r--test/lld/shared.wast.out7
-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.py70
-rw-r--r--test/unit/test_memory_packing.py4
-rw-r--r--test/unit/utils.py38
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])