wrench is a tool for debugging webrender outside of a browser engine.
wrench has an optional headless mode for use in continuous integration. To run in headless mode, instead of using cargo run -- args, use ./headless.py args.
Binary recordings can be generated by webrender and replayed with wrench replay. Enable binary recording in RendererOptions.
RendererOptions {
...
recorder: Some(Box::new(BinaryRecorder::new("wr-frame.bin"))),
...
}If you are working on gecko integration you can enable recording in webrender_bindings/src/bindings.rs by setting
static ENABLE_RECORDING: bool = true;wrench replay --save yaml will convert the recording into frames described in yaml. Frames can then be replayed with wrench show.
Wrench also has a reftest system for catching regressions.
- To run all reftests, run
script/headless.py reftest - To run specific reftests, run
script/headless.py reftest path/to/test/or/dir - To examine test failures, use the reftest analyzer
- To add a new reftest, create an example frame and a reference frame in
reftests/and then add an entry toreftests/reftest.list