Renato Golin | 94cc104 | 2016-04-26 11:02:23 +0100 | [diff] [blame] | 1 | LLVM Bisect Scripts |
| 2 | =================== |
| 3 | |
| 4 | These scripts help you bisect LLVM/Clang for problems on build, check |
| 5 | and test-suite (on a specific test, not all of it). The only script |
| 6 | you should use is 'bisect.pl', as that will call all others in the |
| 7 | correct way for a given command line options. |
| 8 | |
| 9 | You can rely on the power of run.sh to build and test (either check-all |
| 10 | or the test-suite), but you can also write your own test.sh script and |
| 11 | pass it to bisect.pl. |
| 12 | |
| 13 | Usage: |
| 14 | $ ./bisect.sh [options] good_rev bad_rev |
| 15 | |
| 16 | Options: |
| 17 | -c checkout_script (default: ./checkout.sh) |
| 18 | -b build_script (default: ./run.sh) |
| 19 | -t test_script (default: empty) |
| 20 | |
| 21 | Notes: |
| 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). |