Have every test executable list the data files it depends on, which allows the testers bots to only download the files they need instead of the whole Chromium source tree.
By reducing the amount of data that we need to transfer to the tester machines, it becomes much easier to increase the number of tester bots that we have using Swarm (http://www.chromium.org/developers/testing/isolated-testing/swarm), which means that the Try Server and Continuous Integration masters' VMs will have shorter cycle times.
Follow this simple recipe to build browser_tests with ninja in Release:
Replace the keywords accordingly for Debug or another test, e.g. out/Debug/base_unittests_run and out/Debug/base_unittests.isolated.
Isolate files use a subset of the GYP grammar, so they are valid
This is the command to execute in order to test this test executable.
Individual files (they can't be directories or symlinks) that must be present (i.e. not an optional dependency)
Directories, symlinks or optional dependencies
These are files whose presence is required by the test, but they aren't opened. It happens for example that a file is stat'ed but never opened.
The only reason that tests should fail in isolate mode but pass when run normally is because they failed to list data files that they access. If you find another reason please contact email@example.com.
To fix a broken test, the
This updates the
By default a directory is only included if all the files in it are needed. If most of the directory is used and you feel that it makes sense to make the full directory available to simplify the .isolate file, feel free to replace the individual listings with a single directory listing.