blob: ff59fb0581a69e563419b6e514f4bb969e7b1131 [file] [log] [blame] [view]
# Impeller
This directory contains Flutter's graphics renderer, Impeller.
## Development operations
### Unit testing
Running all unit tests can take over 10 minutes. It's best to run a subset of
tests while developing, then verify all tests at the end.
#### Building and running unit-tests
```shell
../bin/et build -c host_debug_unopt_arm64 \
//flutter/impeller:impeller_unittests
../../out/host_debug_unopt_arm64/impeller_unittests
```
#### Running a specific unit test
```shell
../../out/host_debug_unopt_arm64/impeller_unittests \
--gtest_filter="SizeTest.SizeIsEmpty"
```
#### List unit-tests
```shell
../../out/host_debug_unopt_arm64/impeller_unittests --gtest_list_tests
```
### Golden testing
The executable for golden testing is `impeller_golden_tests`. The CWD must be
the parent directory of `impeller_golden_tests` when executing it in order for
the dyld to resolve successfully.
The golden tests are currently only supported on macOS.
#### Build/run/examine golden test
This example assumes macOS with an arm64 processor.
```shell
../bin/et build -c host_debug_unopt_arm64 \
//flutter/impeller/golden_tests:impeller_golden_tests
mkdir -p ~/Desktop/impeller_unit_tests
pushd $PWD
cd ../../out/host_debug_unopt_arm64
./impeller_golden_tests \
--working_dir=~/Desktop/impeller_unit_tests \
--gtest_filter="Play/AiksTest.CanPerformSkew/Metal"
popd
open ~/Desktop/impeller_unit_tests/impeller_Play_AiksTest_CanPerformSkew_Metal.png
```
#### List golden tests
```shell
pushd $PWD
cd ../../out/host_debug_unopt_arm64
./impeller_golden_tests --working_dir=. --gtest_list_tests
popd
```