Department of Pirates

Automated BOINC test build

The boinc_test_build script will automatically retrieve and build the latest version of the BOINC software (or a version you specify) on a wide variety of Unix systems (Linux, Mac). It also builds and tests several BOINC applications, both those from the BOINC distribution and those from my own application suite. This is useful for testing the latest software, or for testing your build environment.

Last modified: 3 October 2009
Getting the script
Release Notes
The boinc_test_build script is a bash script which will automatically check out the latest version of the BOINC software (or a version you specify by tag) out via Subversion (previously CVS), then configure and build the software. In addition to building the libraries and core client it also builds and tests two applications from the BOINC distribution (concat and upper_case), and three applications from my own suite of examples (hello, yello, and cube).

The script uses shell function definitions, so it must be run with Bash or a Bourne-style shell which supports this. The script can be run from the command line or from cron. I run it from cron every night to stay on top of problems which may have inadvertantly been introduced by someone doing some work on the latest BOINC code.

The script requires both Subversion and CVS, and of course the usual BOINC build environment, which includes gcc, make, curl, and OpenSSL.

If there are problems during the build process then the script will try to document these by doing `make -k` to build everything that can be built, and then doing `make -k` again to log the errors. It will also back off from building the client if the initial configure command fails, which may make it possible to still build and test the libraries and applications.

An overall summary of the build is printed when the script finishes, including a count of the number of tests attempted and the number of tests which passed. At present, a successful run should show 33 tests and zero errors.

The code is all built in a directory called boinc_test under the directory named by the TMPDIR environment variable, or in /tmp/boinc_test if TMPDIR is not set.

If you find that you need to alter this script to make it work on a particular version of Linux (or some other Unix system) I'd be happy to incorporate your changes into the script if that can be done easily.

Getting the script

You should be able to download a relatively new version of the script by right-clicking on this link: boinc_test_build

I use CVS for version control for the scripts I work on, so you can also get this script (and a few others) via CVS thus:

%  cvs -d \
      checkout scripts/boinc_test_build
This will put the latest version of the script in the scripts subdirectory.

Command arguments (flags)

Calling the script with no arguments will perform the default action of checking out the latest BOINC code, configuring and building the libraries and the core client, and building the test applications.

The following command line flags alter the default behaviour

-r tag
Checks out the code tagged tag rather than the latest trunk version.

--clean or -C
Does a `make distclean1 in the working directory to clean up from a previous build.

Deletes any existing copy of the working directory first, so that it builds everything from scratch.

--version or -V
Shows the current version (CVS revision and date) of the script and exits.

Release Notes

v. 1.53 / June 2007
Add quiet cleanup at the ned.
v. 1.52 / June 2007
Works correctly on a Mac (as long as the Mac is properly configured to build BOINC).
v. 1.48 / April 2007
Switch from CVS to SVN for BOINC source code. (CVS still used for hello, yello, and cube source.)
v. 1.43 / February 2007
Began this documentation page.
[an error occurred while processing this directive]