tests revision 34274c3cd60edd969a34004012aed0b2cc2ab441
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark AndrewsWe do hourly test builds of the bind9 tree. This is an attempt to
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrewsdocument how they work.
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews
9bff67898d55cddfcec9ce30cc2b1bb6211ec691David Lawrence* How things work
0d92b2da03ce93c195fc3a8ff0b2364791695531Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark AndrewsThe scripts driving the build system are in ~wpk/b9t. They are not
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrewsunder CVS control. The builds are driven by cron jobs separately
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrewsinstalled on each build system, running as user wpk. Here is a
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrewsrelevant extract from wpk's crontab on bb.rc.vix.com (reformatted to
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrencefit in 80 columns):
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark AndrewsThe sources are checked out, and the web reports are generated,
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrewson bb, as driven by the following cron jobs:
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews #
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews # check out the current bind 9 version and make the source tarball
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews #
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews 45 2-21 * * * PLATFORM=BSD-3.1 && . $HOME/b9t/hosts/$PLATFORM/env && \
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews nice make PLATFORM=$PLATFORM -e -f $HOME/b9t/bin/b9t.mk tarsrc \
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews > $HOME/b9t/hosts/$PLATFORM/b9t-status 2>&1
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews #
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews # run the bind 9 build status report generator
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews #
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews 30 3-22 * * * perl $HOME/b9t/bin/b9status.pl \
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews > /proj/build-reports/bind9/bind9.html 2> /dev/null
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark AndrewsEach host has a separate crontab entry for building the server and
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrewsrunning tests. Here are examples from bb and sol:
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews #
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews # build the BSD-3.1 version of bind 9
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews #
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews 0 3-22 * * * $HOME/b9t/bin/b9t.cron BSD-3.1
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews #
0d92b2da03ce93c195fc3a8ff0b2364791695531Mark Andrews # bind 9 build for Solaris 5.6
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence #
0d92b2da03ce93c195fc3a8ff0b2364791695531Mark Andrews 0 3-22 * * * $HOME/b9t/bin/b9t.cron SunOS-5.6
0d92b2da03ce93c195fc3a8ff0b2364791695531Mark Andrews
0d92b2da03ce93c195fc3a8ff0b2364791695531Mark AndrewsDo not confuse the shell script ~wpk/b9t/bin/b9t.cron with the crontab
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrewstemplate (?) ~wpk/b9t/b9t.cron. Although they have the same name,
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrewsthey are not related. The shell script b9t.cron then calls make,
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrewsusing the makefile b9t.mk in the same location. This makefile moves
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrewsthe old status files out of the way and runs through the tests.
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark AndrewsThe actual builds take place in a directory whose location differs
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrewsamong systems. On most of them, it's on a local disk, under /build.
95a08101c00db050de55b627dcd00a8d98831e32Mark AndrewsOn some, it's on NFS; in this case the location is defined in
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews~wpk/b9t/hosts/$PLATFORM/env.
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark AndrewsThe output from the make process is in
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews~wpk/b9t/hosts/$PLATFORM/b9t-status, and the output from
1ef8965366d91e02a4672c35a187d30aa4a4c72cMark AndrewsThe output from the later stages of the process is under
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews/proj/build-reports/bind9/hosts/$PLATFORM. To make the files
1ef8965366d91e02a4672c35a187d30aa4a4c72cMark Andrewsharder to find (?), they have names starting with a period:
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews .populate
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews .config
1ef8965366d91e02a4672c35a187d30aa4a4c72cMark Andrews .build
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews .test
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews* Common problems
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark AndrewsSometime named processes fail to die when the tests are done,
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrewsinterfering with the next test. Just kill them.
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark AndrewsOn hp.rc.vix.com, the tests often fail because of NFS I/O errors.
95a08101c00db050de55b627dcd00a8d98831e32Mark AndrewsWhen this happens, the machine needs to be rebooted. It will not
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrewscome up again without manually entering commands on the console.
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark AndrewsOn bb, the tests sometimes fail because .nfs* files stuck in the build
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrewstree keep it from being completely deleted when the next test runs.
95a08101c00db050de55b627dcd00a8d98831e32Mark AndrewsThe .nfs* files cannot be deleted, but they can be moved, so one way
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrewsof fixing this is to move them to ~wpk.
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews
95a08101c00db050de55b627dcd00a8d98831e32Mark Andrews