README.md
1## Manifest Fragments 2 3This directory contains the manifest fragments that are required for running 4Fuchsia tests hermetically. Tests start from `minimum.shard.test-cml` and add 5additional capabilities as necessary by providing the 6`additional_manifest_fragments` argument. Some fragments are explained in detail 7below: 8 9### General Purpose Fragments 10 11#### archivist.shard.test-cml 12Runs an `archivist-without-attribution` with custom protocol routing for tests 13that want to intercept events written to a `LogSink` by a component. 14 15#### chromium_test_facet.shard.test-cml 16Runs tests in the `chromium` test realm, which is mostly hermetic but has access 17to specific system services that cannot (currently) be faked. For more 18information, see https://fxbug.dev/91934. This is generally required for all 19Chromium tests not using the 20[`chromium_system_test_facet`](#chromium_system_test_facetshardtest-cml). 21 22#### fonts.shard.test-cml 23For tests that test fonts by providing `fuchsia.fonts.Provider`. This shard 24runs an isolated font provider, but serves the fonts present on the system. 25 26#### test_fonts.shard.test-cml 27For tests that use the fonts in `//third_party/test_fonts` by way of 28`//skia:test_fonts_cfv2`. 29 30#### mark_vmo_executable.shard.test-cml 31Required by tests that execute JavaScript. Should only be required in a small 32number of tests. 33 34#### minimum.shard.test-cml 35Capabilities required by anything that uses `//base/test` when running in the 36(default) `chromium` test realm. It is the default base fragment for most 37`test()` Components. 38 39The system-wide `config-data` directory capability is routed to tests running in 40the realm so that individual tests may route subdirectories as needed. 41TODO(crbug.com/1360077): Remove this after migrating to the new mechanism. 42 43#### logger.shard.test-cml 44For tests that test logging functionality by providing `fuchsia.logger.Log`. 45 46#### sysmem.shard.test-cml 47For tests that depend on the sysmem service (e.g. to allocate image buffers to 48share with Vulkan and Scenic). 49 50#### system_test_minimum.shard.test-cml 51Capabilities required by anything that uses `//base/test` when running as a 52system test in the `chromium-system` test realm. It is the base fragment for 53`test()` Components that use the 54[`chromium_system_test_facet`](#chromium_system_test_facetshardtest-cml). 55 56Most tests use the [`minimum`](#minimumshardtest-cml) shard. 57 58#### chromium_system_test_facet.shard.test-cml 59Runs tests in the `chromium-system` test realm. This is required for Chromium 60tests that are intended to run against the actual system and its real system 61services. This is required for, for example, performance tests intended to 62measure system performance. Another overlapping use case is tests that need to 63be run in environments without access to the packages containing fake 64implementations of required protocols that other tests use. 65(https://crbug.com/1408597 should make that use case obsolete.) 66 67Most tests should use the 68[`chromium_test_facet`](#chromium_test_facetshardtest-cml). 69 70#### test_ui_stack.shard.test-cml 71For tests that need an isolated UI subsystem, that supports the Flatland 72API set. This allows tests to e.g. run with view-focus unaffected by any 73other tests running concurrently on the device, as well as providing test-only 74functionality such as input-injection support. 75 76#### gfx_test_ui_stack.shard.test-cml 77For tests that need an isolated display subsystem supporting the legacy 78Scenic/GFX APIs. 79 80### WebEngine Fragments 81The following fragments are specific to WebEngine functionality as documented 82documentation at 83https://fuchsia.dev/reference/fidl/fuchsia.web#CreateContextParams and 84https://fuchsia.dev/reference/fidl/fuchsia.web#ContextFeatureFlags. 85Any test-specific exceptions are documented for each file. 86 87#### audio_output.shard.test-cml 88Required by tests that need to enable audio output. 89 90#### platform_video_codecs.shard.test-cml 91Required by tests that need accelerated (e.g., hardware) video codecs. A private 92(semi-isolated) instance of codec_factory is run for tests using this shard in 93support of running on system images that don't run it. 94 95#### network.shard.test-cml 96For tests that need access to network services, including those that access a 97local HTTP server. 98 99#### network.shard.test-cml 100Corresponds to the `NETWORK` flag. Required for enabling network access. Note 101that access to the root SSL certificates is not needed if ContextProvider is 102used to launch the `Context`. The `fuchsia.device.NameProvider` dependency comes 103from fdio. 104 105#### present_view.shard.test-cml 106Services that are needed to render web content in a Scenic view and present it. 107Most services are required per the FIDL documentation. 108 109#### web_instance.shard.test-cml 110Contains services that need to be present when creating a `fuchsia.web.Context`. 111Note that the `fuchsia.scheduler.ProfileProvider` service is only used in tests 112that encounter memory pressure code. 113