Salmonella -- a tool for testing Chicken eggs

Warning: this egg is being rewritten and is available on github ( The documentation described by this page is for the old version (currently unsupported).

Salmonella is a tool for testing Chicken eggs from a local or remote repository.

Salmonella fetches a list of eggs from a local egg repository, and tries to install each egg, reporting failure or success. Each egg is individually tested, that is, salmonella sets the local destination repository empty before testing an egg (it's like installing an egg on a fresh repository, so broken dependencies can be spotted).

Salmonella is used to test the Chicken core source code and all the eggs every day. You can check the reports at

Some salmonella features:




Salmonella is a command line tool. Salmonella's command line arguments' syntax is like Scheme's.

 Usage: salmonella -h | -help | --help | -?
        salmonella <conf-file>
        salmonella <options>
 <options> are Scheme expressions. <conf-file> is a file which may
 contain the same Scheme expressions as <options>'s. The following
 expressions are recognized:
              == Expression ==                   == Default ==
  (csi            \"<path to csi>\")                 csi
  (chicken-install \"<path to chicken-install>\")    chicken-install
  (chicken-install-args \"<args>\"                 a procedure which returns chicken-install options
  (env-vars \"<environment variables settings>\" CHICKEN_INCLUDE_PATH=(repo-test-lib-dir)
  (repo-test-dir \"<path to repo-test-dir>\")    `pwd`/salmonella-repo
  (chicken-eggs-dir \"<path to SVN dir>\")       `pwd`/chicken-eggs/release/4
  (wiki-dir \"<path to SVN dir>\")               `pwd`/chicken-eggs/wiki/eggref/4
  (skip-eggs (list \"egg1\" \"egg2\" ...))         '()
  (verbose <bool>)                               #f
  (logfile \"filename\")                         salmonella.log
  (egg-information (lambda () ...))              a procedure which returns egg information for all eggs found in (chicken-eggs-dir)
  (eggs (lambda () ...))                         a procedure which returns the names of all eggs found in (chicken-eggs-dir)
  (system-deps \"filename\")                     #f
  (pkg-manager \"system pkg manager & args\")    #f
  (resume <bool>)                                #f
  (dont-ask <bool>)                              #f
  (progress-file \"filename\")                   salmonella.progress
  (dont-ask <bool>)                              #f
  (progress-file \"filename\")                   salmonella.progress
  (html-output \"dirname\")                      salmonella-report.  If #f, no HTML output
  (dep-graphs-dir \"dirname\")                   (html-output)/dep-graphs
  (dep-graphs-webdir \"dirname\")                dep-graphs
  (css-file \"filename\")                        #f
  (->html \"filename\")                          #f
  (base-uri \"uri\")                             /
  (run-tests <bool>)                             #f
  salmonella '(chicken-install \"/usr/local/chicken/bin/chicken-install\") (verbose #t)'


  (egg1 package1 package2 ... packagen)
  (egg2 package1 package2 ... packagen)

This option should be used with the pkg-manager option. Default is #f.