|  | # Copyright 2020 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/test.gni") | 
|  | import("//build/testing/cc_test_executable.gni") | 
|  | import("//sdk/ctf/build/ctf.gni") | 
|  | import("//src/tests/fidl/conformance_suite/gidl-conformance-suite.gni") | 
|  | import("//tools/fidl/gidl/gidl.gni") | 
|  |  | 
|  | gidl_output_prefix = "conformance_suite__" | 
|  | gidl_deps = [] | 
|  | foreach(gidl_file, conformance_suite_gidl_files) { | 
|  | gidl_name = get_path_info(gidl_file, "name") | 
|  | target = "${gidl_output_prefix}${gidl_name}" | 
|  | gidl_deps += [ ":" + target ] | 
|  | gidl_hlcpp_conformance(target) { | 
|  | testonly = true | 
|  | inputs = [ gidl_file ] | 
|  | fidl = conformance_suite_fidl_target | 
|  | deps = [ | 
|  | ":test_util", | 
|  | "//zircon/system/ulib/zxtest", | 
|  | ] | 
|  | if (is_fuchsia) { | 
|  | deps += [ ":handle_util" ] | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | source_set("host_test_sources") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ | 
|  | "bits_unittest.cc", | 
|  | "bitset_unittest.cc", | 
|  | "clone_unittest.cc", | 
|  | "comparison_unittest.cc", | 
|  | "defaults_unittest.cc", | 
|  | "enum_unittest.cc", | 
|  | "fidl_test.cc", | 
|  | "roundtrip_test.cc", | 
|  | "string_unittest.cc", | 
|  | "table_unittest.cc", | 
|  | "vector_unittest.cc", | 
|  | "xunion_unittest.cc", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":test_util", | 
|  | "//sdk/testing/fidl:fidl_test_hlcpp", | 
|  | "//zircon/system/ulib/zxtest", | 
|  | ] | 
|  | } | 
|  |  | 
|  | source_set("test_sources") { | 
|  | testonly = true | 
|  |  | 
|  | # TODO(jamesr): Make this an sdk source set | 
|  | # sdk_name = "fidl_cpp_tests" | 
|  | # include_base = "//sdk" | 
|  |  | 
|  | sources = [ | 
|  | "binding_set_unittest.cc", | 
|  | "binding_unittest.cc", | 
|  | "collision_unittest.cc", | 
|  | "decode_handle_rights_test.cc", | 
|  | "encode_decode_unittest.cc", | 
|  | "event_sender_unittest.cc", | 
|  | "handle_close_many_unittest.cc", | 
|  | "interface_handle_unittest.cc", | 
|  | "interface_ptr_set_unittest.cc", | 
|  | "interface_ptr_unittest.cc", | 
|  | "interface_request_unittest.cc", | 
|  | "message_reader_unittest.cc", | 
|  | "message_unittest.cc", | 
|  | "proxy_controller_unittest.cc", | 
|  | "stub_controller_unittest.cc", | 
|  | "synchronous_interface_ptr_unittest.cc", | 
|  | "unknown_interactions_test.cc", | 
|  | "wire_format_v2_decode_test.cc", | 
|  | ] | 
|  |  | 
|  | deps = [ | 
|  | ":test_util", | 
|  | ":union_migration_test_fidl_hlcpp", | 
|  | "//sdk/lib/async:async-cpp", | 
|  | "//sdk/lib/async-loop", | 
|  | "//sdk/lib/async-loop:async-loop-cpp", | 
|  | "//sdk/lib/async-loop:async-loop-default", | 
|  | "//sdk/lib/fit-promise", | 
|  | "//sdk/testing/fidl:collision_test_hlcpp", | 
|  | "//sdk/testing/fidl:fidl_test_handles_hlcpp", | 
|  | "//sdk/testing/fidl:fidl_test_hlcpp", | 
|  | "//sdk/testing/fidl:test", | 
|  | "//sdk/testing/fidl:test_support", | 
|  | "//sdk/testing/fidl/protocols_tests:test.unknown.interactions_hlcpp", | 
|  | "//zircon/system/ulib/zxtest", | 
|  | ] | 
|  |  | 
|  | public_configs = [ "//sdk/config" ] | 
|  | } | 
|  |  | 
|  | cc_test_executable("fidl-hlcpp-conformance-tests_bin") { | 
|  | visibility = [ ":*" ] | 
|  | testonly = true | 
|  |  | 
|  | output_name = "fidl-hlcpp-conformance-tests" | 
|  |  | 
|  | # TODO(75000): Add GIDL to the CTS archive. | 
|  | deps = gidl_deps + [ | 
|  | "//sdk/lib/async-loop:async-loop-cpp", | 
|  | "//sdk/lib/async-loop:async-loop-default", | 
|  | "//sdk/testing/fidl:test", | 
|  | "//sdk/testing/fidl:test_support", | 
|  | "//zircon/system/ulib/zxtest", | 
|  | ] | 
|  | } | 
|  |  | 
|  | fuchsia_component("fidl-hlcpp-conformance-tests-component") { | 
|  | testonly = true | 
|  | component_name = "fidl-hlcpp-conformance-tests" | 
|  | manifest = "meta/fidl-hlcpp-conformance-tests.cml" | 
|  | visibility = [ ":*" ] | 
|  | deps = [ ":fidl-hlcpp-conformance-tests_bin" ] | 
|  | } | 
|  |  | 
|  | cc_test_executable("fidl-hlcpp-unit-tests_bin") { | 
|  | visibility = [ ":*" ] | 
|  | testonly = true | 
|  |  | 
|  | output_name = "fidl-hlcpp-unit-tests" | 
|  |  | 
|  | deps = [ | 
|  | ":host_test_sources", | 
|  | ":test_sources", | 
|  | "//sdk/lib/async-loop:async-loop-cpp", | 
|  | "//sdk/lib/async-loop:async-loop-default", | 
|  | "//sdk/testing/fidl:test", | 
|  | "//sdk/testing/fidl:test_support", | 
|  | "//zircon/system/ulib/zxtest", | 
|  | ] | 
|  | } | 
|  |  | 
|  | fuchsia_component("fidl-hlcpp-unit-tests-component") { | 
|  | testonly = true | 
|  | component_name = "fidl-hlcpp-unit-tests" | 
|  | manifest = "meta/fidl-hlcpp-unit-tests.cml" | 
|  | testonly = true | 
|  | visibility = [ ":*" ] | 
|  | deps = [ ":fidl-hlcpp-unit-tests_bin" ] | 
|  | } | 
|  |  | 
|  | ctf_fuchsia_package("fidl-hlcpp-unit-tests") { | 
|  | testonly = true | 
|  | package_name = "fidl-hlcpp-unit-tests" | 
|  | deps = [ ":fidl-hlcpp-unit-tests-component" ] | 
|  | } | 
|  |  | 
|  | ctf_fuchsia_package("fidl-hlcpp-conformance-tests") { | 
|  | testonly = true | 
|  | package_name = "fidl-hlcpp-conformance-tests" | 
|  | deps = [ ":fidl-hlcpp-conformance-tests-component" ] | 
|  | } | 
|  |  | 
|  | fuchsia_test_component("fidl-hlcpp-conformance-tests-root") { | 
|  | manifest = "meta/fidl-hlcpp-conformance-tests-root.cml" | 
|  | test_type = "ctf" | 
|  | } | 
|  |  | 
|  | fuchsia_test_component("fidl-hlcpp-unit-tests-root") { | 
|  | manifest = "meta/fidl-hlcpp-unit-tests-root.cml" | 
|  | test_type = "ctf" | 
|  | } | 
|  |  | 
|  | fuchsia_test_package("fidl-hlcpp-unit-tests-latest") { | 
|  | test_components = [ ":fidl-hlcpp-unit-tests-root" ] | 
|  | subpackages = [ ":fidl-hlcpp-unit-tests" ] | 
|  | } | 
|  |  | 
|  | fuchsia_test_package("fidl-hlcpp-conformance-tests-latest") { | 
|  | test_components = [ ":fidl-hlcpp-conformance-tests-root" ] | 
|  | subpackages = [ ":fidl-hlcpp-conformance-tests" ] | 
|  | } | 
|  |  | 
|  | if (is_host) { | 
|  | # TODO(johnshamoon): Add cts_test() and do this in the template. | 
|  | test("fidl-hlcpp-unit-tests-host") { | 
|  | output_name = "fidl-hlcpp-unit-tests" | 
|  | deps = [ | 
|  | ":host_test_sources", | 
|  | "//zircon/system/ulib/zxtest", | 
|  | ] | 
|  | } | 
|  |  | 
|  | test("fidl-hlcpp-conformance-tests-host") { | 
|  | output_name = "fidl-hlcpp-conformance-tests" | 
|  | deps = [ "//zircon/system/ulib/zxtest" ] + gidl_deps | 
|  | } | 
|  | } | 
|  |  | 
|  | fidl("union_migration_test_fidl") { | 
|  | testonly = true | 
|  | name = "fidl.test.unionmigration" | 
|  |  | 
|  | sources = [ "union_migration.test.fidl" ] | 
|  |  | 
|  | excluded_checks = [ "invalid-copyright-for-platform-source-library" ] | 
|  |  | 
|  | enable_hlcpp = true | 
|  | } | 
|  |  | 
|  | source_set("test_util") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ "test/test_util.h" ] | 
|  |  | 
|  | public_configs = [ "//sdk/config" ] | 
|  |  | 
|  | public_deps = [ "//sdk/lib/fidl/hlcpp:hlcpp_base" ] | 
|  | } | 
|  |  | 
|  | source_set("handle_util") { | 
|  | testonly = true | 
|  |  | 
|  | sources = [ | 
|  | "test/handle_util.cc", | 
|  | "test/handle_util.h", | 
|  | ] | 
|  |  | 
|  | public_configs = [ "//sdk/config" ] | 
|  |  | 
|  | public_deps = [ "//zircon/system/ulib/zx" ] | 
|  | } | 
|  |  | 
|  | group("tests") { | 
|  | testonly = true | 
|  | deps = [ | 
|  | ":fidl-hlcpp-conformance-tests-host($host_toolchain)", | 
|  | ":fidl-hlcpp-conformance-tests-latest", | 
|  | ":fidl-hlcpp-unit-tests-host($host_toolchain)", | 
|  | ":fidl-hlcpp-unit-tests-latest", | 
|  |  | 
|  | # CTF release archives | 
|  | ":fidl-hlcpp-conformance-tests_archive", | 
|  | ":fidl-hlcpp-unit-tests_archive", | 
|  | ] | 
|  | } |