039c18e19a
This reverts commit a462a7854a
.
Reason for revert: Breaks a TurboAssembler test:
https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Arm/7726
Original change's description:
> [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}
TBR=mstarzinger@chromium.org,clemensh@chromium.org
Change-Id: I60c011cfe262ccebbb9abf32699a9fe17e72a3c8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:863799
Reviewed-on: https://chromium-review.googlesource.com/1145431
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54597}
263 lines
9.3 KiB
Plaintext
263 lines
9.3 KiB
Plaintext
# Copyright 2016 The V8 project authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import("../../gni/v8.gni")
|
|
|
|
v8_executable("unittests") {
|
|
testonly = true
|
|
|
|
# TODO(machenbach): Translate from gyp.
|
|
#['OS=="aix"', {
|
|
# 'ldflags': [ '-Wl,-bbigtoc' ],
|
|
#}],
|
|
|
|
deps = [
|
|
":unittests_sources",
|
|
"../..:v8_for_testing",
|
|
"../..:v8_libbase",
|
|
"../..:v8_libplatform",
|
|
"//build/win:default_exe_manifest",
|
|
"//testing/gmock",
|
|
"//testing/gtest",
|
|
]
|
|
|
|
data_deps = [
|
|
"../../tools:v8_testrunner",
|
|
]
|
|
|
|
data = [
|
|
"testcfg.py",
|
|
"unittests.status",
|
|
]
|
|
|
|
configs = [
|
|
"../..:external_config",
|
|
"../..:internal_config_base",
|
|
]
|
|
}
|
|
|
|
v8_source_set("unittests_sources") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"../../test/common/wasm/wasm-macro-gen.h",
|
|
"../../testing/gmock-support.h",
|
|
"../../testing/gtest-support.h",
|
|
"allocation-unittest.cc",
|
|
"api/access-check-unittest.cc",
|
|
"api/exception-unittest.cc",
|
|
"api/interceptor-unittest.cc",
|
|
"api/isolate-unittest.cc",
|
|
"api/remote-object-unittest.cc",
|
|
"api/v8-object-unittest.cc",
|
|
"asmjs/asm-scanner-unittest.cc",
|
|
"asmjs/asm-types-unittest.cc",
|
|
"asmjs/switch-logic-unittest.cc",
|
|
"base/atomic-utils-unittest.cc",
|
|
"base/bits-unittest.cc",
|
|
"base/cpu-unittest.cc",
|
|
"base/division-by-constant-unittest.cc",
|
|
"base/flags-unittest.cc",
|
|
"base/functional-unittest.cc",
|
|
"base/ieee754-unittest.cc",
|
|
"base/iterator-unittest.cc",
|
|
"base/list-unittest.cc",
|
|
"base/logging-unittest.cc",
|
|
"base/macros-unittest.cc",
|
|
"base/ostreams-unittest.cc",
|
|
"base/platform/condition-variable-unittest.cc",
|
|
"base/platform/mutex-unittest.cc",
|
|
"base/platform/platform-unittest.cc",
|
|
"base/platform/semaphore-unittest.cc",
|
|
"base/platform/time-unittest.cc",
|
|
"base/sys-info-unittest.cc",
|
|
"base/template-utils-unittest.cc",
|
|
"base/utils/random-number-generator-unittest.cc",
|
|
"bigint-unittest.cc",
|
|
"cancelable-tasks-unittest.cc",
|
|
"char-predicates-unittest.cc",
|
|
"code-stub-assembler-unittest.cc",
|
|
"code-stub-assembler-unittest.h",
|
|
"compiler-dispatcher/compiler-dispatcher-tracer-unittest.cc",
|
|
"compiler-dispatcher/compiler-dispatcher-unittest.cc",
|
|
"compiler-dispatcher/optimizing-compile-dispatcher-unittest.cc",
|
|
"compiler-dispatcher/unoptimized-compile-job-unittest.cc",
|
|
"compiler/branch-elimination-unittest.cc",
|
|
"compiler/bytecode-analysis-unittest.cc",
|
|
"compiler/checkpoint-elimination-unittest.cc",
|
|
"compiler/code-assembler-unittest.cc",
|
|
"compiler/code-assembler-unittest.h",
|
|
"compiler/common-operator-reducer-unittest.cc",
|
|
"compiler/common-operator-unittest.cc",
|
|
"compiler/compiler-test-utils.h",
|
|
"compiler/constant-folding-reducer-unittest.cc",
|
|
"compiler/control-equivalence-unittest.cc",
|
|
"compiler/control-flow-optimizer-unittest.cc",
|
|
"compiler/dead-code-elimination-unittest.cc",
|
|
"compiler/diamond-unittest.cc",
|
|
"compiler/effect-control-linearizer-unittest.cc",
|
|
"compiler/graph-reducer-unittest.cc",
|
|
"compiler/graph-reducer-unittest.h",
|
|
"compiler/graph-trimmer-unittest.cc",
|
|
"compiler/graph-unittest.cc",
|
|
"compiler/graph-unittest.h",
|
|
"compiler/instruction-selector-unittest.cc",
|
|
"compiler/instruction-selector-unittest.h",
|
|
"compiler/instruction-sequence-unittest.cc",
|
|
"compiler/instruction-sequence-unittest.h",
|
|
"compiler/instruction-unittest.cc",
|
|
"compiler/int64-lowering-unittest.cc",
|
|
"compiler/js-call-reducer-unittest.cc",
|
|
"compiler/js-create-lowering-unittest.cc",
|
|
"compiler/js-intrinsic-lowering-unittest.cc",
|
|
"compiler/js-operator-unittest.cc",
|
|
"compiler/js-typed-lowering-unittest.cc",
|
|
"compiler/linkage-tail-call-unittest.cc",
|
|
"compiler/live-range-builder.h",
|
|
"compiler/load-elimination-unittest.cc",
|
|
"compiler/loop-peeling-unittest.cc",
|
|
"compiler/machine-operator-reducer-unittest.cc",
|
|
"compiler/machine-operator-unittest.cc",
|
|
"compiler/node-cache-unittest.cc",
|
|
"compiler/node-matchers-unittest.cc",
|
|
"compiler/node-properties-unittest.cc",
|
|
"compiler/node-test-utils.cc",
|
|
"compiler/node-test-utils.h",
|
|
"compiler/node-unittest.cc",
|
|
"compiler/opcodes-unittest.cc",
|
|
"compiler/persistent-unittest.cc",
|
|
"compiler/regalloc/live-range-unittest.cc",
|
|
"compiler/regalloc/move-optimizer-unittest.cc",
|
|
"compiler/regalloc/register-allocator-unittest.cc",
|
|
"compiler/schedule-unittest.cc",
|
|
"compiler/scheduler-rpo-unittest.cc",
|
|
"compiler/scheduler-unittest.cc",
|
|
"compiler/simplified-lowering-unittest.cc",
|
|
"compiler/simplified-operator-reducer-unittest.cc",
|
|
"compiler/simplified-operator-unittest.cc",
|
|
"compiler/state-values-utils-unittest.cc",
|
|
"compiler/typed-optimization-unittest.cc",
|
|
"compiler/typer-unittest.cc",
|
|
"compiler/value-numbering-reducer-unittest.cc",
|
|
"compiler/zone-stats-unittest.cc",
|
|
"counters-unittest.cc",
|
|
"detachable-vector-unittest.cc",
|
|
"eh-frame-iterator-unittest.cc",
|
|
"eh-frame-writer-unittest.cc",
|
|
"heap/barrier-unittest.cc",
|
|
"heap/bitmap-unittest.cc",
|
|
"heap/embedder-tracing-unittest.cc",
|
|
"heap/gc-idle-time-handler-unittest.cc",
|
|
"heap/gc-tracer-unittest.cc",
|
|
"heap/heap-controller-unittest.cc",
|
|
"heap/heap-unittest.cc",
|
|
"heap/item-parallel-job-unittest.cc",
|
|
"heap/marking-unittest.cc",
|
|
"heap/memory-reducer-unittest.cc",
|
|
"heap/object-stats-unittest.cc",
|
|
"heap/scavenge-job-unittest.cc",
|
|
"heap/slot-set-unittest.cc",
|
|
"heap/spaces-unittest.cc",
|
|
"heap/unmapper-unittest.cc",
|
|
"heap/worklist-unittest.cc",
|
|
"interpreter/bytecode-array-builder-unittest.cc",
|
|
"interpreter/bytecode-array-iterator-unittest.cc",
|
|
"interpreter/bytecode-array-random-iterator-unittest.cc",
|
|
"interpreter/bytecode-array-writer-unittest.cc",
|
|
"interpreter/bytecode-decoder-unittest.cc",
|
|
"interpreter/bytecode-node-unittest.cc",
|
|
"interpreter/bytecode-operands-unittest.cc",
|
|
"interpreter/bytecode-register-allocator-unittest.cc",
|
|
"interpreter/bytecode-register-optimizer-unittest.cc",
|
|
"interpreter/bytecode-source-info-unittest.cc",
|
|
"interpreter/bytecode-utils.h",
|
|
"interpreter/bytecodes-unittest.cc",
|
|
"interpreter/constant-array-builder-unittest.cc",
|
|
"interpreter/interpreter-assembler-unittest.cc",
|
|
"interpreter/interpreter-assembler-unittest.h",
|
|
"libplatform/default-platform-unittest.cc",
|
|
"libplatform/task-queue-unittest.cc",
|
|
"libplatform/worker-thread-unittest.cc",
|
|
"locked-queue-unittest.cc",
|
|
"object-unittest.cc",
|
|
"parser/ast-value-unittest.cc",
|
|
"parser/preparser-unittest.cc",
|
|
"register-configuration-unittest.cc",
|
|
"run-all-unittests.cc",
|
|
"source-position-table-unittest.cc",
|
|
"strings-storage-unittest.cc",
|
|
"test-helpers.cc",
|
|
"test-helpers.h",
|
|
"test-utils.cc",
|
|
"test-utils.h",
|
|
"unicode-unittest.cc",
|
|
"utils-unittest.cc",
|
|
"value-serializer-unittest.cc",
|
|
"wasm/control-transfer-unittest.cc",
|
|
"wasm/decoder-unittest.cc",
|
|
"wasm/function-body-decoder-unittest.cc",
|
|
"wasm/leb-helper-unittest.cc",
|
|
"wasm/loop-assignment-analysis-unittest.cc",
|
|
"wasm/module-decoder-unittest.cc",
|
|
"wasm/streaming-decoder-unittest.cc",
|
|
"wasm/trap-handler-unittest.cc",
|
|
"wasm/wasm-code-manager-unittest.cc",
|
|
"wasm/wasm-macro-gen-unittest.cc",
|
|
"wasm/wasm-module-builder-unittest.cc",
|
|
"wasm/wasm-opcodes-unittest.cc",
|
|
"zone/segmentpool-unittest.cc",
|
|
"zone/zone-allocator-unittest.cc",
|
|
"zone/zone-chunk-list-unittest.cc",
|
|
"zone/zone-unittest.cc",
|
|
]
|
|
|
|
if (use_jumbo_build) {
|
|
jumbo_excluded_sources = [
|
|
# TODO(mostynb@opera.com): figure out how to make this build in both
|
|
# modes. Template issues on windows if we add a functional_unittest
|
|
# namespace as with the other files.
|
|
"base/functional-unittest.cc",
|
|
]
|
|
}
|
|
|
|
if (v8_current_cpu == "arm") {
|
|
sources += [ "compiler/arm/instruction-selector-arm-unittest.cc" ]
|
|
} else if (v8_current_cpu == "arm64") {
|
|
sources += [ "compiler/arm64/instruction-selector-arm64-unittest.cc" ]
|
|
} else if (v8_current_cpu == "x86") {
|
|
sources += [ "compiler/ia32/instruction-selector-ia32-unittest.cc" ]
|
|
} else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") {
|
|
sources += [ "compiler/mips/instruction-selector-mips-unittest.cc" ]
|
|
} else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") {
|
|
sources += [ "compiler/mips64/instruction-selector-mips64-unittest.cc" ]
|
|
} else if (v8_current_cpu == "x64") {
|
|
sources += [ "compiler/x64/instruction-selector-x64-unittest.cc" ]
|
|
} else if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") {
|
|
sources += [ "compiler/ppc/instruction-selector-ppc-unittest.cc" ]
|
|
} else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") {
|
|
sources += [ "compiler/s390/instruction-selector-s390-unittest.cc" ]
|
|
}
|
|
|
|
configs = [
|
|
"../..:external_config",
|
|
"../..:internal_config_base",
|
|
]
|
|
|
|
deps = [
|
|
"../..:v8_for_testing",
|
|
"../..:v8_libbase",
|
|
"../..:v8_libplatform",
|
|
"//build/win:default_exe_manifest",
|
|
"//testing/gmock",
|
|
"//testing/gtest",
|
|
]
|
|
|
|
if (is_win) {
|
|
# This warning is benignly triggered by the U16 and U32 macros in
|
|
# bytecode-utils.h.
|
|
# C4309: 'static_cast': truncation of constant value
|
|
cflags = [ "/wd4309" ]
|
|
}
|
|
}
|