blob: b10ba7a56ec53c378e9de28837181146848c37db [file] [log] [blame]
# Copyright 2018 The Fuchsia 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/components.gni")
import("//build/fidl/fidl.gni")
import("//build/packages/sdk_fuchsia_package.gni")
import("//build/testing/cc_test_executable.gni")
import("//src/graphics/lib/magma/gnbuild/magma.gni")
group("integration") {
testonly = true
public_deps = [
":linux_x64",
":magma_conformance_tests",
":magma_conformance_tests_hermetic",
]
}
group("tests") {
testonly = true
deps = [
":magma-conformance-tests-generic",
":magma-conformance-tests-generic-hermetic",
]
}
group("linux_x64") {
testonly = true
public_deps = [
":virtmagma_conformance_tests(//build/toolchain:linux_x64)",
":virtmagma_no_cpp_test(//build/toolchain:linux_x64)",
]
}
# Clarify that certain definitions are referenced from driver
# integration testing areas.
visibility_list = [
"//src/graphics/drivers/*",
"//src/graphics/magma/tests/integration/*",
"//vendor/google/*",
]
source_set("vendor_helper_interface") {
visibility = visibility_list
sources = [ "vendor_helper_generic.h" ]
public_deps = [
":fuchsia.gpu.magma.test_cpp",
"//sdk/lib/syslog/cpp",
]
}
# Server implmentations should depend on :vendor_helper_interface
fidl("fuchsia.gpu.magma.test") {
visibility = [ "." ]
sources = [ "test_magma.fidl" ]
public_deps = [ "//zircon/vdso/zx" ]
}
fuchsia_component_manifest("conformance_child_manifest") {
component_name = "magma_conformance_tests"
manifest = "meta/magma_conformance_tests_child.cml"
}
fuchsia_component_manifest("conformance_child_hermetic_manifest") {
testonly = true
component_name = "magma_conformance_tests"
manifest = "meta/magma_conformance_tests_child_hermetic.cml"
}
fuchsia_structured_config_cpp_elf_lib("conformance-config") {
cm_label = ":conformance_child_manifest"
}
cc_test_executable("magma_conformance_tests") {
testonly = true
deps = [ ":test_magma_source" ]
}
cc_test_executable("magma_conformance_hermetic_tests") {
testonly = true
deps = [ ":test_magma_source_hermetic" ]
}
source_set("test_magma_source") {
testonly = true
sources = [
"main.cc",
"test_magma.cc",
"test_magma_c.c",
"test_magma_fidl.cc",
]
deps = [
":conformance-config",
":fuchsia.gpu.magma.test_cpp",
"//sdk/lib/component/incoming/cpp",
"//sdk/lib/magma_client:magma_headers",
"//src/graphics/lib/magma/src/libmagma",
"//src/graphics/magma/lib/magma_client/test_util:magma_map_cpu",
"//src/lib/fsl",
"//src/lib/fxl:fxl_cli",
"//src/lib/testing/loop_fixture",
"//third_party/googletest:gtest_no_testonly",
"//zircon/system/ulib/trace",
]
if (is_fuchsia) {
deps += [
"//sdk/fidl/fuchsia.gpu.magma:fuchsia.gpu.magma_cpp",
"//sdk/fidl/fuchsia.io:fuchsia.io_cpp",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_cpp",
"//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem_cpp",
"//sdk/fidl/fuchsia.tracing.provider:fuchsia.tracing.provider_cpp",
"//sdk/lib/async-loop:async-loop-cpp",
"//sdk/lib/fdio",
"//src/graphics/magma/lib/magma/platform:logger",
"//src/graphics/magma/lib/magma/platform:logger_provider_header",
"//src/graphics/magma/lib/magma/platform:trace_provider",
"//src/lib/diagnostics/fake-log-sink/cpp",
]
}
}
source_set("test_magma_source_hermetic") {
testonly = true
defines = [ "MAGMA_HERMETIC=1" ]
sources = [
"main.cc",
"test_magma.cc",
"test_magma_c.c",
"test_magma_fidl.cc",
]
deps = [
":conformance-config",
":fuchsia.gpu.magma.test_cpp",
"//sdk/lib/component/incoming/cpp",
"//sdk/lib/magma_client:magma_headers",
"//src/graphics/lib/magma/src/libmagma:magma_hermetic",
"//src/graphics/magma/lib/magma_client/test_util:magma_map_cpu",
"//src/lib/fsl",
"//src/lib/fxl:fxl_cli",
"//src/lib/testing/loop_fixture",
"//third_party/googletest:gtest",
]
if (is_fuchsia) {
deps += [
"//sdk/fidl/fuchsia.gpu.magma:fuchsia.gpu.magma_cpp",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_cpp",
"//sdk/fidl/fuchsia.tracing.provider:fuchsia.tracing.provider_cpp",
"//sdk/lib/async-loop:async-loop-cpp",
"//sdk/lib/fdio",
"//src/graphics/magma/lib/magma/platform:logger",
"//src/graphics/magma/lib/magma/platform:logger_provider_header",
"//src/graphics/magma/lib/magma/platform:trace_provider",
"//src/lib/diagnostics/fake-log-sink/cpp",
]
}
}
source_set("test_virtmagma_source") {
testonly = true
defines = [ "VIRTMAGMA=1" ]
sources = [
"main.cc",
"test_magma.cc",
"test_magma_c.c",
]
deps = [
"//sdk/lib/magma_client:magma_headers",
"//src/graphics/lib/magma/src/libmagma_virt",
"//src/graphics/magma/lib/magma_client/test_util:magma_map_cpu",
"//src/lib/fxl:fxl_cli",
"//third_party/googletest:gtest",
]
}
cc_test_executable("virtmagma_conformance_tests") {
testonly = true
deps = [ ":test_virtmagma_source" ]
}
cc_test_executable("virtmagma_no_cpp_test") {
testonly = true
# TODO(https://fxbug.dev/42170578) - use configs to set -no-stdlib++ in a way that doesn't
# conflict with -static-libstdc++.
ldflags = [
"-nostdlib++",
"-Wno-unused-command-line-argument",
]
sources = [
"main.c",
"test_magma_c.c",
]
deps = [
"//sdk/lib/magma_client:magma_headers",
"//src/graphics/lib/magma/src/libmagma_virt",
]
disable_syslog_backend = true
# Builds fail
exclude_toolchain_tags = [ "asan" ]
}
cc_test_executable("virtmagma_sync_file_tests") {
testonly = true
defines = [ "VIRTMAGMA=1" ]
sources = [ "test_magma_sync_file.cc" ]
deps = [
"//sdk/lib/magma_client:magma_headers",
"//src/graphics/lib/magma/src/libmagma_virt",
"//src/lib/fxl/test:gtest_main",
]
include_dirs = [
"//third_party/android/platform/bionic/libc/kernel/uapi",
"//third_party/android/platform/bionic/libc/kernel/android/uapi",
]
}
group("test-device-resources") {
deps = [
":test-device-1",
":test-device-2",
]
}
resource("test-device-1") {
sources = [ "resources/test-device" ]
outputs = [ "data/devices-for-enumeration-test/abcd1234" ]
}
resource("test-device-2") {
sources = [ "resources/test-device" ]
outputs = [ "data/devices-for-enumeration-test/slightly-longer-entry-name" ]
}
fuchsia_component("magma-conformance-tests-child-component") {
testonly = true
cm_label = ":conformance_child_manifest"
deps = [ ":magma_conformance_tests" ]
}
fuchsia_component("magma-conformance-tests-child-hermetic-component") {
testonly = true
cm_label = ":conformance_child_hermetic_manifest"
deps = [ ":magma_conformance_hermetic_tests" ]
}
#
# This package is included as a subpackage for vendor-specific conformance tests,
# similarly to how its included here for :magma-conformance-tests-generic
#
fuchsia_package("magma-conformance-tests-child") {
testonly = true
visibility = visibility_list
package_name = "test-magma"
deps = [
":magma-conformance-tests-child-component",
":test-device-resources",
]
}
fuchsia_package("magma-conformance-tests-child-hermetic") {
testonly = true
package_name = "test-magma"
deps = [
":magma-conformance-tests-child-hermetic-component",
":test-device-resources",
]
}
#
# Conformance tests for generic vendor (runs only on devices with a
# single magma device).
#
executable("vendor-helper-generic") {
testonly = true
sources = [ "vendor_helper_generic.cc" ]
deps = [
":vendor_helper_interface",
"//sdk/lib/async-loop:async-loop-cpp",
"//sdk/lib/component/outgoing/cpp",
"//sdk/lib/syslog/cpp",
]
}
fuchsia_component("vendor-helper-generic-component") {
testonly = true
component_name = "vendor-helper"
manifest = "meta/vendor_helper.cml"
deps = [ ":vendor-helper-generic" ]
}
fuchsia_test_component("magma-conformance-tests-generic-component") {
component_name = "magma-conformance-tests"
manifest = "meta/magma_conformance_tests_generic.cml"
test_type = "system"
}
fuchsia_test_package("magma-conformance-tests-generic") {
test_components = [ ":magma-conformance-tests-generic-component" ]
subpackages = [ ":magma-conformance-tests-child" ]
deps = [ ":vendor-helper-generic-component" ]
test_specs = {
environments = magma_intel_gpu_envs
log_settings = {
max_severity = "ERROR"
}
}
}
#
# Hermetic version of generic conformance tests
#
fuchsia_component_manifest("conformance-hermetic-manifest") {
component_name = "magma-conformance-tests-hermetic"
manifest = "meta/magma_conformance_tests_hermetic.cml"
}
fuchsia_test_package("magma-conformance-tests-generic-hermetic") {
test_components = [ ":magma-conformance-tests-generic-component" ]
subpackages = [ ":magma-conformance-tests-child-hermetic" ]
deps = [ ":vendor-helper-generic-component" ]
test_specs = {
environments = magma_intel_gpu_envs
log_settings = {
max_severity = "ERROR"
}
}
}