095132d67a
This adds GN configs for using sanitizer coverage and refactors gcov configs. Now, both coverage kinds are behind the same gn argument v8_code_coverage. This also switches the bot to GN. Bug: chromium:645890,v8:5502 Change-Id: I3af606e0cad109dd790a121d0d92e53cf4e38f9a Reviewed-on: https://chromium-review.googlesource.com/549360 Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#46254}
192 lines
4.8 KiB
Plaintext
192 lines
4.8 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("//build/config/sanitizers/sanitizers.gni")
|
|
import("//third_party/icu/config.gni")
|
|
import("v8.gni")
|
|
|
|
declare_args() {
|
|
# Sets the test isolation mode (noop|prepare|check).
|
|
v8_test_isolation_mode = "noop"
|
|
}
|
|
|
|
template("v8_isolate_run") {
|
|
forward_variables_from(invoker,
|
|
"*",
|
|
[
|
|
"deps",
|
|
"isolate",
|
|
])
|
|
|
|
# Remember target name as within the action scope the target name will be
|
|
# different.
|
|
name = target_name
|
|
|
|
assert(defined(invoker.deps))
|
|
assert(defined(invoker.isolate))
|
|
|
|
if (name != "" && v8_test_isolation_mode != "noop") {
|
|
action(name + "_run") {
|
|
testonly = true
|
|
|
|
deps = invoker.deps
|
|
|
|
script = "//tools/isolate_driver.py"
|
|
|
|
sources = [
|
|
invoker.isolate,
|
|
]
|
|
|
|
inputs = [
|
|
# Files that are known to be involved in this step.
|
|
"//tools/swarming_client/isolate.py",
|
|
"//tools/swarming_client/run_isolated.py",
|
|
]
|
|
|
|
if (v8_test_isolation_mode == "prepare") {
|
|
outputs = [
|
|
"$root_out_dir/$name.isolated.gen.json",
|
|
]
|
|
} else if (v8_test_isolation_mode == "check") {
|
|
outputs = [
|
|
"$root_out_dir/$name.isolated",
|
|
"$root_out_dir/$name.isolated.state",
|
|
]
|
|
}
|
|
|
|
# Translate gn to gyp variables.
|
|
if (v8_code_coverage) {
|
|
coverage = "1"
|
|
} else {
|
|
coverage = "0"
|
|
}
|
|
if (is_asan) {
|
|
asan = "1"
|
|
} else {
|
|
asan = "0"
|
|
}
|
|
if (is_msan) {
|
|
msan = "1"
|
|
} else {
|
|
msan = "0"
|
|
}
|
|
if (is_tsan) {
|
|
tsan = "1"
|
|
} else {
|
|
tsan = "0"
|
|
}
|
|
if (is_cfi) {
|
|
cfi_vptr = "1"
|
|
} else {
|
|
cfi_vptr = "0"
|
|
}
|
|
if (target_cpu == "x86") {
|
|
target_arch = "ia32"
|
|
} else {
|
|
target_arch = target_cpu
|
|
}
|
|
if (is_debug) {
|
|
configuration_name = "Debug"
|
|
} else {
|
|
configuration_name = "Release"
|
|
}
|
|
if (is_component_build) {
|
|
component = "shared_library"
|
|
} else {
|
|
component = "static_library"
|
|
}
|
|
if (icu_use_data_file) {
|
|
icu_use_data_file_flag = "1"
|
|
} else {
|
|
icu_use_data_file_flag = "0"
|
|
}
|
|
if (v8_use_external_startup_data) {
|
|
use_external_startup_data = "1"
|
|
} else {
|
|
use_external_startup_data = "0"
|
|
}
|
|
if (v8_use_snapshot) {
|
|
use_snapshot = "true"
|
|
} else {
|
|
use_snapshot = "false"
|
|
}
|
|
if (v8_has_valgrind) {
|
|
has_valgrind = "1"
|
|
} else {
|
|
has_valgrind = "0"
|
|
}
|
|
if (v8_gcmole) {
|
|
gcmole = "1"
|
|
} else {
|
|
gcmole = "0"
|
|
}
|
|
|
|
# Note, all paths will be rebased in isolate_driver.py to be relative to
|
|
# the isolate file.
|
|
args = [
|
|
v8_test_isolation_mode,
|
|
"--isolated",
|
|
rebase_path("$root_out_dir/$name.isolated", root_build_dir),
|
|
"--isolate",
|
|
rebase_path(invoker.isolate, root_build_dir),
|
|
|
|
# Path variables are used to replace file paths when loading a .isolate
|
|
# file
|
|
"--path-variable",
|
|
"DEPTH",
|
|
rebase_path("//", root_build_dir),
|
|
"--path-variable",
|
|
"PRODUCT_DIR",
|
|
rebase_path(root_out_dir, root_build_dir),
|
|
|
|
# TODO(machenbach): Set variables for remaining features.
|
|
"--config-variable",
|
|
"CONFIGURATION_NAME=$configuration_name",
|
|
"--config-variable",
|
|
"OS=$target_os",
|
|
"--config-variable",
|
|
"asan=$asan",
|
|
"--config-variable",
|
|
"cfi_vptr=$cfi_vptr",
|
|
"--config-variable",
|
|
"gcmole=$gcmole",
|
|
"--config-variable",
|
|
"has_valgrind=$has_valgrind",
|
|
"--config-variable",
|
|
"icu_use_data_file_flag=$icu_use_data_file_flag",
|
|
"--config-variable",
|
|
"is_gn=1",
|
|
"--config-variable",
|
|
"msan=$msan",
|
|
"--config-variable",
|
|
"tsan=$tsan",
|
|
"--config-variable",
|
|
"coverage=$coverage",
|
|
"--config-variable",
|
|
"sanitizer_coverage=$sanitizer_coverage_flags",
|
|
"--config-variable",
|
|
"component=$component",
|
|
"--config-variable",
|
|
"target_arch=$target_arch",
|
|
"--config-variable",
|
|
"v8_use_external_startup_data=$use_external_startup_data",
|
|
"--config-variable",
|
|
"v8_use_snapshot=$use_snapshot",
|
|
]
|
|
|
|
if (is_win) {
|
|
args += [
|
|
"--config-variable",
|
|
"msvs_version=2015",
|
|
]
|
|
} else {
|
|
args += [
|
|
"--config-variable",
|
|
"msvs_version=0",
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|