tests revision bf5fa2c191361b0b06ab7c13cd31c0eb0a0ef824
70e5a7403f0e0a3bd292b8287c5fed5772c15270Automatic UpdaterCopyright (C) 2000 Internet Software Consortium.
499b34cea04a46823d003d4c0520c8b03e8513cbBrian WellingtonSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
cffe50abf66495ee08084f8e1081278a9b589985Brian Wellington
ec5347e2c775f027573ce5648b910361aa926c01Automatic Updater$Id: tests,v 1.12 2000/12/05 00:41:38 gson Exp $
cffe50abf66495ee08084f8e1081278a9b589985Brian Wellington
cffe50abf66495ee08084f8e1081278a9b589985Brian WellingtonWe do hourly test builds of the bind9 tree. This is an attempt to
cffe50abf66495ee08084f8e1081278a9b589985Brian Wellingtondocument how they work.
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews* How things work
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews
dafcb997e390efa4423883dafd100c975c4095d6Mark AndrewsThe scripts driving the build system are in ~wpk/b9t. They are now
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrewsunder CVS control; the repository is in rc:/proj/cvs/isc/b9t (note
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrewsthat this is a separate repository from the bind9 one). The builds
cffe50abf66495ee08084f8e1081278a9b589985Brian Wellingtonare driven by cron jobs separately installed on each build system,
70e5a7403f0e0a3bd292b8287c5fed5772c15270Automatic Updaterrunning as user wpk.
cffe50abf66495ee08084f8e1081278a9b589985Brian Wellington
0fc89c4ee660e825ac66774f2d4912cfc396386aMark AndrewsThe sources are checked out, and the web reports are generated,
0fc89c4ee660e825ac66774f2d4912cfc396386aMark Andrewson bb, as driven by the following cron jobs:
0fc89c4ee660e825ac66774f2d4912cfc396386aMark Andrews
0fc89c4ee660e825ac66774f2d4912cfc396386aMark Andrews # Check out the current bind 9 version and make the source tarball.
0fc89c4ee660e825ac66774f2d4912cfc396386aMark Andrews # Argument to maketar.sh should be v9_0 for 9.0 release branch,
0fc89c4ee660e825ac66774f2d4912cfc396386aMark Andrews # HEAD for mainline.
0fc89c4ee660e825ac66774f2d4912cfc396386aMark Andrews 35 2-22 * * * PLATFORM=BSD-3.1 && . $HOME/b9t/hosts/$PLATFORM/env && \
0fc89c4ee660e825ac66774f2d4912cfc396386aMark Andrews nice sh $HOME/b9t/bin/maketar.sh HEAD \
>/proj/build-reports/bind9/tarsrc.txt 2>&1
#
# run the bind 9 build status report generator
#
30 3-22 * * * perl $HOME/b9t/bin/b9status.pl \
> /proj/build-reports/bind9/bind9.html 2> /dev/null
Each host has a separate crontab entry for building the server and
running tests. Here are examples from bb and sol:
#
# build the BSD-3.1 version of bind 9
#
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:
:35 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, further testing on that host is disabled in order
to preserve evidence. To remove the lockout and allow more tests to
be run, log in to bb, su, su wpk, and remove the "failed" files:
rm /proj/build-reports/bind9/hosts/*/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.