To enbale debug log (debug!() in the code), run with the following environment variable:
RUST_LOG=debug ./mach run
And you can set the log level for individual modules like this:
RUST_LOG=script=debug ./mach run //sets log_level=debug for script module
To redirect the logs to a file:
RUST_LOG=script=debug ./mach run > /tmp/servo.log 2>&1
For more information on how to use RUST_LOG, see http://doc.rust-lang.org/log/env_logger/index.html
./mach run --debug
will start the debugger (gdb by default), you can then run
r http://www.mozill.org
to start the program
Alternatively, use the --debugger option to specify the debugger you want, for example
./mach run --debug --debugger ddd
Test commands are implemented in python/servo/testing_commands.py, you can dig into the code if the -h help page is not enough.
TODO:intro
Reftests has manifests (e.g. test/ref/basic.list), which specifies if the rendered results should be euqal (==) or not (!=). You can check if two different CSS style does generate the same result, like in filter_opacity_a.html, it uses filter: opacity(...) to compare with filter_opacity_ref.html's opacity: ....
Another way is to check a CSS property does take effect. For example, box_shadow_blur_a.html uses blurring, where shadow_blur_ref.html does not. So ther are expected to differ.
To run all reftests, use
./mach test-ref
To run a reftests with a particular pattern in its name, use
./mach test-ref --name <pattern>
e.g.
./mach test-ref --name box_shadow_blur #run the box_shadow_blur test
./mach test-ref --name box_shadow #run all box_shadow_* tests