v8/test/unittests/wasm
Clemens Backes c9704cf792 [wasm] Add unit tests for code protection
This adds some basic tests for WebAssembly code protection, in four
different configurations:
- no protection
- mprotect-based protection
- PKU-based protection
- PKU with fallback to mprotect

If PKU is not supported by the OS or hardware, then PKU is identical to
no protection, and PKU with fallback is identical to mprotect. We always
execute all four configurations anyway.
If protection is effective, we expect code to be writable within a
{CodeSpaceWriteScope}, and not writable otherwise. When trying to write
to non-writable code, we expect a crash of the process (checked via
{ASSERT_DEATH_IF_SUPPORTED}).

R=jkummerow@chromium.org
CC=​mpdenton@chromium.org

Bug: v8:11974
Cq-Include-Trybots: luci.v8.try:v8_mac_arm64_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_mac_arm64_dbg_ng
Change-Id: I4ec0ce9426f70ff41a292b9ea25be1e8956a670e
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3138210
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#76726}
2021-09-08 14:07:56 +00:00
..
control-transfer-unittest.cc [wasm][interpreter][eh] Implement catch with immediate 2021-02-11 15:38:56 +00:00
decoder-unittest.cc [wasm] Simplify LEB decoding 2020-10-08 13:58:01 +00:00
DIR_METADATA Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
function-body-decoder-unittest.cc [wasm-gc] Drop --experimental-wasm-gc-experiments flag 2021-09-07 19:22:19 +00:00
leb-helper-unittest.cc [wasm] Rename {ValidateFlag} constants 2020-09-30 13:19:03 +00:00
liftoff-register-unittests.cc [LOONG64] Add LoongArch64 backend 2021-08-16 13:05:19 +00:00
loop-assignment-analysis-unittest.cc [test][cleanup] Rename WASM_*_LOCAL to WASM_LOCAL_* 2020-12-17 21:19:14 +00:00
memory-protection-unittest.cc [wasm] Add unit tests for code protection 2021-09-08 14:07:56 +00:00
module-decoder-memory64-unittest.cc [isolate][cleanup] Remove pointer to WasmEngine 2021-06-21 09:09:25 +00:00
module-decoder-unittest.cc [wasm-gc] Drop --experimental-wasm-gc-experiments flag 2021-09-07 19:22:19 +00:00
OWNERS Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
simd-shuffle-unittest.cc [wasm-simd][liftoff][x64] Optimize shuffles (swizzles) 2020-08-04 17:03:05 +00:00
streaming-decoder-unittest.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
subtyping-unittest.cc [wasm-gc] Implement function subtyping 2021-04-15 11:01:05 +00:00
trap-handler-posix-unittest.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
trap-handler-simulator-unittest.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
trap-handler-win-unittest.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
trap-handler-x64-unittest.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
wasm-code-manager-unittest.cc [wasm][test] Various test cleanups 2021-02-01 07:57:35 +00:00
wasm-compiler-unittest.cc Reland "[codegen][frames] Generalize argument padding slot code" 2021-03-05 22:35:30 +00:00
wasm-gdbserver-unittest.cc [wasm] [debugging] Fix --wasm-gdb-remote 2020-12-08 19:37:25 +00:00
wasm-macro-gen-unittest.cc [test][cleanup] Rename WASM_*_GLOBAL to WASM_GLOBAL_* 2020-12-17 21:26:54 +00:00
wasm-module-builder-unittest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
wasm-module-sourcemap-unittest.cc Add source map support of WasmModule 2019-08-26 15:19:02 +00:00