Convert links from http -> https
[buildfarm-client-wiki.git] / TestingBuilds.md
index 9f90ef63d20f8b1e6a47a6802c420bfaf7371ef0..3b71b1c8fb6e91c12380bb1aebe850e385c1eade 100644 (file)
@@ -28,8 +28,8 @@ The base script which handles everything is the run_build.pl script.  The comman
 ### Valid Stages:
 * configure
 * make
-* build_docs  (optional, off by default)
-* make_test   (optional, off by default)
+* make-doc  (optional, off by default)
+* test      (optional, off by default)
 
 In each of the following sample command lines, remember that `--test` will force all steps and will not locally store the state of the git checkout nor the state of each of stage, nor will it submit the results to the server.
 
@@ -45,15 +45,27 @@ In each of the following sample command lines, remember that `--test` will force
 4. Debug mode, only run configure and make if there is a new commit, submit results to server:
 `./run_build.pl --only-steps configure,make --verbose=2`
 
-5. Run all steps, configured to also do make_test, but limit the range of tests from 1 to 9:
+5. Run all steps, only if there is a new commit, configured to also do make_test, but limit the range of tests from 1 to 9:
 `./run_build.pl --override range_test_num='1 9'`
 
-6. Just build docs, don't submit results:
-`./run_build.pl --force --only-steps=build_docs --nosend`
+6. Just build docs, don't submit results (configure builds the *Local/Makefile*, which is required for doc building) :
+`./run_build.pl --force --only-steps=configure,make-doc --nosend`
 
 7. Just build docs, equivalent command:
-`./run_build.pl --test --only-steps=build_docs`
+`./run_build.pl --test --only-steps=configure,make-doc`
 
-8. Just build docs, but allow it to submit results:
-`./run_build.pl --force --only-steps=build_docs`
+8. Just build docs, but allow it to submit results (not advised since you aren't building the actual binary) :
+`./run_build.pl --force --only-steps=configure,make-doc`
 
+
+### Extreme test debugging
+Sometimes you need to figure out why one test is failing.  To see exactly what is happening, you can create a temporary build, don't delete it, and then manually run the test in a debug mode.  In the following example, I'll assume that I'm wanting to find why test 433 is failing
+
+    PATH="$PATH:/sbin" ./run_build.pl --test --verbose=2 --force --only-steps=configure,make,test \
+      --override range_num_tests='1 1' --keepall
+
+The above will create a subdirectory of the format _exim.$PID_ (of the script running the build farm).  In the example above, the git checkout of the exim sources was in `$HOME/buildfarm/HEAD/exim.4689/`, so we change into the test directory and manually instantiate the runtest script, specifying which test we want it to run.
+
+    ./runtest $HOME/buildfarm/HEAD/exim.4689/src/build-Linux-i386/exim -DEBUG 433 433
+
+It will print out copious debug output and you can hopefully find the problem based on that output.
\ No newline at end of file