https://github.com/yitzchak/ansi-test-harness
A testing harness that fetches ansi-test and allows subsets and extrinsic systems
https://github.com/yitzchak/ansi-test-harness
common-lisp
Last synced: 3 months ago
JSON representation
A testing harness that fetches ansi-test and allows subsets and extrinsic systems
- Host: GitHub
- URL: https://github.com/yitzchak/ansi-test-harness
- Owner: yitzchak
- License: mit
- Created: 2023-10-11T12:28:31.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-13T12:51:50.000Z (over 1 year ago)
- Last Synced: 2025-01-31T15:35:55.236Z (5 months ago)
- Topics: common-lisp
- Language: Common Lisp
- Homepage:
- Size: 4.88 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# ansi-test-harness
ansi-test-harness is a collection of functions that aid in using
[ansi-test][] to test intrinsic and extrinsic systems that implement
parts of the Common Lisp specification. The main entry point is the
function `ansi-test-harness:ansi-test`. For example to test
[Anatomicl][] which implements the Structure dictionary:```common-lisp
(defun test ()
(let ((system (asdf:find-system :anatomicl-extrinsic/test)))
(ansi-test-harness:ansi-test
:directory (merge-pathnames
(make-pathname :directory '(:relative
"dependencies"
"ansi-test"))
(asdf:component-pathname system))
:expected-failures (asdf:component-pathname
(asdf:find-component system
'("code" "expected-failures.sexp")))
:extrinsic-symbols '(anatomicl-extrinsic:copy-structure
anatomicl-extrinsic:defstruct
anatomicl-extrinsic:structure-class
anatomicl-extrinsic:structure-object)
:tests '("STRUCT")
:exit t)))
```## ANSI-TEST Keyword Arguments
* `:repository` — Specifies the URL to the ansi-test repository. The
default value is
"https://gitlab.common-lisp.net/ansi-test/ansi-test.git"
* `:branch` — The default branch to checkout. If this is NIL then the
repository's default branch is used.
* `:clean` — If non-NIL then an existing copy of the ansi-test
repository will be removed before cloning.
* `:commit` — The specific commit to checkout.
* `:git` — The name of the git executable to use. The default value is
"git".
* `:skip-sync` — If non-NIL the repository will not be cloned or
updated. It be verified that the destination directory exists.
* `:directory` — The directory to clone ansi-test into. The default
value is `*default-pathname-defaults*`
* `:extrinsic-symbols` — A list of symbols which will imported into
the CL-TEST package of ansi-test thereby overridding the CL package
version.
* `:expected-failures` — Either a list of test names or a path to a
file containing the test names of expected failures. The latter is
much more useful since anso-test will read that file with
`*package*` set to CL-TEST. It will interpret unprefixed symbols as
being the names of tests and keyword symbols as notes to
disable. Read-time conditionals also work so items like `#+sbcl
TEST-NAME` will add TEST-NAME to the expected failure list for SBCL
only.
* `"tests` — A list of strings. Any test that has a name that does not
start with one of these strings will be disabled. If `:tests` is not
provided all tests will be run.
* `exit` — If non-NIL then ansi-test will attempt to exit the
implmentation at the conclusion of the tests.[ansi-test]: https://gitlab.common-lisp.net/ansi-test/ansi-test
[Anatomicl]: https://github.com/s-expressionists/Anatomicl