0
Files
src/docs/fuchsia/gpu_testing.md
Rohan Pavone b0338c8f54 [fuchsia] Update GPU testing docs.
Added some flags to the docs on adding filtering, specifying images,
and specifying shard indices as well for better local failure
reproducibility.

Change-Id: I20294f371fb962cb82dec2351aceae4caf673094
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3997411
Commit-Queue: Rohan Pavone <rohpavone@chromium.org>
Reviewed-by: Chong Gu <chonggu@google.com>
Cr-Commit-Position: refs/heads/main@{#1071201}
2022-11-14 20:49:02 +00:00

2.6 KiB

Running GPU integration tests on Fuchsia

[TOC]

General instruction on running and debugging GPU integration tests can be found here.

Fuchsia uses either web_engine_shell or the Chrome browser to run GPU integration tests. For the sake of this example, we will be using web_engine_shell as the target browser and gpu_process as the test suite we wish to execute. Build the target telemetry_gpu_integration_test_fuchsia and run the appropriate commands:

Hermetic emulation

The test script brings up an emulator, runs the tests on it, and shuts the emulator down when finished.

$ content/test/gpu/run_gpu_integration_test_fuchsia.py gpu_process
--browser=web-engine-shell --out-dir=/path/to/outdir

Additional flags

You can specify the following flags to help replicate failure cases:

  • --test-filter=<regex of test cases>: Use this to filter test cases
  • --total-shards=<num shards>: Specify total number of shards to split tests over. You would use this to replicate sharding on a bot.
  • --shard-index=<shard index>: Specify shard index for splitting up the given tests.

Run on an physical device

If ffx has already been set up to use the target device by default, or if there is only one discoverable device on the host:

$ content/test/gpu/run_gpu_integration_test_fuchsia.py gpu_process
--browser=web-engine-shell --out-dir=/path/to/outdir -d

Otherwise, specify the id of the target device:

$ content/test/gpu/run_gpu_integration_test_fuchsia.py gpu_process
--browser=web-engine-shell --out-dir=/path/to/outdir --target-id=[TARGET_ID]

### Updating OS flag
You can update the OS of a device by specifying the path to an image and how
to check the OS:

```bash
$ content/test/gpu/run_gpu_integration_test_fuchsia.py gpu_process
--browser=web-engine-shell --out-dir=/path/to/outdir -d --os-check=check
--system-image-dir=path/to/dir/containing/image

Run on a device that needs packages built from Fuchsia source

$ content/test/gpu/run_gpu_integration_test_fuchsia.py gpu_process
--browser=web-engine-shell --out-dir=/path/to/outdir -d
--repo=/path/to/fuchsia/outdir --no-repo-init

Note that fx serve should not be running, since the script handles launching the package server from the Fuchsia output directory.

Run on a device the host is connected to remotely via ssh

$ content/test/gpu/run_gpu_integration_test_fuchsia.py gpu_process
--browser=web-engine-shell --out-dir=/path/to/outdir --target-id=[::1]:8022

Note the this requires a remote tunnel to have been set up first.