| 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). |