blob: 83abfb1948954ca1b2b4b3c071c12d409a41cd3e [file] [log] [blame]
LLVM Bisect Scripts
===================
These scripts help you bisect LLVM/Clang for problems on build, check
and test-suite (on a specific test, not all of it). The only script
you should use is 'bisect.pl', as that will call all others in the
correct way for a given command line options.
You can rely on the power of run.sh to build and test (either check-all
or the test-suite), but you can also write your own test.sh script and
pass it to bisect.pl.
Usage:
$ ./bisect.sh [options] good_rev bad_rev
Options:
-c checkout_script (default: ./checkout.sh)
-b build_script (default: ./run.sh)
-t test_script (default: empty)
Notes:
* If the test script is empty, the success status will come from the build
script. So, if you're bisecting a build issue, or your build script is
also testing (ex: ./run.sh -c), leaving the test script empty will work
as expected.
* There is no support for Libc++, LLd etc. But it shouldn't be
too hard to add it to the list of checkout paths and symlinks on run.sh.
* It assumes your test-suite checkout is correct and on the same directory,
please see the test-suite scripts to help you set it up. If you have your
own setup, please write an according test script.
* The script creates a log for each checkout ($rev.log), so that you can tail
it while building. It will also move the log to .good and .bad once it
finishes, given run.sh or your test script's return status.
* I *strongly* advise you to use ccache, since we *must* clean up the build
directory before *every* build to avoid carrying on problems (one of the
reasons I moved back from a proper bisect).