| # 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/components.gni") |
| import("//build/rust/rustc_test.gni") |
| import("//tools/cmc/build/cmc.gni") |
| |
| group("integration") { |
| testonly = true |
| deps = [ ":font_provider_integration_tests" ] |
| } |
| |
| # Integration tests without a `main()` function. |
| rustc_test("font_provider_integration_tests_bin") { |
| name = "font_provider_integration_tests" |
| edition = "2021" |
| deps = [ |
| "//sdk/fidl/fuchsia.fonts:fuchsia.fonts-rustc", |
| "//sdk/fidl/fuchsia.fonts.experimental:fuchsia.fonts.experimental-rustc", |
| "//sdk/fidl/fuchsia.intl:fuchsia.intl-rustc", |
| "//sdk/fidl/fuchsia.io:fuchsia.io-rustc", |
| "//sdk/fidl/fuchsia.pkg:fuchsia.pkg-rustc", |
| "//src/fonts/char_set", |
| "//src/fonts/fidl_fuchsia_fonts_ext", |
| "//src/fonts/manifest", |
| "//src/lib/fdio/rust:fdio", |
| "//src/lib/fidl/rust/fidl", |
| "//src/lib/fuchsia-async", |
| "//src/lib/fuchsia-component-test", |
| "//src/lib/fuchsia-url", |
| "//src/lib/syslog/rust:syslog", |
| "//src/lib/zircon/rust:fuchsia-zircon", |
| "//third_party/rust_crates:anyhow", |
| "//third_party/rust_crates:futures", |
| "//third_party/rust_crates:itertools", |
| "//third_party/rust_crates:thiserror", |
| ] |
| visibility = [ ":*" ] |
| |
| sources = [ |
| "src/experimental_api/get_typeface_by_id.rs", |
| "src/experimental_api/get_typefaces_by_family.rs", |
| "src/experimental_api/list_typefaces.rs", |
| "src/experimental_api/mod.rs", |
| "src/experimental_api/util/mod.rs", |
| "src/lib.rs", |
| "src/old_api/mod.rs", |
| "src/reviewed_api/ephemeral.rs", |
| "src/reviewed_api/get_font_family_info.rs", |
| "src/reviewed_api/get_typeface.rs", |
| "src/reviewed_api/mod.rs", |
| "src/reviewed_api/util/mod.rs", |
| "src/util.rs", |
| ] |
| } |
| |
| # Generate arg-specialized manifests for font_provider_integration_test |
| |
| cmc_merge("fonts_with_ephemeral_fonts_cml") { |
| sources = [ |
| rebase_path("../../meta/fonts.cml"), |
| rebase_path("meta/ephemeral_fonts_shard.cml"), |
| ] |
| output_name = "fonts_with_ephemeral_fonts.cml" |
| } |
| |
| cmc_merge("fonts_with_aliases_fonts_cml") { |
| sources = [ |
| rebase_path("../../meta/fonts.cml"), |
| rebase_path("meta/aliases_fonts_shard.cml"), |
| ] |
| output_name = "fonts_with_aliases_fonts.cml" |
| } |
| |
| cmc_merge("fonts_with_small_fonts_cml") { |
| sources = [ |
| rebase_path("../../meta/fonts.cml"), |
| rebase_path("meta/small_fonts_shard.cml"), |
| ] |
| output_name = "fonts_with_small_fonts.cml" |
| } |
| |
| cmc_merge("fonts_with_medium_fonts_cml") { |
| sources = [ |
| rebase_path("../../meta/fonts.cml"), |
| rebase_path("meta/medium_fonts_shard.cml"), |
| ] |
| output_name = "fonts_with_medium_fonts.cml" |
| } |
| |
| cmc_merge("fonts_with_large_fonts_cml") { |
| sources = [ |
| rebase_path("../../meta/fonts.cml"), |
| rebase_path("meta/large_fonts_shard.cml"), |
| ] |
| output_name = "fonts_with_large_fonts.cml" |
| } |
| |
| # Integration test font collections |
| resource("testdata") { |
| sources = [ |
| "aliases.font_manifest.json", |
| "ephemeral.font_manifest.json", |
| ] |
| outputs = [ "data/testdata/{{source_file_part}}" ] |
| } |
| |
| fuchsia_component("fonts_with_aliases_fonts") { |
| testonly = true |
| manifest = "${target_out_dir}/fonts_with_aliases_fonts.cml" |
| deps = [ |
| ":testdata", |
| "//src/fonts:font_provider", |
| ] |
| manifest_deps = [ ":fonts_with_aliases_fonts_cml" ] |
| } |
| |
| fuchsia_component("fonts_with_ephemeral_fonts") { |
| testonly = true |
| manifest = "${target_out_dir}/fonts_with_ephemeral_fonts.cml" |
| deps = [ |
| ":testdata", |
| "//src/fonts:font_provider", |
| ] |
| manifest_deps = [ ":fonts_with_ephemeral_fonts_cml" ] |
| } |
| |
| fuchsia_component("fonts_with_large_fonts") { |
| testonly = true |
| manifest = "${target_out_dir}/fonts_with_large_fonts.cml" |
| deps = [ |
| "//src/fonts:font_provider", |
| "//src/fonts/collections:test-fonts-large-collection", |
| ] |
| manifest_deps = [ ":fonts_with_large_fonts_cml" ] |
| } |
| |
| fuchsia_component("fonts_with_medium_fonts") { |
| testonly = true |
| manifest = "${target_out_dir}/fonts_with_medium_fonts.cml" |
| deps = [ |
| "//src/fonts:font_provider", |
| "//src/fonts/collections:test-fonts-medium-collection", |
| ] |
| manifest_deps = [ ":fonts_with_medium_fonts_cml" ] |
| } |
| |
| fuchsia_component("fonts_with_small_fonts") { |
| testonly = true |
| manifest = "${target_out_dir}/fonts_with_small_fonts.cml" |
| deps = [ |
| "//src/fonts:font_provider", |
| "//src/fonts/collections:test-fonts-small-collection", |
| ] |
| manifest_deps = [ ":fonts_with_small_fonts_cml" ] |
| } |
| |
| # Main integration test driver and capability providers |
| fuchsia_component("font_provider_integration_tests_driver") { |
| testonly = true |
| component_name = "test_driver" |
| manifest = "meta/font_provider_integration_tests_driver.cml" |
| deps = [ ":font_provider_integration_tests_bin" ] |
| } |
| |
| fuchsia_component("mock_font_resolver_cm") { |
| testonly = true |
| component_name = "mock_font_resolver" |
| manifest = |
| "//src/fonts/testing/mock_font_resolver/meta/mock_font_resolver.cml" |
| deps = [ "//src/fonts/testing/mock_font_resolver:mock_font_resolver_bin" ] |
| } |
| |
| fuchsia_component("font_provider_integration_tests_cmp") { |
| testonly = true |
| component_name = "font_provider_integration_tests" |
| manifest = "meta/font_provider_integration_tests.cml" |
| } |
| |
| # Integration test package |
| fuchsia_test_package("font_provider_integration_tests") { |
| test_components = [ ":font_provider_integration_tests_cmp" ] |
| deps = [ |
| ":font_provider_integration_tests_driver", |
| ":fonts_with_aliases_fonts", |
| ":fonts_with_ephemeral_fonts", |
| ":fonts_with_large_fonts", |
| ":fonts_with_medium_fonts", |
| ":fonts_with_small_fonts", |
| ":mock_font_resolver_cm", |
| ] |
| test_specs = { |
| environments = basic_envs |
| } |
| } |