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