tests revision 596b911d9cab20d29597b08f485bd9c94ba64b55
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark AndrewsCopyright (C) 2000 Internet Software Consortium.
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark AndrewsSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews$Id: tests,v 1.9 2000/11/02 17:54:30 mws Exp $
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark AndrewsWe do hourly test builds of the bind9 tree. This is an attempt to
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrewsdocument how they work.
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews* How things work
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark AndrewsThe scripts driving the build system are in ~wpk/b9t. They are not
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrewsunder CVS control. The builds are driven by cron jobs separately
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrewsinstalled on each build system, running as user wpk.
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark AndrewsThe sources are checked out, and the web reports are generated,
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrewson bb, as driven by the following cron jobs:
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews #
f89adb2c2a52b505501c3eaa2aec9fd4df6bd60aTinderbox User # check out the current bind 9 version and make the source tarball
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews #
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews 45 2-21 * * * PLATFORM=BSD-3.1 && . $HOME/b9t/hosts/$PLATFORM/env && \
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews nice make PLATFORM=$PLATFORM -e -f $HOME/b9t/bin/b9t.mk tarsrc \
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews > $HOME/b9t/hosts/$PLATFORM/b9t-status 2>&1
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews #
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews # run the bind 9 build status report generator
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews #
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews 30 3-22 * * * perl $HOME/b9t/bin/b9status.pl \
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews > /proj/build-reports/bind9/bind9.html 2> /dev/null
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark AndrewsEach host has a separate crontab entry for building the server and
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrewsrunning tests. Here are examples from bb and sol:
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews #
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews # build the BSD-3.1 version of bind 9
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews #
08e36aa5a5c7697a839f83831fccf8fb3f792848Mark Andrews 0 3-22 * * * $HOME/b9t/bin/b9t.cron BSD-3.1
#
# bind 9 build for Solaris 5.6
#
0 3-22 * * * $HOME/b9t/bin/b9t.cron SunOS-5.6
Do not confuse the shell script ~wpk/b9t/bin/b9t.cron with the crontab
template (?) ~wpk/b9t/b9t.cron. Although they have the same name,
they are not related. The shell script b9t.cron then calls make,
using the makefile b9t.mk in the same location. This makefile moves
the old status files out of the way and runs through the tests.
The current test schedule is as follows:
:45 CVS tree extracted, tarball built and distributed
:00 Most tests begin
:45 Status report generator runs (was :30)
aix: I can't seem to access that machine; it appears to be down.
bb: Build starts at top of hour, 0300 to 2200
durango: Build starts at top of hour, 0300 to 2200
trantor: Build starts at top of hour, 0300 to 2100, odd-numbered hours
only
hp: Build starts at top of hour, 0300 to 2200
irix: Build starts at top of hour, 0300 to 2200
netbsd: Build starts at top of hour, 0300 to 2200 (was :45)
aa: Build starts at top of hour, 0300 to 2200
rc: Build starts at top of hour, 0300 to 2200
mirepoix: Build starts at top of hour, 0300 to 2200
sol: Build starts at top of hour, 0300 to 2200
truffle: Build starts at top of hour, 0300 to 2200
anthrax: Build starts at top of hour, 0300 to 2200
The actual builds take place in a directory whose location differs
among systems. On most of them, it's on a local disk, under /build.
On some, it's on NFS; in this case the location is defined in
~wpk/b9t/hosts/$PLATFORM/env.
The output from the make process is in
~wpk/b9t/hosts/$PLATFORM/b9t-status, and the output from
The output from the later stages of the process is under
/proj/build-reports/bind9/hosts/$PLATFORM. To make the files
harder to find (?), they have names starting with a period:
.populate
.config
.build
.test
* Common problems
Sometime named processes fail to die when the tests are done,
interfering with the next test. Just kill them.
On hp.rc.vix.com, the tests often fail because of NFS I/O errors.
When this happens, the machine needs to be rebooted. It will not
come up again without manually entering commands on the console.
On bb, the tests sometimes fail because .nfs* files stuck in the build
tree keep it from being completely deleted when the next test runs.
The .nfs* files cannot be deleted, but they can be moved, so one way
of fixing this is to move them to ~wpk.
Failure locking
When a test fails, no further testing is done on that host. To remove the
lockout and allow more tests to be run, remove the file
/proj/build-reports/bind9/hosts/{TARGET}/failed
The failed file itself contains an exit code, which is not particularly
useful. The more useful information is in the various log files under
the build report.