blob: eaa6a6f34067aaf0c33e1d9f3710113fa708a226 [file] [log] [blame]
# Copyright 2019 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/config.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")
import("//src/hwinfo/hwinfo_config.gni")
###############################################################################
# GROUPS
###############################################################################
group("tests") {
testonly = true
public_deps = [
":fake_hwinfo_board_config",
":fake_hwinfo_product_config",
":feedback-data-tests",
# Packages for the components that we are injecting in the integration tests.
"//garnet/bin/sysmem_connector",
"//src/cobalt/bin/testing/mock_cobalt",
"//src/developer/feedback/feedback_data:feedback_agent",
"//src/developer/feedback/testing/fakes:fake-last-reboot-info-provider",
"//src/diagnostics/archivist",
"//src/graphics/bin/vulkan_loader",
"//src/hwinfo:tests",
"//src/sys/pkg/bin/system-update-checker",
]
}
###############################################################################
# PACKAGES
###############################################################################
test_package("feedback-data-tests") {
tests = [
{
name = "board_info_provider_unittest"
},
{
name = "channel_provider_unittest"
},
{
# Binary name on the host. We prefix it with "data_provider" to reduce collisions.
name = "data_provider_config_unittest"
# Component and binary name on the target. Confined to the package so no risk of collisions.
dest = "config_unittest"
},
{
name = "data_provider_unittest"
},
{
name = "data_register_unittest"
},
{
name = "datastore_unittest"
},
{
name = "device_id_provider_unittest"
},
{
name = "feedback_data_integration_test"
# We need to also test on real devices as we talk to a real Scenic service.
environments = basic_envs
},
{
# Binary name on the host. We prefix it with "feedback_data" to reduce collisions.
name = "feedback_data_main_service_unittest"
# Component and binary name on the target. Confined to the package so no risk of collisions.
dest = "main_service_unittest"
},
{
name = "inspect_ptr_unittest"
},
{
name = "integrity_reporter_unittest"
},
{
name = "kernel_log_ptr_integration_test"
},
{
# Binary name on the host. We prefix it with "feedback_data" to reduce collisions.
name = "feedback_data_last_reboot_info_provider_unittest"
# Component and binary name on the target. Confined to the package so no risk of collisions.
dest = "last_reboot_info_provider_unittest"
},
{
name = "product_info_provider_unittest"
},
{
name = "screenshot_ptr_unittest"
},
{
name = "system_log_ptr_unittest"
},
{
name = "system_log_recorder_unittest"
},
]
binaries = [
# needed for feedback_data_integration_test
{
name = "inspect_exe"
},
]
meta = [
{
path = "meta/inspect_test_app.cmx"
dest = "inspect_test_app.cmx"
},
]
resources = [
# needed for data_provider_unittest
{
path = "//src/developer/feedback/testing/resources/checkerboard_100.png"
dest = "checkerboard_100.png"
},
# needed for config_unittest
{
path = "configs/valid.json"
dest = "valid_config.json"
},
# needed for config_unittest
{
path = "configs/valid_empty_list.json"
dest = "valid_config_empty_list.json"
},
# needed for config_unittest
{
path = "configs/bad_schema_duplicated_attachment_key.json"
dest = "bad_schema_duplicated_attachment_key_config.json"
},
# needed for config_unittest
{
path = "configs/bad_schema_spurious_field.json"
dest = "bad_schema_spurious_field_config.json"
},
# needed for config_unittest
{
path = "configs/bad_schema_missing_required_field.json"
dest = "bad_schema_missing_required_field_config.json"
},
# needed for main_service_unittest
{
path = "configs/main_service_unittest.json"
# main_service.cc expects a config at /pkg/data/config.json
dest = "config.json"
},
]
deps = [
":board_info_provider_unittest",
":channel_provider_unittest",
":config_unittest",
":data_provider_unittest",
":data_register_unittest",
":datastore_unittest",
":device_id_provider_unittest",
":feedback_data_integration_test",
":inspect_exe",
":inspect_ptr_unittest",
":integrity_reporter_unittest",
":kernel_log_ptr_integration_test",
":last_reboot_info_provider_unittest",
":main_service_unittest",
":product_info_provider_unittest",
":screenshot_ptr_unittest",
":system_log_ptr_unittest",
":system_log_recorder_unittest",
]
}
###############################################################################
# EXECUTABLES
###############################################################################
executable("board_info_provider_unittest") {
testonly = true
sources = [ "board_info_provider_unittest.cc" ]
deps = [
"//src/developer/feedback/feedback_data:constants",
"//src/developer/feedback/feedback_data/annotations:board_info_provider",
"//src/developer/feedback/testing:cobalt_test_fixture",
"//src/developer/feedback/testing:gtest_with_syslog_main",
"//src/developer/feedback/testing:unit_test_fixture",
"//src/developer/feedback/testing/stubs:board_info_provider",
"//src/developer/feedback/testing/stubs:cobalt",
"//src/lib/fxl",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
"//zircon/public/lib/async-cpp",
"//zircon/public/lib/zx",
]
}
executable("channel_provider_unittest") {
testonly = true
sources = [ "channel_provider_unittest.cc" ]
deps = [
"//sdk/lib/syslog/cpp",
"//src/developer/feedback/feedback_data:constants",
"//src/developer/feedback/feedback_data/annotations:channel_provider",
"//src/developer/feedback/feedback_data/annotations:types",
"//src/developer/feedback/testing:cobalt_test_fixture",
"//src/developer/feedback/testing:gtest_with_syslog_main",
"//src/developer/feedback/testing:unit_test_fixture",
"//src/developer/feedback/testing/stubs:channel_provider",
"//src/developer/feedback/testing/stubs:cobalt",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
"//zircon/public/lib/async-cpp",
"//zircon/public/lib/fit",
"//zircon/public/lib/zx",
]
}
executable("config_unittest") {
testonly = true
output_name = "data_provider_config_unittest"
sources = [ "config_unittest.cc" ]
deps = [
"//src/developer/feedback/feedback_data:config",
"//src/developer/feedback/testing:gtest_with_syslog_main",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
"//zircon/public/lib/zx",
]
}
executable("data_provider_unittest") {
testonly = true
sources = [ "data_provider_unittest.cc" ]
deps = [
"//garnet/public/lib/fostr/fidl/fuchsia.math",
"//sdk/fidl/fuchsia.feedback",
"//sdk/fidl/fuchsia.math",
"//sdk/fidl/fuchsia.sys",
"//sdk/lib/fidl/cpp",
"//src/developer/feedback/feedback_data:constants",
"//src/developer/feedback/feedback_data:data_provider",
"//src/developer/feedback/feedback_data:device_id_provider",
"//src/developer/feedback/feedback_data:integrity_reporter",
"//src/developer/feedback/feedback_data/annotations:types",
"//src/developer/feedback/feedback_data/attachments:types",
"//src/developer/feedback/testing:cobalt_test_fixture",
"//src/developer/feedback/testing:gmatchers",
"//src/developer/feedback/testing:gpretty_printers",
"//src/developer/feedback/testing:gtest_with_syslog_main",
"//src/developer/feedback/testing:unit_test_fixture",
"//src/developer/feedback/testing/stubs:cobalt",
"//src/developer/feedback/testing/stubs:scenic",
"//src/developer/feedback/utils:archive",
"//src/lib/fsl",
"//src/lib/fxl",
"//src/lib/timekeeper:testing",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
"//third_party/rapidjson",
"//zircon/public/lib/zx",
]
}
executable("data_register_unittest") {
testonly = true
sources = [ "data_register_unittest.cc" ]
deps = [
"//sdk/fidl/fuchsia.feedback",
"//src/developer/feedback/feedback_data:data_register",
"//src/developer/feedback/testing:gtest_with_syslog_main",
"//src/developer/feedback/testing:unit_test_fixture",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
]
}
executable("datastore_unittest") {
testonly = true
sources = [ "datastore_unittest.cc" ]
deps = [
"//sdk/fidl/fuchsia.hwinfo",
"//sdk/fidl/fuchsia.intl",
"//src/developer/feedback/feedback_data:constants",
"//src/developer/feedback/feedback_data:datastore",
"//src/developer/feedback/feedback_data:device_id_provider",
"//src/developer/feedback/feedback_data/annotations:types",
"//src/developer/feedback/feedback_data/attachments:types",
"//src/developer/feedback/testing:cobalt_test_fixture",
"//src/developer/feedback/testing:gmatchers",
"//src/developer/feedback/testing:gtest_with_syslog_main",
"//src/developer/feedback/testing:unit_test_fixture",
"//src/developer/feedback/testing/stubs:board_info_provider",
"//src/developer/feedback/testing/stubs:channel_provider",
"//src/developer/feedback/testing/stubs:cobalt",
"//src/developer/feedback/testing/stubs:inspect",
"//src/developer/feedback/testing/stubs:last_reboot_info_provider",
"//src/developer/feedback/testing/stubs:logger",
"//src/developer/feedback/testing/stubs:product_info_provider",
"//src/developer/feedback/utils:files",
"//src/developer/feedback/utils:time",
"//src/lib/files",
"//src/lib/fxl",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
"//zircon/public/lib/async-cpp",
"//zircon/public/lib/fit",
"//zircon/public/lib/zx",
]
}
executable("device_id_provider_unittest") {
testonly = true
sources = [ "device_id_provider_unittest.cc" ]
deps = [
"//src/developer/feedback/feedback_data:device_id_provider",
"//src/developer/feedback/feedback_data/annotations:types",
"//src/developer/feedback/testing:gtest_with_syslog_main",
"//src/developer/feedback/utils:errors",
"//src/lib/files:files",
"//src/lib/uuid:uuid",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
]
}
executable("feedback_data_integration_test") {
testonly = true
sources = [ "feedback_data_integration_test.cc" ]
deps = [
":zx_object_util",
"//garnet/public/lib/fostr/fidl/fuchsia.feedback",
"//sdk/fidl/fuchsia.cobalt",
"//sdk/fidl/fuchsia.cobalt.test",
"//sdk/fidl/fuchsia.feedback",
"//sdk/fidl/fuchsia.hwinfo",
"//sdk/fidl/fuchsia.logger",
"//sdk/fidl/fuchsia.sys",
"//sdk/fidl/fuchsia.update.channel",
"//sdk/lib/fidl/cpp",
"//sdk/lib/inspect/contrib/cpp:archive_reader",
"//sdk/lib/sys/cpp",
"//sdk/lib/sys/cpp/testing:integration",
"//sdk/lib/syslog/cpp",
"//src/developer/feedback/feedback_data:constants",
"//src/developer/feedback/testing:gmatchers",
"//src/developer/feedback/testing/fakes:cobalt",
"//src/developer/feedback/utils:archive",
"//src/developer/feedback/utils/cobalt",
"//src/lib/fsl",
"//src/lib/fxl/test:gtest_main",
"//src/lib/uuid:uuid",
"//src/ui/lib/escher/test/common:gtest_vulkan",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
"//third_party/rapidjson",
"//zircon/public/lib/zx",
]
}
executable("main_service_unittest") {
testonly = true
output_name = "feedback_data_main_service_unittest"
sources = [ "main_service_unittest.cc" ]
deps = [
"//sdk/lib/inspect/testing/cpp",
"//sdk/lib/syslog/cpp",
"//src/developer/feedback/feedback_data:main_service",
"//src/developer/feedback/testing:cobalt_test_fixture",
"//src/developer/feedback/testing:gtest_with_syslog_main",
"//src/developer/feedback/testing:unit_test_fixture",
"//src/developer/feedback/testing/stubs:cobalt",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
"//zircon/system/ulib/inspect",
]
}
executable("inspect_exe") {
testonly = true
sources = [ "inspect_exe.cc" ]
deps = [
"//sdk/lib/sys/cpp",
"//sdk/lib/sys/inspect/cpp",
"//src/lib/fxl",
"//zircon/system/ulib/async-loop:async-loop-cpp",
"//zircon/system/ulib/async-loop:async-loop-default",
]
}
executable("inspect_ptr_unittest") {
testonly = true
sources = [ "inspect_ptr_unittest.cc" ]
deps = [
"//sdk/lib/sys/cpp/testing:integration",
"//src/developer/feedback/feedback_data/attachments:attachment_providers",
"//src/developer/feedback/feedback_data/attachments:types",
"//src/developer/feedback/testing:gpretty_printers",
"//src/developer/feedback/testing:gtest_with_syslog_main",
"//src/developer/feedback/testing:unit_test_fixture",
"//src/developer/feedback/testing/stubs:inspect",
"//src/developer/feedback/utils:errors",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
]
}
executable("integrity_reporter_unittest") {
testonly = true
sources = [ "integrity_reporter_unittest.cc" ]
deps = [
"//sdk/lib/syslog/cpp",
"//src/developer/feedback/feedback_data:integrity_reporter",
"//src/developer/feedback/feedback_data/annotations:types",
"//src/developer/feedback/feedback_data/attachments:types",
"//src/developer/feedback/utils:errors",
"//src/lib/fxl/test:gtest_main",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
"//third_party/rapidjson",
"//zircon/public/lib/fit",
]
}
executable("kernel_log_ptr_integration_test") {
testonly = true
sources = [ "kernel_log_ptr_integration_test.cc" ]
deps = [
"//sdk/fidl/fuchsia.boot:fuchsia.boot_c",
"//sdk/lib/sys/cpp/testing:integration",
"//src/developer/feedback/feedback_data/attachments:attachment_providers",
"//src/developer/feedback/feedback_data/attachments:types",
"//src/developer/feedback/utils:errors",
"//src/lib/fxl",
"//src/lib/fxl/test:gtest_main",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
"//zircon/public/lib/zx",
]
}
executable("last_reboot_info_provider_unittest") {
testonly = true
output_name = "feedback_data_last_reboot_info_provider_unittest"
sources = [ "last_reboot_info_provider_unittest.cc" ]
deps = [
"//src/developer/feedback/feedback_data:constants",
"//src/developer/feedback/feedback_data/annotations:last_reboot_info_provider",
"//src/developer/feedback/feedback_data/annotations:types",
"//src/developer/feedback/testing:cobalt_test_fixture",
"//src/developer/feedback/testing:gtest_with_syslog_main",
"//src/developer/feedback/testing:unit_test_fixture",
"//src/developer/feedback/testing/stubs:cobalt",
"//src/developer/feedback/testing/stubs:last_reboot_info_provider",
"//src/developer/feedback/utils:time",
"//src/lib/fxl",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
"//zircon/public/lib/async-cpp",
]
}
executable("product_info_provider_unittest") {
testonly = true
sources = [ "product_info_provider_unittest.cc" ]
deps = [
"//src/developer/feedback/feedback_data:constants",
"//src/developer/feedback/feedback_data/annotations:product_info_provider",
"//src/developer/feedback/testing:cobalt_test_fixture",
"//src/developer/feedback/testing:gtest_with_syslog_main",
"//src/developer/feedback/testing:unit_test_fixture",
"//src/developer/feedback/testing/stubs:cobalt",
"//src/developer/feedback/testing/stubs:product_info_provider",
"//src/developer/feedback/utils:errors",
"//src/lib/fxl",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
"//zircon/public/lib/async-cpp",
"//zircon/public/lib/zx",
]
}
executable("screenshot_ptr_unittest") {
testonly = true
sources = [ "screenshot_ptr_unittest.cc" ]
deps = [
"//sdk/fidl/fuchsia.ui.scenic",
"//src/developer/feedback/feedback_data/attachments:attachment_providers",
"//src/developer/feedback/testing:gtest_with_syslog_main",
"//src/developer/feedback/testing:unit_test_fixture",
"//src/developer/feedback/testing/stubs:scenic",
"//src/lib/fxl",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
"//zircon/public/lib/async-cpp",
"//zircon/public/lib/zx",
]
}
executable("system_log_ptr_unittest") {
testonly = true
sources = [ "system_log_ptr_unittest.cc" ]
deps = [
"//garnet/public/lib/fostr/fidl/fuchsia.mem",
"//src/developer/feedback/feedback_data/attachments:attachment_providers",
"//src/developer/feedback/feedback_data/attachments:types",
"//src/developer/feedback/testing:gmatchers",
"//src/developer/feedback/testing:gpretty_printers",
"//src/developer/feedback/testing:gtest_with_syslog_main",
"//src/developer/feedback/testing:unit_test_fixture",
"//src/developer/feedback/testing/stubs:logger",
"//src/developer/feedback/utils:errors",
"//src/lib/fxl",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
"//zircon/public/lib/async-cpp",
"//zircon/public/lib/zx",
]
}
executable("system_log_recorder_unittest") {
testonly = true
sources = [ "system_log_recorder_unittest.cc" ]
deps = [
"//src/developer/feedback/feedback_data/attachments:types",
"//src/developer/feedback/feedback_data/system_log_recorder:src",
"//src/developer/feedback/testing:gmatchers",
"//src/developer/feedback/testing:gpretty_printers",
"//src/developer/feedback/testing:gtest_with_syslog_main",
"//src/developer/feedback/testing:unit_test_fixture",
"//src/developer/feedback/testing/stubs:logger",
"//src/developer/feedback/utils:errors",
"//src/developer/feedback/utils:files",
"//src/lib/files",
"//src/lib/fxl",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
"//zircon/public/lib/async-cpp",
"//zircon/public/lib/zx",
]
}
###############################################################################
# SOURCES
###############################################################################
source_set("zx_object_util") {
sources = [
"zx_object_util.cc",
"zx_object_util.h",
]
public_deps = [
"//sdk/lib/syslog/cpp",
"//zircon/public/lib/zx",
]
}
###############################################################################
# CONFIGS
###############################################################################
hwinfo_config_validate("fake_hwinfo_product_config_validate") {
type = "product"
config = "configs/hwinfo_product_config.json"
}
hwinfo_config_validate("fake_hwinfo_board_config_validate") {
type = "board"
config = "configs/hwinfo_board_config.json"
}
config_data("fake_hwinfo_product_config") {
for_pkg = "fake_hwinfo"
sources = [ rebase_path("configs/hwinfo_product_config.json") ]
outputs = [ "product_config.json" ]
deps = [ ":fake_hwinfo_product_config_validate" ]
}
config_data("fake_hwinfo_board_config") {
for_pkg = "fake_hwinfo"
sources = [ rebase_path("configs/hwinfo_board_config.json") ]
outputs = [ "board_config.json" ]
deps = [ ":fake_hwinfo_board_config_validate" ]
}
config_data("fake_hwinfo_factory_config") {
for_pkg = "fake_factory_store_providers"
sources = [ "configs/hwinfo_factory_config.json" ]
outputs = [ "fuchsia.factory.MiscFactoryStoreProvider.config" ]
}