| # Running GPU integration tests on Fuchsia |
| |
| [TOC] |
| |
| General instruction on running and debugging GPU integration tests can be |
| found [here](../gpu/gpu_testing.md). |
| |
| Fuchsia uses either [web_engine_shell](../../fuchsia_web/shell/README.md) |
| 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. |
| |
| ```bash |
| $ 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: |
| |
| ```bash |
| $ 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: |
| |
| ```bash |
| $ 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 |
| |
| ```bash |
| $ 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 |
| |
| ```bash |
| $ 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. |