tests revision 2188cdbef85c0be714e633fd1a5dfc571bf085ad
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorWe do hourly test builds of the bind9 tree. This is an attempt to
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzordocument how they work.
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor* How things work
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorThe scripts driving the build system are in ~wpk/b9t. They are not
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorunder CVS control. The builds are driven by cron jobs separately
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorinstalled on each build system, running as user wpk.
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorThe sources are checked out, and the web reports are generated,
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzoron bb, as driven by the following cron jobs:
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor # check out the current bind 9 version and make the source tarball
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor 45 2-21 * * * PLATFORM=BSD-3.1 && . $HOME/b9t/hosts/$PLATFORM/env && \
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor nice make PLATFORM=$PLATFORM -e -f $HOME/b9t/bin/b9t.mk tarsrc \
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor # run the bind 9 build status report generator
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor 30 3-22 * * * perl $HOME/b9t/bin/b9status.pl \
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorEach host has a separate crontab entry for building the server and
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorrunning tests. Here are examples from bb and sol:
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor # build the BSD-3.1 version of bind 9
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor 0 3-22 * * * $HOME/b9t/bin/b9t.cron BSD-3.1
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor # bind 9 build for Solaris 5.6
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor 0 3-22 * * * $HOME/b9t/bin/b9t.cron SunOS-5.6
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorDo not confuse the shell script ~wpk/b9t/bin/b9t.cron with the crontab
292d19d4d33644d88dfb182cdcfef173fafa6722lgentistemplate (?) ~wpk/b9t/b9t.cron. Although they have the same name,
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorthey are not related. The shell script b9t.cron then calls make,
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorusing the makefile b9t.mk in the same location. This makefile moves
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorthe old status files out of the way and runs through the tests.
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorThe current test schedule is as follows:
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis :50 CVS tree extracted, tarball built and distributed (was
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor :00 Most tests begin
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis :45 Status report generator runs (was :30)
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor aix: I can't seem to access that machine; it appears to be down.
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis bb: Build starts at top of hour, 0300 to 2200
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis durango: Build starts at top of hour, 0300 to 2200
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor trantor: Build starts at top of hour, 0300 to 2100, odd-numbered hours
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor hp: Build starts at top of hour, 0300 to 2200
292d19d4d33644d88dfb182cdcfef173fafa6722lgentis irix: Build starts at top of hour, 0300 to 2200
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor netbsd: Build starts at top of hour, 0300 to 2200 (was :45)
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor aa: Build starts at top of hour, 0300 to 2200
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor rc: Build starts at top of hour, 0300 to 2200
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor mirepoix: Build starts at top of hour, 0300 to 2200
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor sol: Build starts at top of hour, 0300 to 2200
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor truffle: Build starts at top of hour, 0300 to 2200
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor anthrax: Build starts at top of hour, 0300 to 2200
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorThe actual builds take place in a directory whose location differs
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzoramong systems. On most of them, it's on a local disk, under /build.
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorOn some, it's on NFS; in this case the location is defined in
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorThe output from the make process is in
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor~wpk/b9t/hosts/$PLATFORM/b9t-status, and the output from
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorThe output from the later stages of the process is under
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor/proj/build-reports/bind9/hosts/$PLATFORM. To make the files
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorharder to find (?), they have names starting with a period:
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzor* Common problems
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorSometime named processes fail to die when the tests are done,
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorinterfering with the next test. Just kill them.
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorOn hp.rc.vix.com, the tests often fail because of NFS I/O errors.
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorWhen this happens, the machine needs to be rebooted. It will not
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorcome up again without manually entering commands on the console.
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorOn bb, the tests sometimes fail because .nfs* files stuck in the build
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzortree keep it from being completely deleted when the next test runs.
fbad7185dd78ec6e09c5b191693deda9d4bfa08cgryzorThe .nfs* files cannot be deleted, but they can be moved, so one way
292d19d4d33644d88dfb182cdcfef173fafa6722lgentisof fixing this is to move them to ~wpk.