Note: Compatibility testing documents are being overhauled in Q2 2024. Some information in this document is out of date. See https://fxbug.dev/339893257 for details.
Please see the CTF overview for an explanation of what CTF is.
CTF has multiple releases with separate cadences:
Release | Schedule |
---|---|
Canary | ~4 hrs |
Milestone | ~6 weeks |
The canary release is created when new canary releases of the Fuchsia platform are created. Likewise, milestone releases are created when new milestone releases of the Fuchsia platform are created.
Milestone branches (e.g. releases/f7) often receive cherry picks. When this happens, a new CTF for that milestone is generated and automatically rolled into CI/CQ.
{% dynamic if user.is_googler %}
Internal contributors: Look for builders named cts*prebuilt-roller in Milo to monitor new releases.
{% dynamic endif %}
The tip-of-tree version of your test will immediately begin running on CI/CQ. This version of the test does not guarantee backward compatibility.
When the next CTF release is cut, it will contain a snapshot of your test from tip-of-tree which will begin running as soon as that CTF release rolls into CI/CQ. This version of your test guarantees backward compatibility.
See this section above for the release schedule.
See go/fuchsia-builder-viz. Look for builders whose names end in “-cts”.
At minimum, all CTF tests run on the core.x64 image in the Fuchsia emulator.
CQ may run several versions of the same CTF test at a time: The version from tip-of-tree, from the latest canary release, and from a previous milestone release.
CTF test packages are named after the Fuchsia API level they test:
Version | Example package name |
---|---|
tip of tree | my_test |
canary | my_test_apicanary |
API level $N | my_test_api$N |
The full package URL will look something like:
fuchsia-pkg://fuchsia.com/my_test_api24#meta/my_test.cm
To build and run a specific version of a test, you can use the following examples:
# Build the test. fx set //sdk/ctf/tests/fidl/fuchsia.example:tests fx build # Run all versions. fx test # Run the version for API level 20. fx test fuchsia.example_test_api20
Please also see this guide about running Fuchsia tests.
This is a sign that your CL is breaking a part of the platform surface area. Please verify that there are no projects in downstream repositories that rely on the APIs and ABIs modified by your CL. If so, you will need to make a soft transition. The general workflow is as follows:
See //sdk/ctf/examples and //sdk/ctf/tests.
You should write a CTF test if the software being tested is in the public or partner SDK category.
See the section in the contributing guide on removing tests.
For additional questions please reach out to fuchsia-ctf-team@google.com or file a bug in the CTF bug component.