mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-23 02:28:55 +00:00
131 lines
4.8 KiB
Plaintext
131 lines
4.8 KiB
Plaintext
Copyright (C) 2000, 2001, 2004, 2016 Internet Systems Consortium, Inc. ("ISC")
|
|
|
|
This Source Code Form is subject to the terms of the Mozilla Public
|
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
$Id: tests,v 1.15 2004/03/05 05:04:50 marka Exp $
|
|
|
|
We do hourly test builds of the bind9 tree. This is an attempt to
|
|
document how they work.
|
|
|
|
|
|
* How things work
|
|
|
|
The scripts driving the build system are in ~wpk/b9t. They are now
|
|
under CVS control; the repository is in rc:/proj/cvs/isc/b9t (note
|
|
that this is a separate repository from the bind9 one). The builds
|
|
are driven by cron jobs separately installed on each build system,
|
|
running as user wpk.
|
|
|
|
The sources are checked out, and the web reports are generated,
|
|
on bb, as driven by the following cron jobs:
|
|
|
|
# Check out the current bind 9 version and make the source tarball.
|
|
# Argument to maketar.sh should be v9_0 for 9.0 release branch,
|
|
# HEAD for mainline.
|
|
35 2-22 * * * PLATFORM=BSD-3.1 && . $HOME/b9t/hosts/$PLATFORM/env && \
|
|
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.
|
|
|
|
On aix, the tests routinely fail with an assertion failure related
|
|
to omapi socket handling - see RT #507.
|
|
|
|
|
|
* Failure locking
|
|
|
|
When a test fails, further testing on that host is disabled in order
|
|
to preserve evidence. Also, tests don't start if they are already
|
|
running. Both of these rules are enforce through "lockout files"
|
|
craeted in /proj/build-reports/bind9/hosts/*/.
|
|
|
|
To remove the lockout and allow more tests to be run, log in to bb,
|
|
su, su wpk, and remove any "failed" and "running" files:
|
|
|
|
rm /proj/build-reports/bind9/hosts/*/failed
|
|
rm /proj/build-reports/bind9/hosts/*/running
|
|
|
|
The "failed" file contains the time of failure, which is not
|
|
particularly useful. The more useful information is in the various
|
|
log files under the build report.
|