blob: 83abfb1948954ca1b2b4b3c071c12d409a41cd3e [file] [log] [blame]
Renato Golin94cc1042016-04-26 11:02:23 +01001LLVM Bisect Scripts
2===================
3
4These scripts help you bisect LLVM/Clang for problems on build, check
5and test-suite (on a specific test, not all of it). The only script
6you should use is 'bisect.pl', as that will call all others in the
7correct way for a given command line options.
8
9You can rely on the power of run.sh to build and test (either check-all
10or the test-suite), but you can also write your own test.sh script and
11pass it to bisect.pl.
12
13Usage:
14 $ ./bisect.sh [options] good_rev bad_rev
15
16Options:
17 -c checkout_script (default: ./checkout.sh)
18 -b build_script (default: ./run.sh)
19 -t test_script (default: empty)
20
21Notes:
22
23* If the test script is empty, the success status will come from the build
24 script. So, if you're bisecting a build issue, or your build script is
25 also testing (ex: ./run.sh -c), leaving the test script empty will work
26 as expected.
27
28* There is no support for Libc++, LLd etc. But it shouldn't be
29 too hard to add it to the list of checkout paths and symlinks on run.sh.
30
31* It assumes your test-suite checkout is correct and on the same directory,
32 please see the test-suite scripts to help you set it up. If you have your
33 own setup, please write an according test script.
34
35* The script creates a log for each checkout ($rev.log), so that you can tail
36 it while building. It will also move the log to .good and .bad once it
37 finishes, given run.sh or your test script's return status.
38
39* I *strongly* advise you to use ccache, since we *must* clean up the build
40 directory before *every* build to avoid carrying on problems (one of the
41 reasons I moved back from a proper bisect).