[gn] Add unittests

BUG=chromium:474921
NOTRY=true

Committed: https://crrev.com/67e549ec5b34ad02506abb2720c6a0851ae31f5e
Cr-Commit-Position: refs/heads/master@{#36510}

Review-Url: https://codereview.chromium.org/2011853002
Cr-Commit-Position: refs/heads/master@{#36582}
This commit is contained in:
machenbach 2016-05-30 04:34:33 -07:00 committed by Commit bot
parent 07ce602d4c
commit 143b3d167d
3 changed files with 223 additions and 16 deletions

View File

@ -69,15 +69,6 @@ declare_args() {
v8_random_seed = "314159265"
v8_toolset_for_shell = "host"
if (v8_use_snapshot && v8_use_external_startup_data) {
snapshot_target = ":v8_external_snapshot"
} else if (v8_use_snapshot) {
snapshot_target = ":v8_snapshot"
} else {
assert(!v8_use_external_startup_data)
snapshot_target = ":v8_nosnapshot"
}
###############################################################################
# Configurations
#
@ -643,6 +634,17 @@ action("run_mksnapshot") {
# Source Sets (aka static libraries)
#
source_set("v8_maybe_snapshot") {
if (v8_use_snapshot && v8_use_external_startup_data) {
public_deps = [ ":v8_external_snapshot" ]
} else if (v8_use_snapshot) {
public_deps = [ ":v8_snapshot" ]
} else {
assert(!v8_use_external_startup_data)
public_deps = [ ":v8_nosnapshot" ]
}
}
v8_source_set("v8_nosnapshot") {
visibility = [ ":*" ] # Only targets in this file can depend on this.
@ -2004,7 +2006,7 @@ v8_source_set("fuzzer_support") {
configs = [ ":internal_config_base" ]
deps = [
snapshot_target,
":v8_maybe_snapshot",
]
public_deps = [
@ -2046,6 +2048,33 @@ if (current_toolchain == v8_snapshot_toolchain) {
# Public targets
#
want_v8_shell = (
(current_toolchain == host_toolchain && v8_toolset_for_shell == "host") ||
(current_toolchain == v8_snapshot_toolchain &&
v8_toolset_for_shell == "host") ||
(current_toolchain != host_toolchain && v8_toolset_for_shell == "target"))
group("gn_all") {
testonly = true
deps = [
":d8",
]
if (want_v8_shell) {
deps += [
":v8_shell",
]
}
if (host_os != "mac" || !is_android) {
# These items don't compile for Android on Mac.
deps += [
"test/unittests:unittests",
]
}
}
if (is_component_build) {
component("v8") {
sources = [
@ -2054,7 +2083,7 @@ if (is_component_build) {
public_deps = [
":v8_base",
snapshot_target,
":v8_maybe_snapshot",
]
configs -= [ "//build/config/compiler:chromium_code" ]
@ -2071,7 +2100,7 @@ if (is_component_build) {
group("v8") {
public_deps = [
":v8_base",
snapshot_target,
":v8_maybe_snapshot",
]
public_configs = [ ":external_config" ]
}
@ -2118,10 +2147,7 @@ executable("d8") {
}
}
if ((current_toolchain == host_toolchain && v8_toolset_for_shell == "host") ||
(current_toolchain == v8_snapshot_toolchain &&
v8_toolset_for_shell == "host") ||
(current_toolchain != host_toolchain && v8_toolset_for_shell == "target")) {
if (want_v8_shell) {
executable("v8_shell") {
sources = [
"samples/shell.cc",

15
build_overrides/gtest.gni Normal file
View File

@ -0,0 +1,15 @@
# 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.
# Exclude support for registering main function in multi-process tests.
gtest_include_multiprocess = false
# Exclude support for platform-specific operations across unit tests.
gtest_include_platform_test = true
# Exclude support for testing Objective C code on OS X and iOS.
gtest_include_objc_support = true
# Exclude support for flushing coverage files on iOS.
gtest_include_ios_coverage = true

166
test/unittests/BUILD.gn Normal file
View File

@ -0,0 +1,166 @@
# 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")
executable("unittests") {
testonly = true
sources = [
"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/iterator-unittest.cc",
"base/logging-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/utils/random-number-generator-unittest.cc",
"cancelable-tasks-unittest.cc",
"char-predicates-unittest.cc",
"compiler/branch-elimination-unittest.cc",
"compiler/coalesced-live-ranges-unittest.cc",
"compiler/common-operator-reducer-unittest.cc",
"compiler/common-operator-unittest.cc",
"compiler/compiler-test-utils.h",
"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/escape-analysis-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/int64-lowering-unittest.cc",
"compiler/js-builtin-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-unittest.cc",
"compiler/liveness-analyzer-unittest.cc",
"compiler/load-elimination-unittest.cc",
"compiler/loop-peeling-unittest.cc",
"compiler/machine-operator-reducer-unittest.cc",
"compiler/machine-operator-unittest.cc",
"compiler/move-optimizer-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/register-allocator-unittest.cc",
"compiler/schedule-unittest.cc",
"compiler/scheduler-rpo-unittest.cc",
"compiler/scheduler-unittest.cc",
"compiler/simplified-operator-reducer-unittest.cc",
"compiler/simplified-operator-unittest.cc",
"compiler/state-values-utils-unittest.cc",
"compiler/tail-call-optimization-unittest.cc",
"compiler/typer-unittest.cc",
"compiler/value-numbering-reducer-unittest.cc",
"compiler/zone-pool-unittest.cc",
"counters-unittest.cc",
"heap/bitmap-unittest.cc",
"heap/gc-idle-time-handler-unittest.cc",
"heap/gc-tracer-unittest.cc",
"heap/heap-unittest.cc",
"heap/memory-reducer-unittest.cc",
"heap/scavenge-job-unittest.cc",
"heap/slot-set-unittest.cc",
"interpreter/bytecode-array-builder-unittest.cc",
"interpreter/bytecode-array-iterator-unittest.cc",
"interpreter/bytecode-array-writer-unittest.cc",
"interpreter/bytecode-peephole-optimizer-unittest.cc",
"interpreter/bytecode-pipeline-unittest.cc",
"interpreter/bytecode-register-allocator-unittest.cc",
"interpreter/bytecodes-unittest.cc",
"interpreter/constant-array-builder-unittest.cc",
"interpreter/interpreter-assembler-unittest.cc",
"interpreter/interpreter-assembler-unittest.h",
"interpreter/source-position-table-unittest.cc",
"libplatform/default-platform-unittest.cc",
"libplatform/task-queue-unittest.cc",
"libplatform/worker-thread-unittest.cc",
"locked-queue-unittest.cc",
"run-all-unittests.cc",
"test-utils.cc",
"test-utils.h",
"wasm/ast-decoder-unittest.cc",
"wasm/decoder-unittest.cc",
"wasm/encoder-unittest.cc",
"wasm/leb-helper-unittest.cc",
"wasm/loop-assignment-analysis-unittest.cc",
"wasm/module-decoder-unittest.cc",
"wasm/switch-logic-unittest.cc",
"wasm/wasm-macro-gen-unittest.cc",
]
if (v8_target_arch == "arm") {
sources += [ "compiler/arm/instruction-selector-arm-unittest.cc" ]
} else if (v8_target_arch == "arm64") {
sources += [ "compiler/arm64/instruction-selector-arm64-unittest.cc" ]
} else if (v8_target_arch == "ia32") {
sources += [ "compiler/ia32/instruction-selector-ia32-unittest.cc" ]
} else if (v8_target_arch == "mips") {
sources += [ "compiler/mips/instruction-selector-mips-unittest.cc" ]
} else if (v8_target_arch == "mipsel") {
sources += [ "compiler/mipsel/instruction-selector-mipsel-unittest.cc" ]
} else if (v8_target_arch == "mips64") {
sources += [ "compiler/mips64/instruction-selector-mips64-unittest.cc" ]
} else if (v8_target_arch == "mips64el") {
sources += [ "compiler/mips64el/instruction-selector-mips64el-unittest.cc" ]
} else if (v8_target_arch == "x64") {
sources += [ "compiler/x64/instruction-selector-x64-unittest.cc" ]
} else if (v8_target_arch == "ppc" || v8_target_arch == "ppc64") {
sources += [ "compiler/ppc/instruction-selector-ppc-unittest.cc" ]
} else if (v8_target_arch == "s390" || v8_target_arch == "s390x") {
sources += [ "compiler/s390/instruction-selector-s390-unittest.cc" ]
}
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [ "//build/config/compiler:no_chromium_code" ]
configs += [
"../..:internal_config_base",
"../..:features",
"../..:toolchain",
]
# TODO(machenbach): Translate from gyp.
#['OS=="aix"', {
# 'ldflags': [ '-Wl,-bbigtoc' ],
#}],
deps = [
"../..:v8_libplatform",
"//build/config/sanitizers:deps",
"//build/win:default_exe_manifest",
"//testing/gmock",
"//testing/gtest",
]
if (is_component_build) {
# compiler-unittests can't be built against a shared library, so we
# need to depend on the underlying static target in that case.
deps += [ "../..:v8_maybe_snapshot" ]
} else {
deps += [ "../..:v8" ]
}
}