fuchsia.element
CTS testThis is a compatibility test for fuchsia.element
FIDL APIs.
Fuchsia provides tools and APIs to create product experiences that combine software from the platform (e.g. session_manager
), product (the session component), and user-visible components. Interoperability between components is a challenge because they may implement the framework’s contracts differently or rely on undocumented behaviors.
The Fuchsia Compatibility Test Suite (CTS) is a collection of tests that ensure a Fuchsia product build is backwards-compatible with software written against previous versions of the platform.
Session compatibility tests are a subset of the CTS that exercise contracts between:
element_manager
)Session CTS tests are CFv2 components that launch a Session Framework and the session under test in an isolated environment.
The tests start a reference session that is composed from platform-provided components. It is intended for testing the Session CTS itself (all tests should pass with the reference session), and for integration testing the platform-provided components.
Tests that exercise launching elements may use a reference element provided by the CTS.
The test suite ships with a reference session implementation that passes all tests. It is a minimal session that contains just enough to exercise the tests, and is not intended to be a fully-fledged example of a product.
The reference session is not tailored specifically for the test environment. Neither the tests nor the reference session know about each other’s existence, as to avoid coupling tests to a particular session implementation.
The reference session reuses platform-provided components as much as possible. This encourages code reuse between products and frees developers from worrying about implementing boilerplate functionality (e.g. launching element components). This code needs to be packaged as a component, not a library, because the CTS may only depend on SDK atoms.
element_manager_test
: Proposing an element is successfulThe simplest possible test for the fuchsia.element.Manager protocol proposes an element and asserts that the result was successful.
$ fx set core.x64 --with-base "//sdk/ctf" $ fx test fuchsia-element-tests -o