mirror of
https://github.com/dart-lang/sdk
synced 2024-11-02 14:32:24 +00:00
573fad4ff0
Build one package with three elf_test_runner components: one for each of the binaries that the test harness invokes on the target. (Though currently only tests that use "dart" are setup.) Create includable CML shards for the capabilites required by the AOT and JIT VMs. Fold test_runner's fuchsia_cfv2.dart back into fuchsia.dart. TEST=ci Bug: https://github.com/dart-lang/sdk/issues/38752 Change-Id: I7bd8d43d184cbcb11903c7aed77ce31fb30cb894 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/332451 Commit-Queue: Ryan Macnak <rmacnak@google.com> Reviewed-by: Zijie He <zijiehe@google.com> Reviewed-by: Alexander Thomas <athom@google.com>
240 lines
6 KiB
Text
240 lines
6 KiB
Text
# Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
|
|
# for details. 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/gclient_args.gni")
|
|
import("sdk_args.gni")
|
|
|
|
targeting_fuchsia = target_os == "fuchsia"
|
|
|
|
# This target will be built if no target is specified when invoking ninja.
|
|
group("default") {
|
|
if (targeting_fuchsia) {
|
|
# Fuchsia has run_vm_tests marked testonly.
|
|
testonly = true
|
|
}
|
|
deps = [ ":runtime" ]
|
|
}
|
|
|
|
group("most") {
|
|
import("runtime/runtime_args.gni")
|
|
if (targeting_fuchsia) {
|
|
# Fuchsia has run_vm_tests marked testonly.
|
|
testonly = true
|
|
}
|
|
deps = [
|
|
":analysis_server",
|
|
":create_sdk",
|
|
":dart2js",
|
|
":dartanalyzer",
|
|
":ddc",
|
|
":runtime",
|
|
]
|
|
}
|
|
|
|
group("runtime") {
|
|
import("runtime/runtime_args.gni")
|
|
|
|
if (targeting_fuchsia) {
|
|
# Fuchsia has run_vm_tests marked testonly.
|
|
testonly = true
|
|
}
|
|
|
|
deps = [
|
|
"runtime/bin:dart",
|
|
"runtime/bin:entrypoints_verification_test",
|
|
"runtime/bin:ffi_test_dynamic_library",
|
|
"runtime/bin:ffi_test_functions",
|
|
"runtime/bin:process_test",
|
|
"runtime/bin:run_vm_tests",
|
|
"runtime/vm:kernel_platform_files($host_toolchain)",
|
|
"samples/ffi/http:fake_http",
|
|
"utils/dartdev:dartdev",
|
|
"utils/dds:dds",
|
|
"utils/kernel-service:kernel-service",
|
|
]
|
|
|
|
# This flag is set in runtime/runtime_args.gni
|
|
# The analyze_snapshot tool is only supported on 64 bit AOT builds running
|
|
# under linux and android platforms
|
|
if (build_analyze_snapshot) {
|
|
deps += [
|
|
# The `analyze_snapshot` tests require the `analyze_snapshot` as well as
|
|
# `gen_snapshot` binaries.
|
|
"runtime/bin:analyze_snapshot",
|
|
"runtime/bin:analyze_snapshot($host_toolchain)",
|
|
"runtime/bin:gen_snapshot",
|
|
"runtime/bin:gen_snapshot($host_toolchain)",
|
|
]
|
|
}
|
|
|
|
if (is_linux || is_android) {
|
|
deps += [ "runtime/bin:abstract_socket_test" ]
|
|
} else if (is_fuchsia) {
|
|
deps += [ ":fuchsia_test_package" ]
|
|
}
|
|
}
|
|
|
|
# A separate target and not included in group("runtime"). This way the target\
|
|
# "runtime" does not get many executables extra as build output.
|
|
group("run_ffi_unit_tests") {
|
|
deps = [ "runtime/bin/ffi_unit_test:run_ffi_unit_tests" ]
|
|
}
|
|
|
|
group("runtime_precompiled") {
|
|
deps = [
|
|
"runtime/bin:dart_precompiled_runtime",
|
|
"runtime/bin:process_test",
|
|
]
|
|
if (is_linux || is_android) {
|
|
deps += [ "runtime/bin:abstract_socket_test" ]
|
|
}
|
|
}
|
|
|
|
group("create_sdk") {
|
|
public_deps = [ "sdk:create_sdk" ]
|
|
}
|
|
|
|
group("create_platform_sdk") {
|
|
public_deps = [ "sdk:create_platform_sdk" ]
|
|
}
|
|
|
|
group("dart2js") {
|
|
deps = [ "utils/compiler:dart2js" ]
|
|
}
|
|
|
|
group("dart2wasm_platform") {
|
|
deps = [
|
|
":runtime_precompiled",
|
|
"utils/dart2wasm:compile_dart2wasm_js_compatibility_platform",
|
|
"utils/dart2wasm:compile_dart2wasm_platform",
|
|
"utils/dart2wasm:compile_dart2wasm_stringref_platform",
|
|
"utils/dart2wasm:dart2wasm_snapshot",
|
|
]
|
|
if (defined(is_product)) {
|
|
if (is_product) {
|
|
deps += [ "utils/dart2wasm:dart2wasm_product_snapshot" ]
|
|
} else {
|
|
deps += [ "utils/dart2wasm:dart2wasm_asserts_snapshot" ]
|
|
}
|
|
}
|
|
}
|
|
|
|
group("dart2wasm") {
|
|
deps = [
|
|
":dart2wasm_platform",
|
|
"utils/dart2wasm:test_wasm_modules",
|
|
]
|
|
}
|
|
|
|
group("dart2wasm_benchmark") {
|
|
deps = [
|
|
":dart2wasm_platform",
|
|
"third_party/binaryen:wasm-opt",
|
|
]
|
|
}
|
|
|
|
group("dartanalyzer") {
|
|
deps = [ "utils/dartanalyzer" ]
|
|
}
|
|
|
|
group("ddc") {
|
|
deps = [ "utils/ddc:dartdevc" ]
|
|
}
|
|
|
|
group("analysis_server") {
|
|
deps = [ "utils/analysis_server" ]
|
|
}
|
|
|
|
# This is the target that is built on the dart2js build bots.
|
|
# It must depend on anything that is required by the dart2js
|
|
# test suites.
|
|
group("dart2js_bot") {
|
|
deps = [ ":create_sdk" ]
|
|
}
|
|
|
|
# This rule and the compressed_observatory_archive rule are for the Fuchsia
|
|
# bots that pre-build the Observatory. They copy the observatory tar files to
|
|
# the root build output directory for convenient access by the Fuchsia buildbot
|
|
# scripts.
|
|
group("observatory_archive") {
|
|
deps = [ "runtime/observatory:copy_observatory_archive" ]
|
|
}
|
|
|
|
group("compressed_observatory_archive") {
|
|
deps = [ "runtime/observatory:copy_compressed_observatory_archive" ]
|
|
}
|
|
|
|
if (is_fuchsia) {
|
|
import("third_party/fuchsia/sdk/${host_os}/build/component.gni")
|
|
import("third_party/fuchsia/sdk/${host_os}/build/package.gni")
|
|
|
|
test_binaries = [
|
|
"dart",
|
|
"dart_precompiled_runtime",
|
|
"run_vm_tests",
|
|
]
|
|
|
|
foreach(binary, test_binaries) {
|
|
fuchsia_component("${binary}_test_component") {
|
|
testonly = true
|
|
manifest = "runtime/bin/${binary}_test_component.cml"
|
|
data_deps = [
|
|
"runtime/bin:${binary}",
|
|
"runtime/bin:ffi_test_dynamic_library",
|
|
"runtime/bin:ffi_test_functions",
|
|
]
|
|
library_files = [
|
|
"libffi_test_dynamic_library.so",
|
|
"libffi_test_functions.so",
|
|
]
|
|
resource_files = [
|
|
".dart_tool/package_config.json",
|
|
"pkg/testing/test/hello_test.dart",
|
|
"tools/addlatexhash.dart",
|
|
]
|
|
resource_dirs = [
|
|
"pkg/async_helper",
|
|
"pkg/expect",
|
|
"pkg/meta",
|
|
"tests/ffi",
|
|
"third_party/pkg/ffi",
|
|
"third_party/pkg/path",
|
|
]
|
|
resources = []
|
|
foreach(file, library_files) {
|
|
resources += [
|
|
{
|
|
path = root_out_dir + "/" + file
|
|
dest = "lib/" + file
|
|
},
|
|
]
|
|
}
|
|
foreach(file, resource_files) {
|
|
resources += [
|
|
{
|
|
path = file
|
|
dest = "data/" + file
|
|
},
|
|
]
|
|
}
|
|
resources +=
|
|
exec_script("tools/fuchsia/find_resources.py", resource_dirs, "json")
|
|
}
|
|
}
|
|
|
|
fuchsia_package("fuchsia_test_package") {
|
|
testonly = true
|
|
if (is_debug) {
|
|
package_name = "dart_test_debug"
|
|
} else if (is_release) {
|
|
package_name = "dart_test_release"
|
|
} else if (is_product) {
|
|
package_name = "dart_test_product"
|
|
}
|
|
deps = []
|
|
foreach(binary, test_binaries) {
|
|
deps += [ ":${binary}_test_component" ]
|
|
}
|
|
}
|
|
}
|