tests revision a47331123450129c1ad7d5326eecb7484b3e7348
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk HoganWe do hourly test builds of the bind9 tree. This is an attempt to
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogandocument how they work.
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogan* How things work
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk HoganThe scripts driving the build system are in ~wpk/b9t. They are not
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hoganunder CVS control. The builds are driven by cron jobs separately
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hoganinstalled on each build system, running as user wpk. Here is a
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hoganrelevant extract from wpk's crontab on bb.rc.vix.com (reformatted to
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hoganfit in 80 columns):
6f85a5540c1a65fae0cf390fc5f682684235b172Peter MajorThe sources are checked out, and the web reports are generated,
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hoganon bb, as driven by the following cron jobs:
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogan # check out the current bind 9 version and make the source tarball
abf2898e37917a97013e467f1a97e398ea1af017Mark de Reeper 45 2-21 * * * PLATFORM=BSD-3.1 && . $HOME/b9t/hosts/$PLATFORM/env && \
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogan nice make PLATFORM=$PLATFORM -e -f $HOME/b9t/bin/b9t.mk tarsrc \
6f85a5540c1a65fae0cf390fc5f682684235b172Peter Major # run the bind 9 build status report generator
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogan 30 3-22 * * * perl $HOME/b9t/bin/b9status.pl \
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogan > /proj/build-reports/bind9/bind9.html 2> /dev/null
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk HoganEach host has a separate crontab entry for building the server and
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hoganrunning tests. Here are examples from bb and sol:
abf2898e37917a97013e467f1a97e398ea1af017Mark de Reeper # build the BSD-3.1 version of bind 9
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogan 0 3-22 * * * $HOME/b9t/bin/b9t.cron BSD-3.1
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogan # bind 9 build for Solaris 5.6
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogan 0 3-22 * * * $HOME/b9t/bin/b9t.cron SunOS-5.6
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk HoganDo not confuse the shell script ~wpk/b9t/bin/b9t.cron with the crontab
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogantemplate (?) ~wpk/b9t/b9t.cron. Although they have the same name,
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hoganthey are not related.
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk HoganThe actual builds take place in a directory whose location differs
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hoganamong systems. On most of them, it's on a local disk, under /build.
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk HoganOn some, it's on NFS; in this case the location is defined in
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk HoganTo make things more confusing, "sol" also builds an extra
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogancopy of bind9 using gcc, even though it is not shown
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hoganon the web pages:
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogan # bind 8 build for Solaris 5.6-gcc
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogan 30 4,10,16,22 * * * $HOME/b8t/bin/b8t.cron SunOS-5.6-gcc
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk HoganThe output from the various stages is under
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk HoganTo make the files harder to find (?), they have
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogannames starting with a period:
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogan* Common problems
6f85a5540c1a65fae0cf390fc5f682684235b172Peter MajorSometime named processes fail to die when the tests are done,
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hoganinterfering with the next test. Just kill them.
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk HoganOn hp.rc.vix.com, the tests often fail because of NFS I/O errors.
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk HoganWhen this happens, the machine needs to be rebooted. It will not
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogancome up again without manually entering commands on the console.
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk HoganOn bb, the tests sometimes fail because .nfs* files stuck in the build
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hogantree keep it from being completely deleted when the next test runs.
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk HoganThe .nfs* files cannot be deleted, but they can be moved, so one way
f38706c3921a6bb47ba4bbe177d1a7da432368e1Dirk Hoganof fixing this is to move them to ~wpk.