[roll] Roll fuchsia [display][coordinator] Sync after ApplyConfig() in integration tests.

Currently, the ApplyConfig() FIDL API and its higher-level ApplyLayers()
are prone to racy usage, leading to flaky tests. For performance
reasons, ApplyConfig() does not wait for the FIDL call to reach the
Display Coordinator and be executed. SendVsyncFromDisplayEngine() does
not go across the same FIDL pipe, so the resulting VSync signal may
reach the Coordinator before the config is applied.

Integration tests currently use a LayerCount() helper (which reaches
into the Coordinator implementation) as a way to wait until a
configuration is applied by the Coordinator. However, the helper is
only reliable when waiting for a configuration with a different number
of layers from the previous configuration.

This CL aims to remove this source of flakiness, and uses the following
approach.

1. ApplyLayers() is modified to issue a GetLastConfigStamp() and return
   its value. The call goes across the same FIDL pipe as the
   ApplyConfig(), so it is guaranteed to complete afterwards.
   A future CL will switch the ApplyLayers() implementation to use
   ApplyConfig3(), at which point ConfigStamp values will be generated
   in tests.

2. Direct usage of ApplyConfig() is followed by a GetLastConfigStamp().
   A future CL will remove the direct usage, and consolidate the
   integration tests around ApplyLayers().

3. DisplayLayerCount() is removed. Using GetLastConfigStamp() is more
   reliable, and the tests don't need to reach inside the Coordinator's
   presentation state.

Original-Bug: 388885807
Test: fx test display-coordinator-unittests --count 100
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1193939
Original-Revision: 321ab900ccb277565143d2edde2028232f13dfb5
GitOrigin-RevId: de928e1786576ef69051bc64a672cc8948738429
Change-Id: I6d3a0a6242217fa66c9db672b6d27b587f7a5404
1 file changed
tree: d084de505ab29aed518533a7fd788105d3371b14
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cts
  6. firmware
  7. flower
  8. jiri.lock
  9. MILESTONE
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
  15. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.