v8/test
Clemens Hammacher a462a7854a [turboassembler] Introduce hard-abort mode
For checks and assertions (mostly for debug code, like stack alignment
or zero extension), we had two modes: Emit a call to the {Abort}
runtime function (the default), and emit a debug break (used for
testing, enabled via --trap-on-abort).
In wasm, where we cannot just call a runtime function because code must
be isolate independent, we always used the trap-on-abort behaviour.
This causes problems for our fuzzers, which do not catch SIGTRAP, and
hence do not detect debug code failures.

This CL introduces a third mode ("hard abort"), which calls a C
function via {ExternalReference}. The C function still outputs the
abort reason, but does not print the stack trace. It then aborts via
"OS::Abort", just like the runtime function.
This will allow fuzzers to detect the crash and even find a nice error
message.

Even though this looks like a lot of code churn, it is actually not.
Most added lines are new tests, and other changes are minimal.

R=mstarzinger@chromium.org

Bug: chromium:863799
Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
Reviewed-on: https://chromium-review.googlesource.com/1142163
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54592}
2018-07-20 14:44:29 +00:00
..
benchmarks Reland "[build] Remove legacy isolate configurations" 2018-03-28 12:36:55 +00:00
cctest [turboassembler] Introduce hard-abort mode 2018-07-20 14:44:29 +00:00
common [turboassembler] Introduce hard-abort mode 2018-07-20 14:44:29 +00:00
debugger [liveedit] Fix patching functions with start position zero 2018-07-18 16:20:22 +00:00
fuzzer [wasm][fuzzer] Do not execute code with potential non-determinism 2018-07-19 08:55:55 +00:00
inspector [inspector] Fix memory leaks in inspector test 2018-07-20 07:22:15 +00:00
intl [Intl] Implement Intl.RelativeTimeFormat.prototype.{format, formatToParts} 2018-07-18 12:49:22 +00:00
js-perf-test Revert "[turbofan] Inline Number constructor in certain cases" 2018-07-19 09:13:26 +00:00
memory [builtins] Add embedded stats to --serialization-statistics 2018-07-05 12:33:26 +00:00
message [wasm] Make the output of --wasm-trace-memory more understandable 2018-07-19 09:49:36 +00:00
mjsunit [array] Only use fast-path in Array.p.fill for JSArrays 2018-07-19 12:15:42 +00:00
mkgrokdump [explicit isolates] Move remaining roots to ReadOnyRoots 2018-07-03 15:26:04 +00:00
mozilla Roll ICU to ICU 62.1 2018-07-11 10:24:26 +00:00
preparser Reland "[build] Remove legacy isolate configurations" 2018-03-28 12:36:55 +00:00
test262 [Intl] Implement Intl.RelativeTimeFormat.prototype.{format, formatToParts} 2018-07-18 12:49:22 +00:00
torque [torque]: Implement structs 2018-07-17 17:04:55 +00:00
unittests [turboassembler] Introduce hard-abort mode 2018-07-20 14:44:29 +00:00
wasm-spec-tests [wasm] Update spec tests 2018-07-10 11:18:19 +00:00
webkit [test] Skip slow tests 2018-05-23 14:14:34 +00:00
BUILD.gn Reland "Update GN configs for v8_perf target to allow running perf tests in swarming" 2018-07-17 08:40:17 +00:00