ASDF-Install-tester

If duct tape doesn't work, try more duck tape

What it is

ASDF-Install-tester is a internal development tool and ASDF-Extension that automates the process of checking whether or not ASDF-Installable systems actually install under ASDF. ASDF-Status can be used to display the results. To try it out:
  • Use ASDF-Install to install ASDF-Install-tester.
  • Modify the file definitions.lisp to specify:
    • which systems should be tested (in the variable *systems-to-test*). The default is to test :all systems. This will download the most recent list of systems from the CLiki and then try to test each and every one of them.
    • which systems should be removed before each test (in the variable *systems-to-remove-each-time*). The default is to remove :all systems each time and start fresh. Unless you have a good reason to do otherise, you probably won't want to change this.
    • A working directory (in *working-directory*). I use a directory named 'temporary' underneath the directory pointed to by (user-home-pathname). This ought to work for you.
  • Start your Lisp and ASDF load asdf-install-tester.
  • Finally, evaluate (asdf-install-tester:asdf-test)

After it runs, the results will all be in a subdirectory of the *working-directory*. If you want to have your results included in the ASDF-Status summary page, then tar/zip/whatever that folder and email to me. Better mechanisms are in the works.

Be careful out there

Although no houseplants were harmed in its creation and ASDF-Install-tester should be completely safe (after all it does all its work in the temporary directory you specify). ASDF-Install-tester does delete files. It will change the state of your computer.

What it does

The main function will test each system in *systems-to-test*. It does this by first removing every system in *systems-to-remove-each-time* from the site subdirectoyr of your *working-directory*.Next, It creates a startup.lisp file in the *working-directory* and starts a separate Lisp process which will load this file. The startup file first tells ASDF-Install to run non-interactively and then tells it to try to install the system currently being tested.This either works or fails. In either case, a log file is appended to showing the time that the test started and ended and whether or not it succeeded. Log files are also kept of the output for each system installed. All of these logs end up in a sub-directory of the *working-directory*.

Notes

  • ASDF-Install-tester has been tested under OpenMCL, SBCL and Allegro all running on OS X. Patching is underway to finalize CLISP support (thanks to Pascal Bourguignon).
  • Inspiration for this comes in part from Alan Shield's cl-smoketest.
  • Timeouts are supported (so far) under OpenMCL and Allegro.

Mailing Lists

  • ait-announce: A low volume, read only list for announcements.
  • ait-devel: A list for questions, patches, bug reports, and so on; It's for everything other than announcements.

Where is it

You can grab a gzipped tar file or access the Darcs repository using:

 darcs get http://common-lisp.net/project/ait/darcs/ait 

ASDF-Install-tester is ASDF installable. Its CLiki home is right where you'd expect.

What is happening

5 Jan 2006moved to Common-Lisp.net; renamed main to asdf-test
1 Jan 2006Lots of minor changes to support more SBCL and CLISP; can now use multiple Lisps as children; more output sent to log files.
21 Dec 2005Rewrote and used output in ASDF-Status
19 Dec 2005Rewrote to be safer, kinder and gentler
6 Dec 2005Initial setup