tree: 344544de8305fe6e8cbf767f427106be3f2c7434 [path history] [tgz]
  1. archivist.shard.test-cml
  2. asan_options.shard.test-cml
  3. audio_output.shard.test-cml
  4. chromium_system_test_facet.shard.test-cml
  5. chromium_test_facet.shard.test-cml
  6. context_provider.shard.test-cml
  7. elf_test_ambient_exec_runner.shard.test-cml
  8. elf_test_runner.shard.test-cml
  9. fonts.shard.test-cml
  10. logger.shard.test-cml
  11. mark_vmo_executable.shard.test-cml
  12. minimum.shard.test-cml
  13. network.shard.test-cml
  14. OWNERS
  15. platform_video_codecs.shard.test-cml
  16. present_view.shard.test-cml
  17. README.md
  18. sysmem.shard.test-cml
  19. system_test_minimum.shard.test-cml
  20. test_fonts.shard.test-cml
  21. test_ui_stack.shard.test-cml
  22. web_instance.shard.test-cml
build/config/fuchsia/test/README.md

Manifest Fragments

This directory contains the manifest fragments that are required for running Fuchsia tests hermetically. Tests start from minimum.shard.test-cml and add additional capabilities as necessary by providing the additional_manifest_fragments argument. Some fragments are explained in detail below:

General Purpose Fragments

archivist.shard.test-cml

Runs an archivist-for-embedding with custom protocol routing for tests that want to intercept events written to a LogSink by a component.

chromium_test_facet.shard.test-cml

Runs tests in the chromium test realm, which is mostly hermetic but has access to specific system services that cannot (currently) be faked. For more information, see https://fxbug.dev/91934. This is generally required for all Chromium tests not using the chromium_system_test_facet.

fonts.shard.test-cml

For tests that need fuchsia.fonts.Provider to provide a basic set of fonts. This shard runs an isolated font provider with fonts bundled into the fonts package.

test_fonts.shard.test-cml

For tests that need fuchsia.fonts.Provider to provide a specific set of fonts (beyond that provided by fonts.shard.test-cml). This shard requires fonts to be provided as a directory. The directory must be named config-data, must contain the file named all_font_manifest.json, and all the font files named in it. For details see the font manifest in Fuchsia documentation.

The user of this shard must provide a directory /pkg/test_fonts, which must contain all the files described above.

Within Chromium, these fonts are usually provided via the target //skia:test_fonts.

mark_vmo_executable.shard.test-cml

Required by tests that execute JavaScript. Should only be required in a small number of tests.

minimum.shard.test-cml

Capabilities required by anything that uses //base/test when running in the (default) chromium test realm. It is the default base fragment for most test() Components.

logger.shard.test-cml

For tests that test logging functionality by providing fuchsia.logger.Log.

sysmem.shard.test-cml

For tests that depend on the sysmem service (e.g. to allocate image buffers to share with Vulkan and Scenic).

system_test_minimum.shard.test-cml

Capabilities required by anything that uses //base/test when running as a system test in the chromium-system test realm. It is the base fragment for test() Components that use the chromium_system_test_facet.

Most tests use the minimum shard.

chromium_system_test_facet.shard.test-cml

Runs tests in the chromium-system test realm. This is required for Chromium tests that are intended to run against the actual system and its real system services. This is required for, for example, performance tests intended to measure system performance. Another overlapping use case is tests that need to be run in environments without access to the packages containing fake implementations of required protocols that other tests use. (https://crbug.com/1408597 should make that use case obsolete.)

Most tests should use the chromium_test_facet.

test_ui_stack.shard.test-cml

For tests that need an isolated UI subsystem, that supports the Flatland API set. This allows tests to e.g. run with view-focus unaffected by any other tests running concurrently on the device, as well as providing test-only functionality such as input-injection support.

WebEngine Fragments

The following fragments are specific to WebEngine functionality as documented documentation at https://fuchsia.dev/reference/fidl/fuchsia.web#CreateContextParams and https://fuchsia.dev/reference/fidl/fuchsia.web#ContextFeatureFlags. Any test-specific exceptions are documented for each file.

audio_output.shard.test-cml

Required by tests that need to enable audio output.

platform_video_codecs.shard.test-cml

Required by tests that need accelerated (e.g., hardware) video codecs. A private (semi-isolated) instance of codec_factory is run for tests using this shard in support of running on system images that don't run it.

network.shard.test-cml

For tests that need access to network services, including those that access a local HTTP server.

network.shard.test-cml

Corresponds to the NETWORK flag. Required for enabling network access. Note that access to the root SSL certificates is not needed if ContextProvider is used to launch the Context. The fuchsia.device.NameProvider dependency comes from fdio.

present_view.shard.test-cml

Services that are needed to render web content in a Scenic view and present it. Most services are required per the FIDL documentation.

web_instance.shard.test-cml

Contains services that need to be present when creating a fuchsia.web.Context. Note that the fuchsia.scheduler.ProfileProvider service is only used in tests that encounter memory pressure code.