Salmonella -- a tool for testing Chicken eggs
Warning: this egg is being rewritten and is available on github (https://github.com/mario-goulart/salmonella). 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 tests.call-cc.org.
Some salmonella features:
- Automatic eggs fetching and installation testing
- Possibility of hooking system's package manager (e.g., apt, rpm) for installing OS packages eggs might depend on
- Logging and verbosity control
- Execute eggs tests
- Check for the existence of wiki documentation for eggs
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) CHICKEN_INSTALL_PREFIX=(repo-test-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 Example: salmonella '(chicken-install \"/usr/local/chicken/bin/chicken-install\") (verbose #t)'
- chicken-install: full path to the chicken-install program. Default is "chicken-install".
- chicken-install-args: a procedure which returns arguments to be passed to chicken-install. Default is -prefix (repo-test-dir) -t local -l (default-chicken-eggs-dir).
- env-vars: environment variable settings to be applied when chicken-install is invoked. Default is CHICKEN_REPOSITORY=(repo-test-dir) CHICKEN_INCLUDE_PATH=(repo-test-dir) (where (repo-test-dir) is a salmonella parameter).
- repo-test-dir: full path to the the directory salmonella will use for testing the installation og eggs. Default is "salmonella-repo".
- skip-eggs: list of eggs to skip from testing. Default is '().
- eggs: a zero-argument procedure which should return a list of egg names (strings).
- verbose: controls if salmonella should be verbose. Default is #f.
- dont-ask: salmonella won't ask any question before running and will use the default values for parameters not explicitly set. Default is #f.
- system-deps: path to a file indicating which OS packages should be installed when testing eggs. The file format is:
(egg1 package1 package2 ... packagen) (egg2 package1 package2 ... packagen)
This option should be used with the pkg-manager option. Default is #f.
- chicken-eggs-dir: path to the directory containing the source code for eggs
- wiki-dir: path to the directory containing eggs documentation in wiki format
- run-tests: (a boolean) when #t, indicates that salmonella should execute egg tests.
- pkg-manager: path to the system package manager and its arguments. It's used with the system-deps option to install system packages which some eggs depend on. Default is #f.
- logfile: path to the file where logging information is stored. Default is "salmonella.log".
- resume: tells salmonella that it should continue from the point it last stopped. Salmonella uses information from the file indicated by the progress-file. Default is #f.
- progress-file: keeps track of which eggs were already tested (useful for resuming -- see the resume option). Default is "salmonella.progress".
- html-output: path to the directory where the HTML output should be saved. If the directory exists, it will be deleted. If #f, no HTML output is generated. Default is "salmonella-report".
- css-file: CSS file to be used in the HTML-formated output. Default is #f -- a built-in CSS code is used.