f1589bbe11
This patch introduces a new LocalIsolate and LocalFactory, which use LocalHeap and replace OffThreadIsolate and OffThreadFactory. This allows us to remove those classes, as well as the related OffThreadSpace, OffThreadLargeObjectSpace, OffThreadHeap, and OffThreadTransferHandle. OffThreadLogger becomes LocalLogger. LocalHeap behaves more like Heap than OffThreadHeap did, so this allows us to additionally remove the concept of "Finish" and "Publish" that the OffThreadIsolate had, and allows us to internalize strings directly with the newly-concurrent string table (where the implementation can now move to FactoryBase). This patch also removes the off-thread support from the deserializer entirely, as well as removing the LocalIsolateWrapper which allowed run-time distinction between Isolate and OffThreadIsolate. LocalHeap doesn't support the reservation model used by the deserializer, and we will likely move the deserializer to use LocalIsolate unconditionally once we figure out the details of how to do this. Bug: chromium:1011762 Change-Id: I1a1a0a72952b19a8a4c167c11a863c153a1252fc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2315990 Commit-Queue: Andreas Haas <ahaas@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69397}
415 lines
14 KiB
Plaintext
415 lines
14 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")
|
|
|
|
if (is_fuchsia) {
|
|
import("//build/config/fuchsia/rules.gni")
|
|
|
|
cr_fuchsia_package("v8_unittests_pkg") {
|
|
testonly = true
|
|
binary = ":unittests"
|
|
package_name_override = "v8_unittests"
|
|
}
|
|
|
|
fuchsia_package_runner("v8_unittests_fuchsia") {
|
|
testonly = true
|
|
package = ":v8_unittests_pkg"
|
|
package_name_override = "v8_unittests"
|
|
}
|
|
}
|
|
|
|
# Stand-alone target for C++ GC unittests. This is used to ensure that it
|
|
# builds without V8 as well. They are also included in the regular unittests
|
|
# target for simplicity.
|
|
v8_executable("cppgc_unittests") {
|
|
testonly = true
|
|
|
|
configs = [
|
|
"../..:external_config",
|
|
"../..:internal_config_base",
|
|
]
|
|
|
|
sources = [ "heap/cppgc/run-all-unittests.cc" ]
|
|
|
|
deps = [
|
|
":cppgc_unittests_sources",
|
|
"../..:cppgc_for_testing",
|
|
"//testing/gmock",
|
|
"//testing/gtest",
|
|
]
|
|
}
|
|
|
|
v8_source_set("cppgc_unittests_sources") {
|
|
testonly = true
|
|
|
|
sources = [
|
|
"heap/cppgc/concurrent-sweeper-unittest.cc",
|
|
"heap/cppgc/custom-spaces-unittest.cc",
|
|
"heap/cppgc/finalizer-trait-unittest.cc",
|
|
"heap/cppgc/free-list-unittest.cc",
|
|
"heap/cppgc/garbage-collected-unittest.cc",
|
|
"heap/cppgc/gc-info-unittest.cc",
|
|
"heap/cppgc/gc-invoker-unittest.cc",
|
|
"heap/cppgc/heap-growing-unittest.cc",
|
|
"heap/cppgc/heap-object-header-unittest.cc",
|
|
"heap/cppgc/heap-page-unittest.cc",
|
|
"heap/cppgc/heap-unittest.cc",
|
|
"heap/cppgc/logging-unittest.cc",
|
|
"heap/cppgc/marker-unittest.cc",
|
|
"heap/cppgc/marking-verifier-unittest.cc",
|
|
"heap/cppgc/marking-visitor-unittest.cc",
|
|
"heap/cppgc/member-unittest.cc",
|
|
"heap/cppgc/minor-gc-unittest.cc",
|
|
"heap/cppgc/object-start-bitmap-unittest.cc",
|
|
"heap/cppgc/page-memory-unittest.cc",
|
|
"heap/cppgc/persistent-unittest.cc",
|
|
"heap/cppgc/prefinalizer-unittest.cc",
|
|
"heap/cppgc/source-location-unittest.cc",
|
|
"heap/cppgc/stack-unittest.cc",
|
|
"heap/cppgc/stats-collector-unittest.cc",
|
|
"heap/cppgc/sweeper-unittest.cc",
|
|
"heap/cppgc/test-platform.cc",
|
|
"heap/cppgc/test-platform.h",
|
|
"heap/cppgc/tests.cc",
|
|
"heap/cppgc/tests.h",
|
|
"heap/cppgc/visitor-unittest.cc",
|
|
"heap/cppgc/worklist-unittest.cc",
|
|
"heap/cppgc/write-barrier-unittest.cc",
|
|
]
|
|
|
|
configs = [
|
|
"../..:external_config",
|
|
"../..:internal_config_base",
|
|
"../..:cppgc_base_config",
|
|
]
|
|
|
|
deps = [
|
|
"//testing/gmock",
|
|
"//testing/gtest",
|
|
]
|
|
}
|
|
|
|
v8_executable("unittests") {
|
|
testonly = true
|
|
|
|
# TODO(machenbach): Translate from gyp.
|
|
#['OS=="aix"', {
|
|
# 'ldflags': [ '-Wl,-bbigtoc' ],
|
|
#}],
|
|
|
|
deps = [
|
|
":cppgc_unittests_sources",
|
|
":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/assembler-tester.h",
|
|
"../../test/common/wasm/wasm-macro-gen.h",
|
|
"../../testing/gmock-support.h",
|
|
"../../testing/gtest-support.h",
|
|
"api/access-check-unittest.cc",
|
|
"api/exception-unittest.cc",
|
|
"api/interceptor-unittest.cc",
|
|
"api/isolate-unittest.cc",
|
|
"api/remote-object-unittest.cc",
|
|
"api/resource-constraints-unittest.cc",
|
|
"api/v8-object-unittest.cc",
|
|
"asmjs/asm-scanner-unittest.cc",
|
|
"asmjs/asm-types-unittest.cc",
|
|
"base/address-region-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/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/region-allocator-unittest.cc",
|
|
"base/sys-info-unittest.cc",
|
|
"base/template-utils-unittest.cc",
|
|
"base/threaded-list-unittest.cc",
|
|
"base/utils/random-number-generator-unittest.cc",
|
|
"base/vlq-base64-unittest.cc",
|
|
"codegen/code-stub-assembler-unittest.cc",
|
|
"codegen/code-stub-assembler-unittest.h",
|
|
"codegen/register-configuration-unittest.cc",
|
|
"codegen/source-position-table-unittest.cc",
|
|
"compiler-dispatcher/compiler-dispatcher-unittest.cc",
|
|
"compiler-dispatcher/optimizing-compile-dispatcher-unittest.cc",
|
|
"compiler/backend/instruction-selector-unittest.cc",
|
|
"compiler/backend/instruction-selector-unittest.h",
|
|
"compiler/backend/instruction-sequence-unittest.cc",
|
|
"compiler/backend/instruction-sequence-unittest.h",
|
|
"compiler/backend/instruction-unittest.cc",
|
|
"compiler/branch-elimination-unittest.cc",
|
|
"compiler/bytecode-analysis-unittest.cc",
|
|
"compiler/checkpoint-elimination-unittest.cc",
|
|
"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/decompression-optimizer-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/int64-lowering-unittest.cc",
|
|
"compiler/js-call-reducer-unittest.cc",
|
|
"compiler/js-create-lowering-unittest.cc",
|
|
"compiler/js-intrinsic-lowering-unittest.cc",
|
|
"compiler/js-native-context-specialization-unittest.cc",
|
|
"compiler/js-operator-unittest.cc",
|
|
"compiler/js-typed-lowering-unittest.cc",
|
|
"compiler/linkage-tail-call-unittest.cc",
|
|
"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/redundancy-elimination-unittest.cc",
|
|
"compiler/regalloc/live-range-unittest.cc",
|
|
"compiler/regalloc/mid-tier-register-allocator-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",
|
|
"date/date-cache-unittest.cc",
|
|
"diagnostics/eh-frame-iterator-unittest.cc",
|
|
"diagnostics/eh-frame-writer-unittest.cc",
|
|
"execution/microtask-queue-unittest.cc",
|
|
"heap/allocation-observer-unittest.cc",
|
|
"heap/barrier-unittest.cc",
|
|
"heap/bitmap-test-utils.h",
|
|
"heap/bitmap-unittest.cc",
|
|
"heap/code-object-registry-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/heap-utils.h",
|
|
"heap/item-parallel-job-unittest.cc",
|
|
"heap/js-member-unittest.cc",
|
|
"heap/list-unittest.cc",
|
|
"heap/local-factory-unittest.cc",
|
|
"heap/local-heap-unittest.cc",
|
|
"heap/marking-unittest.cc",
|
|
"heap/marking-worklist-unittest.cc",
|
|
"heap/memory-reducer-unittest.cc",
|
|
"heap/object-stats-unittest.cc",
|
|
"heap/persistent-handles-unittest.cc",
|
|
"heap/safepoint-unittest.cc",
|
|
"heap/slot-set-unittest.cc",
|
|
"heap/spaces-unittest.cc",
|
|
"heap/unified-heap-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-job-unittest.cc",
|
|
"libplatform/default-platform-unittest.cc",
|
|
"libplatform/default-worker-threads-task-runner-unittest.cc",
|
|
"libplatform/task-queue-unittest.cc",
|
|
"libplatform/worker-thread-unittest.cc",
|
|
"logging/counters-unittest.cc",
|
|
"numbers/bigint-unittest.cc",
|
|
"numbers/conversions-unittest.cc",
|
|
"objects/backing-store-unittest.cc",
|
|
"objects/object-unittest.cc",
|
|
"objects/osr-optimized-code-cache-unittest.cc",
|
|
"objects/value-serializer-unittest.cc",
|
|
"objects/weakarraylist-unittest.cc",
|
|
"parser/ast-value-unittest.cc",
|
|
"parser/preparser-unittest.cc",
|
|
"profiler/strings-storage-unittest.cc",
|
|
"regress/regress-crbug-1041240-unittest.cc",
|
|
"regress/regress-crbug-1056054-unittest.cc",
|
|
"regress/regress-crbug-938251-unittest.cc",
|
|
"run-all-unittests.cc",
|
|
"strings/char-predicates-unittest.cc",
|
|
"strings/unicode-unittest.cc",
|
|
"tasks/background-compile-task-unittest.cc",
|
|
"tasks/cancelable-tasks-unittest.cc",
|
|
"test-helpers.cc",
|
|
"test-helpers.h",
|
|
"test-utils.cc",
|
|
"test-utils.h",
|
|
"torque/earley-parser-unittest.cc",
|
|
"torque/ls-json-unittest.cc",
|
|
"torque/ls-message-unittest.cc",
|
|
"torque/ls-server-data-unittest.cc",
|
|
"torque/torque-unittest.cc",
|
|
"torque/torque-utils-unittest.cc",
|
|
"utils/allocation-unittest.cc",
|
|
"utils/detachable-vector-unittest.cc",
|
|
"utils/locked-queue-unittest.cc",
|
|
"utils/utils-unittest.cc",
|
|
"utils/vector-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/simd-shuffle-unittest.cc",
|
|
"wasm/streaming-decoder-unittest.cc",
|
|
"wasm/subtyping-unittest.cc",
|
|
"wasm/wasm-code-manager-unittest.cc",
|
|
"wasm/wasm-compiler-unittest.cc",
|
|
"wasm/wasm-macro-gen-unittest.cc",
|
|
"wasm/wasm-module-builder-unittest.cc",
|
|
"wasm/wasm-module-sourcemap-unittest.cc",
|
|
"zone/zone-allocator-unittest.cc",
|
|
"zone/zone-chunk-list-unittest.cc",
|
|
"zone/zone-unittest.cc",
|
|
]
|
|
|
|
if (v8_enable_wasm_gdb_remote_debugging) {
|
|
sources += [ "wasm/wasm-gdbserver-unittest.cc" ]
|
|
}
|
|
|
|
if (v8_current_cpu == "arm") {
|
|
sources += [
|
|
"assembler/turbo-assembler-arm-unittest.cc",
|
|
"compiler/arm/instruction-selector-arm-unittest.cc",
|
|
]
|
|
} else if (v8_current_cpu == "arm64") {
|
|
sources += [
|
|
"assembler/turbo-assembler-arm64-unittest.cc",
|
|
"compiler/arm64/instruction-selector-arm64-unittest.cc",
|
|
]
|
|
} else if (v8_current_cpu == "x86") {
|
|
sources += [
|
|
"assembler/turbo-assembler-ia32-unittest.cc",
|
|
"compiler/ia32/instruction-selector-ia32-unittest.cc",
|
|
]
|
|
} else if (v8_current_cpu == "mips" || v8_current_cpu == "mipsel") {
|
|
sources += [
|
|
"assembler/turbo-assembler-mips-unittest.cc",
|
|
"compiler/mips/instruction-selector-mips-unittest.cc",
|
|
]
|
|
} else if (v8_current_cpu == "mips64" || v8_current_cpu == "mips64el") {
|
|
sources += [
|
|
"assembler/turbo-assembler-mips64-unittest.cc",
|
|
"compiler/mips64/instruction-selector-mips64-unittest.cc",
|
|
]
|
|
} else if (v8_current_cpu == "x64") {
|
|
sources += [
|
|
"assembler/turbo-assembler-x64-unittest.cc",
|
|
"compiler/x64/instruction-selector-x64-unittest.cc",
|
|
"wasm/trap-handler-x64-unittest.cc",
|
|
]
|
|
} else if (v8_current_cpu == "ppc" || v8_current_cpu == "ppc64") {
|
|
sources += [
|
|
"assembler/turbo-assembler-ppc-unittest.cc",
|
|
"compiler/ppc/instruction-selector-ppc-unittest.cc",
|
|
]
|
|
} else if (v8_current_cpu == "s390" || v8_current_cpu == "s390x") {
|
|
sources += [
|
|
"assembler/turbo-assembler-s390-unittest.cc",
|
|
"compiler/s390/instruction-selector-s390-unittest.cc",
|
|
]
|
|
}
|
|
|
|
if (is_posix) {
|
|
sources += [ "wasm/trap-handler-posix-unittest.cc" ]
|
|
}
|
|
|
|
if (is_win) {
|
|
sources += [ "wasm/trap-handler-win-unittest.cc" ]
|
|
}
|
|
|
|
configs = [
|
|
"../..:cppgc_base_config",
|
|
"../..:external_config",
|
|
"../..:internal_config_base",
|
|
]
|
|
|
|
deps = [
|
|
"..:common_test_headers",
|
|
"../..:v8_for_testing",
|
|
"../..:v8_libbase",
|
|
"../..:v8_libplatform",
|
|
"../..:wasm_test_common",
|
|
"../../third_party/inspector_protocol:crdtp_test",
|
|
"//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" ]
|
|
}
|
|
}
|