| # 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" |
| } |
| } |
| } |