The fiveam Reference Manual

This is the fiveam Reference Manual, version 1.4.2, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 16:25:29 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 fiveam

A simple regression testing framework

Author

Edward Marco Baringer <>

License

BSD

Version

1.4.2

Dependencies
  • alexandria (system).
  • net.didierverna.asdf-flv (system).
  • trivial-backtrace (system).
Source

fiveam.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 fiveam/fiveam.asd

Source

fiveam.asd.

Parent Component

fiveam (system).

ASDF Systems

fiveam.


3.1.2 fiveam/package.lisp

Source

fiveam.asd.

Parent Component

fiveam (system).

Packages

it.bese.fiveam.


3.1.3 fiveam/utils.lisp

Dependency

package.lisp (file).

Source

fiveam.asd.

Parent Component

fiveam (system).

Internals

3.1.4 fiveam/check.lisp

Dependencies
Source

fiveam.asd.

Parent Component

fiveam (system).

Public Interface
Internals

3.1.5 fiveam/fixture.lisp

Dependency

package.lisp (file).

Source

fiveam.asd.

Parent Component

fiveam (system).

Public Interface
Internals

*fixture* (special variable).


3.1.6 fiveam/classes.lisp

Dependency

package.lisp (file).

Source

fiveam.asd.

Parent Component

fiveam (system).

Public Interface
Internals

3.1.7 fiveam/random.lisp

Dependencies
Source

fiveam.asd.

Parent Component

fiveam (system).

Public Interface
Internals

3.1.8 fiveam/test.lisp

Dependencies
Source

fiveam.asd.

Parent Component

fiveam (system).

Public Interface
Internals

3.1.9 fiveam/explain.lisp

Dependencies
Source

fiveam.asd.

Parent Component

fiveam (system).

Public Interface
Internals

partition-results (function).


3.1.10 fiveam/suite.lisp

Dependencies
Source

fiveam.asd.

Parent Component

fiveam (system).

Public Interface
Internals

3.1.11 fiveam/run.lisp

Dependencies
Source

fiveam.asd.

Parent Component

fiveam (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 it.bese.fiveam

Source

package.lisp.

Nicknames
  • 5am
  • fiveam
Use List
  • alexandria.
  • common-lisp.
Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Special variables

Special Variable: *debug-on-error*

T if we should drop into the debugger on error, NIL otherwise. OBSOLETE: superseded by *ON-ERROR*

Package

it.bese.fiveam.

Source

run.lisp.

Special Variable: *debug-on-failure*

T if we should drop into the debugger on a failing check, NIL otherwise. OBSOLETE: superseded by *ON-FAILURE*

Package

it.bese.fiveam.

Source

run.lisp.

Special Variable: *default-test-compilation-time*
Package

it.bese.fiveam.

Source

test.lisp.

Special Variable: *max-trials*

Number of total times we attempt to run the body of the FOR-ALL test including when the body is skipped due to failed guard conditions.

Since we have guard conditions we may get into infinite loops where the test code is never run due to the guards never returning true. This second run limit prevents that.

Package

it.bese.fiveam.

Source

random.lisp.

Special Variable: *num-trials*

Number of times we attempt to run the body of the FOR-ALL test.

Package

it.bese.fiveam.

Source

random.lisp.

Special Variable: *on-error*

The action to perform on error:
- :DEBUG if we should drop into the debugger - :BACKTRACE to print a backtrace
- NIL to simply continue

Package

it.bese.fiveam.

Source

run.lisp.

Special Variable: *on-failure*

The action to perform on check failure: - :DEBUG if we should drop into the debugger - :BACKTRACE to print a backtrace
- NIL to simply continue

Package

it.bese.fiveam.

Source

run.lisp.

Special Variable: *print-names*

T if we should print test running progress, NIL otherwise.

Package

it.bese.fiveam.

Source

run.lisp.

Special Variable: *run-test-when-defined*

When non-NIL tests are run as soon as they are defined.

Package

it.bese.fiveam.

Source

test.lisp.

Special Variable: *test-dribble*
Package

it.bese.fiveam.

Source

check.lisp.

Special Variable: *verbose-failures*

T if we should print the expression failing, NIL otherwise.

Package

it.bese.fiveam.

Source

explain.lisp.


5.1.2 Macros

Macro: def-fixture (name (&rest args) &body body)

Defines a fixture named NAME. A fixture is very much like a macro but is used only for simple templating. A fixture created with DEF-FIXTURE is a macro which can use the special macrolet &BODY to specify where the body should go.

See Also: WITH-FIXTURE

Package

it.bese.fiveam.

Source

fixture.lisp.

Macro: def-suite (name &key description in)

Define a new test-suite named NAME.

IN (a symbol), if provided, causes this suite te be nested in the suite named by IN. NB: This macro is built on top of make-suite, as such it, like make-suite, will overrwrite any existing suite named NAME.

Package

it.bese.fiveam.

Source

suite.lisp.

Macro: def-suite* (name &rest def-suite-args)
Package

it.bese.fiveam.

Source

suite.lisp.

Macro: def-test (name (&key depends-on suite fixture compile-at profile) &body body)

Create a test named NAME.

NAME is the symbol which names the test.

DEPENDS-ON is a list of the form:

(AND . test-names) - This test is run only if all of the tests in TEST-NAMES have passed, otherwise a single test-skipped result is generated.

(OR . test-names) - If any of TEST-NAMES has passed this test is run, otherwise a test-skipped result is generated.

(NOT test-name) - This is test is run only if TEST-NAME failed.

AND, OR and NOT can be combined to produce complex dependencies.

If DEPENDS-ON is a symbol it is interpreted as ‘(AND ,depends-on), this is accomadate the common case of one test depending on another.

FIXTURE specifies a fixture to wrap the body in.

If PROFILE is T profiling information will be collected as well.

Package

it.bese.fiveam.

Source

test.lisp.

Macro: fail (&rest message-args)

Simply generate a FAIL.

Package

it.bese.fiveam.

Source

check.lisp.

Macro: finishes (&body body)

Generates a pass if BODY executes to normal completion. In other words if body does signal, return-from or throw this test fails.

Package

it.bese.fiveam.

Source

check.lisp.

Macro: for-all (bindings &body body)

Bind BINDINGS to random variables and test BODY *num-trials* times.

BINDINGS is a list of binding forms, each element is a list
of (BINDING VALUE &optional GUARD). Value, which is evaluated once when the for-all is evaluated, must return a generator which be called each time BODY is evaluated. BINDING is either a symbol or a list which will be passed to destructuring-bind. GUARD is a form which, if present, stops BODY from executing when IT returns NIL. The GUARDS are evaluated after all the random data has been generated and they can refer to the current value of any binding. NB: Generator forms, unlike guard forms, can not contain references to the bound variables.

Examples:

(for-all ((a (gen-integer)))
(is (integerp a)))

(for-all ((a (gen-integer) (plusp a)))
(is (integerp a))
(is (plusp a)))

(for-all ((less (gen-integer))
(more (gen-integer) (< less more)))
(is (<= less more)))

(for-all (((a b) (gen-two-integers)))
(is (integerp a))
(is (integerp b)))

Package

it.bese.fiveam.

Source

random.lisp.

Macro: for-all* (bindings &body body)

Bind BINDINGS to random variables and test BODY *num-trials* times.

Works like FOR-ALL but variables are defined sequentially - subsequent generator bindings may use value of a previous generator.

Example:

(for-all* ((a (gen-integer))
(b (gen-integer :min a :max (+ a 20)))
(is (<= a b)))

Package

it.bese.fiveam.

Source

random.lisp.

Macro: in-suite (suite-name)

Set the *suite* special variable so that all tests defined after the execution of this form are, unless specified otherwise, in the test-suite named SUITE-NAME.

See also: DEF-SUITE *SUITE*

Package

it.bese.fiveam.

Source

suite.lisp.

Macro: in-suite* (suite-name &key in)

Just like in-suite, but silently creates missing suites.

Package

it.bese.fiveam.

Source

suite.lisp.

Macro: is (test &rest reason-args)

The DWIM checking operator.

If TEST returns a true value a test-passed result is generated, otherwise a test-failure result is generated. The reason, unless REASON-ARGS is provided, is generated based on the form of TEST:

(predicate expected actual) - Means that we want to check whether, according to PREDICATE, the ACTUAL value is
in fact what we EXPECTED.

(predicate value) - Means that we want to ensure that VALUE satisfies PREDICATE.

Wrapping the TEST form in a NOT simply produces a negated reason string.

Package

it.bese.fiveam.

Source

check.lisp.

Macro: is-every (predicate &body clauses)

The input is either a list of lists, or a list of pairs. Generates (is (,predicate ,expr ,value)) for each pair of elements or (is (,predicate ,expr ,value) ,@reason) for each list.

Package

it.bese.fiveam.

Source

check.lisp.

Macro: is-false (condition &rest reason-args)

Generates a pass if CONDITION returns false, generates a failure otherwise. Like IS-TRUE, and unlike IS, IS-FALSE does not inspect CONDITION to determine what reason to give it case of test failure

Package

it.bese.fiveam.

Source

check.lisp.

Macro: is-true (condition &rest reason-args)

Like IS this check generates a pass if CONDITION returns true and a failure if CONDITION returns false. Unlike IS this check does not inspect CONDITION to determine how to report the failure.

Package

it.bese.fiveam.

Source

check.lisp.

Macro: pass (&rest message-args)

Simply generate a PASS.

Package

it.bese.fiveam.

Source

check.lisp.

Macro: signals (condition-spec &body body)

Generates a pass if BODY signals a condition of type CONDITION. BODY is evaluated in a block named NIL, CONDITION is not evaluated.

Package

it.bese.fiveam.

Source

check.lisp.

Macro: skip (&rest reason)

Generates a TEST-SKIPPED result.

Package

it.bese.fiveam.

Source

check.lisp.

Macro: test (name &body body)

Create a test named NAME. If NAME is a list it must be of the form:

(name &key depends-on suite fixture compile-at profile)

NAME is the symbol which names the test.

DEPENDS-ON is a list of the form:

(AND . test-names) - This test is run only if all of the tests in TEST-NAMES have passed, otherwise a single test-skipped result is generated.

(OR . test-names) - If any of TEST-NAMES has passed this test is run, otherwise a test-skipped result is generated.

(NOT test-name) - This is test is run only if TEST-NAME failed.

AND, OR and NOT can be combined to produce complex dependencies.

If DEPENDS-ON is a symbol it is interpreted as ‘(AND ,depends-on), this is accomadate the common case of one test depending on another.

FIXTURE specifies a fixture to wrap the body in.

If PROFILE is T profiling information will be collected as well.

Package

it.bese.fiveam.

Source

test.lisp.

Macro: with-fixture (fixture-name (&rest args) &body body)

Insert BODY into the fixture named FIXTURE-NAME.

See Also: DEF-FIXTURE

Package

it.bese.fiveam.

Source

fixture.lisp.


5.1.3 Ordinary functions

Function: ! ()

Rerun the most recently run test and explain the results.

Package

it.bese.fiveam.

Source

run.lisp.

Function: !! ()

Rerun the second most recently run test and explain the results.

Package

it.bese.fiveam.

Source

run.lisp.

Function: !!! ()

Rerun the third most recently run test and explain the results.

Package

it.bese.fiveam.

Source

run.lisp.

Function: debug! (&optional test-spec)

Calls (run! test-spec) but enters the debugger if any kind of error happens.

Package

it.bese.fiveam.

Source

run.lisp.

Function: explain! (result-list)

Explain the results of RESULT-LIST using a detailed-text-explainer with output going to *test-dribble*. Return a boolean indicating whether no tests failed.

Package

it.bese.fiveam.

Source

run.lisp.

Function: gen-buffer (&key length element-type elements)
Package

it.bese.fiveam.

Source

random.lisp.

Function: gen-character (&key code-limit code alphanumericp)

Returns a generator of characters.

CODE must be a generator of random integers. ALPHANUMERICP, if non-NIL, limits the returned chars to those which pass alphanumericp.

Package

it.bese.fiveam.

Source

random.lisp.

Function: gen-float (&key bound type)

Returns a generator which produces floats of type TYPE. BOUND, if specified, constrains the results to be in the range (-BOUND, BOUND).

Package

it.bese.fiveam.

Source

random.lisp.

Function: gen-integer (&key max min)

Returns a generator which produces random integers greater than or equal to MIN and less than or equal to MAX.

Package

it.bese.fiveam.

Source

random.lisp.

Function: gen-list (&key length elements)

Returns a generator which produces random lists. LENGTH must be an integer generator and ELEMENTS must be a generator which produces objects.

Package

it.bese.fiveam.

Source

random.lisp.

Function: gen-one-element (&rest elements)
Package

it.bese.fiveam.

Source

random.lisp.

Function: gen-string (&key length elements element-type)

Returns a generator which produces random strings. LENGTH must be a generator which produces integers, ELEMENTS must be a generator which produces characters of type ELEMENT-TYPE.

Package

it.bese.fiveam.

Source

random.lisp.

Function: gen-tree (&key size elements)

Returns a generator which produces random trees. SIZE controls the approximate size of the tree, but don’t try anything above 30, you have been warned. ELEMENTS must be a generator which will produce the elements.

Package

it.bese.fiveam.

Source

random.lisp.

Function: get-fixture (key &optional default)
Package

it.bese.fiveam.

Source

fixture.lisp.

Function: (setf get-fixture) (key)
Package

it.bese.fiveam.

Source

fixture.lisp.

Function: get-test (key &optional default)
Package

it.bese.fiveam.

Source

test.lisp.

Function: (setf get-test) (key)
Package

it.bese.fiveam.

Source

test.lisp.

Function: make-suite (name &key description in)

Create a new test suite object.

Overrides any existing suite named NAME.

Package

it.bese.fiveam.

Source

suite.lisp.

Function: rem-fixture (key)
Package

it.bese.fiveam.

Source

fixture.lisp.

Function: rem-test (key)
Package

it.bese.fiveam.

Source

test.lisp.

Function: results-status (result-list)

Given a list of test results (generated while running a test) return true if no results are of type TEST-FAILURE. Returns second and third values, which are the set of failed tests and skipped tests respectively.

Package

it.bese.fiveam.

Source

run.lisp.

Function: run (test-spec &key print-names)

Run the test specified by TEST-SPEC.

TEST-SPEC can be either a symbol naming a test or test suite, or a testable-object object. This function changes the operations performed by the !, !! and !!! functions.

Package

it.bese.fiveam.

Source

run.lisp.

Function: run! (&optional test-spec &key print-names)

Equivalent to (explain! (run TEST-SPEC)).

Package

it.bese.fiveam.

Source

run.lisp.

Function: run-all-tests (&key summary)

Runs all defined test suites, T if all tests passed and NIL otherwise. SUMMARY can be :END to print a summary at the end, :SUITE to print it after each suite or NIL to skip explanations.

Package

it.bese.fiveam.

Source

run.lisp.

Function: test-names ()
Package

it.bese.fiveam.

Source

test.lisp.


5.1.4 Generic functions

Generic Function: explain (explainer results &optional stream recursive-depth)

Given a list of test results report write to stream detailed human readable statistics regarding the results.

Package

it.bese.fiveam.

Source

explain.lisp.

Methods
Method: explain ((exp simple-text-explainer) results &optional stream recursive-depth)
Method: explain ((exp detailed-text-explainer) results &optional stream recursive-depth)

5.1.5 Standalone methods

Method: print-object ((test testable-object) stream)
Source

classes.lisp.

Method: print-object ((bundle test-bundle) stream)
Source

classes.lisp.


5.2 Internals


5.2.1 Special variables

Special Variable: *!!!*
Package

it.bese.fiveam.

Source

run.lisp.

Special Variable: *!!*
Package

it.bese.fiveam.

Source

run.lisp.

Special Variable: *!*
Package

it.bese.fiveam.

Source

run.lisp.

Special Variable: *fixture*

Lookup table mapping fixture names to fixture objects.

Package

it.bese.fiveam.

Source

fixture.lisp.

Special Variable: *initial-!*
Package

it.bese.fiveam.

Source

run.lisp.

Special Variable: *run-queue*

List of test waiting to be run.

Package

it.bese.fiveam.

Source

run.lisp.

Special Variable: *suite*

The current test suite object

Package

it.bese.fiveam.

Source

suite.lisp.

Special Variable: *test*

Lookup table mapping test (and test suite) names to objects.

Package

it.bese.fiveam.

Source

test.lisp.

Special Variable: *test-dribble-indent*

Used to indent tests and test suites in their parent suite

Package

it.bese.fiveam.

Source

run.lisp.

Special Variable: *toplevel-suites*
Package

it.bese.fiveam.

Source

suite.lisp.


5.2.2 Macros

Macro: %in-suite (suite-name &key fail-on-error in)
Package

it.bese.fiveam.

Source

suite.lisp.

Macro: acond2 (&rest clauses)
Package

it.bese.fiveam.

Source

utils.lisp.

Macro: aif (test then &optional else)

Just like IF-BIND but the var is always IT.

Package

it.bese.fiveam.

Source

utils.lisp.

Macro: bind-run-state (requested-vars &body body)
Package

it.bese.fiveam.

Source

check.lisp.

Macro: bind-run-state* (requested-vars &body body)
Package

it.bese.fiveam.

Source

check.lisp.

Macro: dbind-rec (bindings &body body)
Package

it.bese.fiveam.

Source

random.lisp.

Macro: def-special-environment (name (&key accessor binder binder*) &rest vars)

Define two macros for dealing with groups or related special variables.

ACCESSOR is defined as a macro: (defmacro ACCESSOR (VARS &rest BODY)). Each element of VARS will be bound to the
current (dynamic) value of the special variable.

BINDER is defined as a macro for introducing (and binding new) special variables. It is basically a readable LET form with the prorpe declarations appended to the body. The first argument to BINDER must be a form suitable as the first argument to LET.

ACCESSOR defaults to a new symbol in the same package as NAME
which is the concatenation of "WITH-" NAME. BINDER is built as "BIND-" and BINDER* is BINDER "*".

Package

it.bese.fiveam.

Source

utils.lisp.

Macro: dolist* ((iterator list &optional return-value) &body body)

Like DOLIST but destructuring-binds the elements of LIST.

If ITERATOR is a symbol then dolist* is just like dolist EXCEPT that it creates a fresh binding.

Package

it.bese.fiveam.

Source

utils.lisp.

Macro: if-bind (var test &body then/else)

Anaphoric IF control structure.

VAR (a symbol) will be bound to the primary value of TEST. If TEST returns a true value then THEN will be executed, otherwise ELSE will be executed.

Package

it.bese.fiveam.

Source

utils.lisp.

Macro: list-match-case (target &body clauses)
Package

it.bese.fiveam.

Source

utils.lisp.

Macro: with-*test-dribble* (stream &body body)
Package

it.bese.fiveam.

Source

check.lisp.

Macro: with-run-state (requested-vars &body body)
Package

it.bese.fiveam.

Source

check.lisp.


5.2.3 Ordinary functions

Function: add-result (result-type &rest make-instance-args)

Create a TEST-RESULT object of type RESULT-TYPE passing it the initialize args MAKE-INSTANCE-ARGS and add the resulting object to the list of test results.

Package

it.bese.fiveam.

Source

check.lisp.

Function: binding (x binds)
Package

it.bese.fiveam.

Source

utils.lisp.

Function: check-required (name vars required)
Package

it.bese.fiveam.

Source

utils.lisp.

Function: import-testing-symbols (package-designator)
Package

it.bese.fiveam.

Source

run.lisp.

Function: list-all-suites ()

Returns an unordered LIST of all suites.

Package

it.bese.fiveam.

Source

suite.lisp.

Function: list-match (x y &optional binds)
Package

it.bese.fiveam.

Source

utils.lisp.

Function: make-collector (&optional initial-value)

Create a collector function.

A Collector function will collect, into a list, all the values passed to it in the order in which they were passed. If the callector function is called without arguments it returns the current list of values.

Package

it.bese.fiveam.

Source

utils.lisp.

Function: partition-results (results-list)
Package

it.bese.fiveam.

Source

explain.lisp.

Function: partitionx (list &rest lambdas)
Package

it.bese.fiveam.

Source

utils.lisp.

Function: perform-random-testing (generators body)
Package

it.bese.fiveam.

Source

random.lisp.

Function: perform-random-testing/run-once (generators body)
Package

it.bese.fiveam.

Source

random.lisp.

Function: process-failure (test-expr &optional reason-format &rest format-args)
Package

it.bese.fiveam.

Source

check.lisp.

Function: register-test (name description body suite depends-on compile-at profile)
Package

it.bese.fiveam.

Source

test.lisp.

Function: return-result-list (test-lambda)

Run the test function TEST-LAMBDA and return a list of all test results generated, does not modify the special environment variable RESULT-LIST.

Package

it.bese.fiveam.

Source

run.lisp.

Function: vars (match-spec)
Package

it.bese.fiveam.

Source

utils.lisp.

Function: varsymp (x)
Package

it.bese.fiveam.

Source

utils.lisp.


5.2.4 Generic functions

Generic Function: %run (test-spec)

Internal method for running a test. Does not
update the status of the tests nor the special variables !, !!, !!!

Package

it.bese.fiveam.

Source

run.lisp.

Methods
Method: %run ((test-name symbol))
Method: %run ((suite test-suite))
Method: %run ((tests list))
Method: %run ((test test-case))
Generic Reader: %test-names (object)
Package

it.bese.fiveam.

Methods
Reader Method: %test-names ((test-bundle test-bundle))

automatically generated reader method

Source

classes.lisp.

Target Slot

names.

Generic Writer: (setf %test-names) (object)
Package

it.bese.fiveam.

Methods
Writer Method: (setf %test-names) ((test-bundle test-bundle))

automatically generated writer method

Source

classes.lisp.

Target Slot

names.

Generic Reader: %tests (object)
Package

it.bese.fiveam.

Methods
Reader Method: %tests ((test-bundle test-bundle))

automatically generated reader method

Source

classes.lisp.

Target Slot

tests.

Generic Writer: (setf %tests) (object)
Package

it.bese.fiveam.

Methods
Writer Method: (setf %tests) ((test-bundle test-bundle))

automatically generated writer method

Source

classes.lisp.

Target Slot

tests.

Generic Reader: actual-condition (object)
Package

it.bese.fiveam.

Methods
Reader Method: actual-condition ((unexpected-test-failure unexpected-test-failure))

automatically generated reader method

Source

check.lisp.

Target Slot

actual-condition.

Generic Writer: (setf actual-condition) (object)
Package

it.bese.fiveam.

Methods
Writer Method: (setf actual-condition) ((unexpected-test-failure unexpected-test-failure))

automatically generated writer method

Source

check.lisp.

Target Slot

actual-condition.

Generic Reader: collect-profiling-info (object)
Generic Writer: (setf collect-profiling-info) (object)
Package

it.bese.fiveam.

Methods
Reader Method: collect-profiling-info ((testable-object testable-object))
Writer Method: (setf collect-profiling-info) ((testable-object testable-object))

When T profiling
information will be collected when the test is run.

Source

classes.lisp.

Target Slot

collect-profiling-info.

Generic Reader: depends-on (object)
Generic Writer: (setf depends-on) (object)
Package

it.bese.fiveam.

Methods
Reader Method: depends-on ((testable-object testable-object))
Writer Method: (setf depends-on) ((testable-object testable-object))

The list of AND, OR, NOT forms specifying when to run this test.

Source

classes.lisp.

Target Slot

depends-on.

Generic Reader: description (object)
Generic Writer: (setf description) (object)
Package

it.bese.fiveam.

Methods
Reader Method: description ((testable-object testable-object))
Writer Method: (setf description) ((testable-object testable-object))

The textual description of this test object.

Source

classes.lisp.

Target Slot

description.

Generic Function: for-all-test-failed-p (object)
Package

it.bese.fiveam.

Source

random.lisp.

Methods
Method: for-all-test-failed-p ((object for-all-test-failed))
Method: for-all-test-failed-p (object)
Generic Reader: name (object)
Generic Writer: (setf name) (object)
Package

it.bese.fiveam.

Methods
Reader Method: name ((testable-object testable-object))
Writer Method: (setf name) ((testable-object testable-object))

A symbol naming this test object.

Source

classes.lisp.

Target Slot

name.

Generic Reader: profiling-info (object)
Generic Writer: (setf profiling-info) (object)
Package

it.bese.fiveam.

Methods
Reader Method: profiling-info ((testable-object testable-object))
Writer Method: (setf profiling-info) ((testable-object testable-object))

An object representing how
much time and memory where used by the test.

Source

classes.lisp.

Target Slot

profiling-info.

Generic Function: reason (object)
Package

it.bese.fiveam.

Methods
Method: reason ((result for-all-test-failed))
Source

random.lisp.

Reader Method: reason ((condition check-failure))
Source

check.lisp.

Target Slot

reason.

Reader Method: reason ((test-result test-result))

automatically generated reader method

Source

check.lisp.

Target Slot

reason.

Generic Writer: (setf reason) (object)
Package

it.bese.fiveam.

Methods
Writer Method: (setf reason) ((condition check-failure))
Source

check.lisp.

Target Slot

reason.

Writer Method: (setf reason) ((test-result test-result))

automatically generated writer method

Source

check.lisp.

Target Slot

reason.

Generic Function: resolve-dependencies (depends-on)
Package

it.bese.fiveam.

Source

run.lisp.

Methods
Method: resolve-dependencies ((depends-on list))

Return true if the dependency spec DEPENDS-ON is satisfied, nil otherwise.

Method: resolve-dependencies ((depends-on symbol))

A test which depends on a symbol is interpreted as ‘(AND ,DEPENDS-ON).

Generic Function: run-resolving-dependencies (test)

Given a dependency spec determine if the spec
is satisfied or not, this will generally involve running other tests. If the dependency spec can be satisfied the test is also run.

Package

it.bese.fiveam.

Source

run.lisp.

Methods
Method: run-resolving-dependencies ((test test-case))

Return true if this test, and its dependencies, are satisfied, NIL otherwise.

Generic Function: run-test-lambda (test)
Package

it.bese.fiveam.

Source

run.lisp.

Methods
Method: run-test-lambda ((test test-case))
Generic Reader: runtime-package (object)
Generic Writer: (setf runtime-package) (object)
Package

it.bese.fiveam.

Methods
Reader Method: runtime-package ((test-case test-case))
Writer Method: (setf runtime-package) ((test-case test-case))

By default it stores *package* from the time this test was defined (macroexpanded).

Source

classes.lisp.

Target Slot

runtime-package.

Generic Reader: status (object)
Generic Writer: (setf status) (object)
Package

it.bese.fiveam.

Methods
Reader Method: status ((testable-object testable-object))
Writer Method: (setf status) ((testable-object testable-object))

A symbol specifying the current status
of this test. Either: T - this test (and all its dependencies, have passed. NIL - this test
failed (either it failed or its dependecies weren’t met. :circular this test has a circular dependency and was skipped. Or :depends-not-satisfied or :resolving

Source

classes.lisp.

Target Slot

status.

Generic Function: suite-emptyp (suite)
Package

it.bese.fiveam.

Source

suite.lisp.

Methods
Method: suite-emptyp ((suite symbol))
Method: suite-emptyp ((suite test-suite))
Generic Reader: test-case (object)
Package

it.bese.fiveam.

Methods
Reader Method: test-case ((condition check-failure))
Source

check.lisp.

Target Slot

test-case.

Reader Method: test-case ((test-result test-result))

automatically generated reader method

Source

check.lisp.

Target Slot

test-case.

Generic Writer: (setf test-case) (object)
Package

it.bese.fiveam.

Methods
Writer Method: (setf test-case) ((condition check-failure))
Source

check.lisp.

Target Slot

test-case.

Writer Method: (setf test-case) ((test-result test-result))

automatically generated writer method

Source

check.lisp.

Target Slot

test-case.

Generic Reader: test-expr (object)
Package

it.bese.fiveam.

Methods
Reader Method: test-expr ((condition check-failure))
Source

check.lisp.

Target Slot

test-expr.

Reader Method: test-expr ((test-result test-result))

automatically generated reader method

Source

check.lisp.

Target Slot

test-expr.

Generic Writer: (setf test-expr) (object)
Package

it.bese.fiveam.

Methods
Writer Method: (setf test-expr) ((condition check-failure))
Source

check.lisp.

Target Slot

test-expr.

Writer Method: (setf test-expr) ((test-result test-result))

automatically generated writer method

Source

check.lisp.

Target Slot

test-expr.

Generic Function: test-failure-p (object)
Package

it.bese.fiveam.

Source

check.lisp.

Methods
Method: test-failure-p (o)
Method: test-failure-p ((o test-failure))
Generic Reader: test-lambda (object)
Generic Writer: (setf test-lambda) (object)
Package

it.bese.fiveam.

Methods
Reader Method: test-lambda ((test-case test-case))
Writer Method: (setf test-lambda) ((test-case test-case))

The function to run.

Source

classes.lisp.

Target Slot

test-lambda.

Generic Function: test-passed-p (object)
Package

it.bese.fiveam.

Source

check.lisp.

Methods
Method: test-passed-p (o)
Method: test-passed-p ((o test-passed))
Generic Function: test-skipped-p (object)
Package

it.bese.fiveam.

Source

check.lisp.

Methods
Method: test-skipped-p (o)
Method: test-skipped-p ((o test-skipped))
Generic Reader: test-suite (object)
Generic Writer: (setf test-suite) (object)
Package

it.bese.fiveam.

Methods
Reader Method: test-suite ((test-case test-case))
Writer Method: (setf test-suite) ((test-case test-case))

The test-suite associated with this test

Source

classes.lisp.

Target Slot

test-suite.

Generic Reader: tests (object)
Generic Writer: (setf tests) (object)
Package

it.bese.fiveam.

Methods
Reader Method: tests ((test-suite test-suite))
Writer Method: (setf tests) ((test-suite test-suite))

The hash table mapping names to test
objects in this suite. The values in this hash table can be either test-cases or other test-suites.

Source

classes.lisp.

Target Slot

tests.


5.2.5 Conditions

Condition: check-failure

Signaled when a check fails.

Package

it.bese.fiveam.

Source

check.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: reason
Initform

(quote "no reason given")

Initargs

:reason

Readers

reason.

Writers

(setf reason).

Slot: test-case
Initargs

:test-case

Readers

test-case.

Writers

(setf test-case).

Slot: test-expr
Initargs

:test-expr

Readers

test-expr.

Writers

(setf test-expr).

Condition: circular-dependency

Condition signaled when a circular dependency between test-cases has been detected.

Package

it.bese.fiveam.

Source

run.lisp.

Direct superclasses

error.

Direct slots
Slot: test-case
Initargs

:test-case


5.2.6 Classes

Class: detailed-text-explainer
Package

it.bese.fiveam.

Source

classes.lisp.

Direct superclasses

text-explainer.

Direct methods

explain.

Class: explainer
Package

it.bese.fiveam.

Source

classes.lisp.

Direct subclasses

text-explainer.

Class: for-all-test-failed
Package

it.bese.fiveam.

Source

random.lisp.

Direct superclasses
Direct methods
Direct slots
Slot: failure-values
Initargs

:failure-values

Slot: result-list
Initargs

:result-list

Class: for-all-test-never-run
Package

it.bese.fiveam.

Source

random.lisp.

Direct superclasses
Class: for-all-test-no-tests
Package

it.bese.fiveam.

Source

random.lisp.

Direct superclasses
Class: for-all-test-passed
Package

it.bese.fiveam.

Source

random.lisp.

Direct superclasses
Class: for-all-test-result
Package

it.bese.fiveam.

Source

random.lisp.

Direct subclasses
Direct slots
Slot: random-state
Package

common-lisp.

Initargs

:random-state

Class: simple-text-explainer
Package

it.bese.fiveam.

Source

classes.lisp.

Direct superclasses

text-explainer.

Direct methods

explain.

Class: test-bundle
Package

it.bese.fiveam.

Source

classes.lisp.

Direct methods
Direct slots
Slot: names
Readers

%test-names.

Writers

(setf %test-names).

Slot: tests
Initform

(make-hash-table :test (quote eql))

Readers

%tests.

Writers

(setf %tests).

Class: test-case

A test case is a single, named, collection of
checks.

A test case is the smallest organizational element which can be run individually. Every test case has a name, which is a symbol, a description and a test lambda. The test lambda is a regular funcall’able function which should use the various checking macros to collect results.

Every test case is part of a suite, when a suite is not explicitly specified (either via the :SUITE parameter to the TEST macro or the global variable *SUITE*) the test is inserted into the global suite named NIL.

Sometimes we want to run a certain test only if another test has passed. FiveAM allows us to specify the ways in which one test is dependent on another.

- AND Run this test only if all the named tests passed.

- OR Run this test if at least one of the named tests passed.

- NOT Run this test only if another test has failed.

FiveAM considers a test to have passed if all the checks executed were successful, otherwise we consider the test a failure.

When a test is not run due to it’s dependencies having failed a test-skipped result is added to the results.

Package

it.bese.fiveam.

Source

classes.lisp.

Direct superclasses

testable-object.

Direct methods
Direct slots
Slot: test-lambda

The function to run.

Initargs

:test-lambda

Readers

test-lambda.

Writers

(setf test-lambda).

Slot: runtime-package

By default it stores *package* from the time this test was defined (macroexpanded).

Initargs

:runtime-package

Readers

runtime-package.

Writers

(setf runtime-package).

Slot: test-suite

The test-suite associated with this test

Initargs

:test-suite

Readers

test-suite.

Writers

(setf test-suite).

Class: test-failure

Class for unsuccessful checks.

Package

it.bese.fiveam.

Source

check.lisp.

Direct superclasses

test-result.

Direct subclasses
Direct methods

test-failure-p.

Class: test-passed

Class for successful checks.

Package

it.bese.fiveam.

Source

check.lisp.

Direct superclasses

test-result.

Direct subclasses

for-all-test-passed.

Direct methods

test-passed-p.

Class: test-result

All checking macros will generate an object of type TEST-RESULT.

Package

it.bese.fiveam.

Source

check.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: reason
Initform

"no reason given"

Initargs

:reason

Readers

reason.

Writers

(setf reason).

Slot: test-case
Initargs

:test-case

Readers

test-case.

Writers

(setf test-case).

Slot: test-expr
Initargs

:test-expr

Readers

test-expr.

Writers

(setf test-expr).

Class: test-skipped

A test which was not run. Usually this is due to
unsatisfied dependencies, but users can decide to skip the test when appropriate.

Package

it.bese.fiveam.

Source

check.lisp.

Direct superclasses

test-result.

Direct methods

test-skipped-p.

Class: test-suite

A test suite is a collection of tests or test suites.

Test suites serve to organize tests into groups so that the developer can chose to run some tests and not just one or all. Like tests test suites have a name and a description.

Test suites, like tests, can be part of other test suites, this allows the developer to create a hierarchy of tests where sub trees can be singularly run.

Running a test suite has the effect of running every test (or suite) in the suite.

Package

it.bese.fiveam.

Source

classes.lisp.

Direct superclasses

testable-object.

Direct methods
Direct slots
Slot: tests

The hash table mapping names to test
objects in this suite. The values in this hash table can be either test-cases or other test-suites.

Initform

(make-instance (quote it.bese.fiveam::test-bundle))

Readers

tests.

Writers

(setf tests).

Class: testable-object
Package

it.bese.fiveam.

Source

classes.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: name

A symbol naming this test object.

Initargs

:name

Readers

name.

Writers

(setf name).

Slot: description

The textual description of this test object.

Initargs

:description

Readers

description.

Writers

(setf description).

Slot: depends-on

The list of AND, OR, NOT forms specifying when to run this test.

Initargs

:depends-on

Readers

depends-on.

Writers

(setf depends-on).

Slot: status

A symbol specifying the current status
of this test. Either: T - this test (and all its dependencies, have passed. NIL - this test
failed (either it failed or its dependecies weren’t met. :circular this test has a circular dependency and was skipped. Or :depends-not-satisfied or :resolving

Initform

:unknown

Initargs

:status

Readers

status.

Writers

(setf status).

Slot: profiling-info

An object representing how
much time and memory where used by the test.

Readers

profiling-info.

Writers

(setf profiling-info).

Slot: collect-profiling-info

When T profiling
information will be collected when the test is run.

Initargs

:collect-profiling-info

Readers

collect-profiling-info.

Writers

(setf collect-profiling-info).

Class: text-explainer
Package

it.bese.fiveam.

Source

classes.lisp.

Direct superclasses

explainer.

Direct subclasses
Class: unexpected-test-failure

Represents the result of a test which neither
passed nor failed, but signaled an error we couldn’t deal with.

Note: This is very different than a SIGNALS check which instead creates a TEST-PASSED or TEST-FAILURE object.

Package

it.bese.fiveam.

Source

check.lisp.

Direct superclasses

test-failure.

Direct methods
Direct slots
Slot: actual-condition
Initargs

:condition

Readers

actual-condition.

Writers

(setf actual-condition).


5.2.7 Types

Type: on-problem-action ()
Package

it.bese.fiveam.

Source

run.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   !   %   (  
A   B   C   D   E   F   G   I   L   M   N   P   R   S   T   V   W  
Index Entry  Section

!
!: Public ordinary functions
!!: Public ordinary functions
!!!: Public ordinary functions

%
%in-suite: Private macros
%run: Private generic functions
%run: Private generic functions
%run: Private generic functions
%run: Private generic functions
%run: Private generic functions
%test-names: Private generic functions
%test-names: Private generic functions
%tests: Private generic functions
%tests: Private generic functions

(
(setf %test-names): Private generic functions
(setf %test-names): Private generic functions
(setf %tests): Private generic functions
(setf %tests): Private generic functions
(setf actual-condition): Private generic functions
(setf actual-condition): Private generic functions
(setf collect-profiling-info): Private generic functions
(setf collect-profiling-info): Private generic functions
(setf depends-on): Private generic functions
(setf depends-on): Private generic functions
(setf description): Private generic functions
(setf description): Private generic functions
(setf get-fixture): Public ordinary functions
(setf get-test): Public ordinary functions
(setf name): Private generic functions
(setf name): Private generic functions
(setf profiling-info): Private generic functions
(setf profiling-info): Private generic functions
(setf reason): Private generic functions
(setf reason): Private generic functions
(setf reason): Private generic functions
(setf runtime-package): Private generic functions
(setf runtime-package): Private generic functions
(setf status): Private generic functions
(setf status): Private generic functions
(setf test-case): Private generic functions
(setf test-case): Private generic functions
(setf test-case): Private generic functions
(setf test-expr): Private generic functions
(setf test-expr): Private generic functions
(setf test-expr): Private generic functions
(setf test-lambda): Private generic functions
(setf test-lambda): Private generic functions
(setf test-suite): Private generic functions
(setf test-suite): Private generic functions
(setf tests): Private generic functions
(setf tests): Private generic functions

A
acond2: Private macros
actual-condition: Private generic functions
actual-condition: Private generic functions
add-result: Private ordinary functions
aif: Private macros

B
bind-run-state: Private macros
bind-run-state*: Private macros
binding: Private ordinary functions

C
check-required: Private ordinary functions
collect-profiling-info: Private generic functions
collect-profiling-info: Private generic functions

D
dbind-rec: Private macros
debug!: Public ordinary functions
def-fixture: Public macros
def-special-environment: Private macros
def-suite: Public macros
def-suite*: Public macros
def-test: Public macros
depends-on: Private generic functions
depends-on: Private generic functions
description: Private generic functions
description: Private generic functions
dolist*: Private macros

E
explain: Public generic functions
explain: Public generic functions
explain: Public generic functions
explain!: Public ordinary functions

F
fail: Public macros
finishes: Public macros
for-all: Public macros
for-all*: Public macros
for-all-test-failed-p: Private generic functions
for-all-test-failed-p: Private generic functions
for-all-test-failed-p: Private generic functions
Function, !: Public ordinary functions
Function, !!: Public ordinary functions
Function, !!!: Public ordinary functions
Function, (setf get-fixture): Public ordinary functions
Function, (setf get-test): Public ordinary functions
Function, add-result: Private ordinary functions
Function, binding: Private ordinary functions
Function, check-required: Private ordinary functions
Function, debug!: Public ordinary functions
Function, explain!: Public ordinary functions
Function, gen-buffer: Public ordinary functions
Function, gen-character: Public ordinary functions
Function, gen-float: Public ordinary functions
Function, gen-integer: Public ordinary functions
Function, gen-list: Public ordinary functions
Function, gen-one-element: Public ordinary functions
Function, gen-string: Public ordinary functions
Function, gen-tree: Public ordinary functions
Function, get-fixture: Public ordinary functions
Function, get-test: Public ordinary functions
Function, import-testing-symbols: Private ordinary functions
Function, list-all-suites: Private ordinary functions
Function, list-match: Private ordinary functions
Function, make-collector: Private ordinary functions
Function, make-suite: Public ordinary functions
Function, partition-results: Private ordinary functions
Function, partitionx: Private ordinary functions
Function, perform-random-testing: Private ordinary functions
Function, perform-random-testing/run-once: Private ordinary functions
Function, process-failure: Private ordinary functions
Function, register-test: Private ordinary functions
Function, rem-fixture: Public ordinary functions
Function, rem-test: Public ordinary functions
Function, results-status: Public ordinary functions
Function, return-result-list: Private ordinary functions
Function, run: Public ordinary functions
Function, run!: Public ordinary functions
Function, run-all-tests: Public ordinary functions
Function, test-names: Public ordinary functions
Function, vars: Private ordinary functions
Function, varsymp: Private ordinary functions

G
gen-buffer: Public ordinary functions
gen-character: Public ordinary functions
gen-float: Public ordinary functions
gen-integer: Public ordinary functions
gen-list: Public ordinary functions
gen-one-element: Public ordinary functions
gen-string: Public ordinary functions
gen-tree: Public ordinary functions
Generic Function, %run: Private generic functions
Generic Function, %test-names: Private generic functions
Generic Function, %tests: Private generic functions
Generic Function, (setf %test-names): Private generic functions
Generic Function, (setf %tests): Private generic functions
Generic Function, (setf actual-condition): Private generic functions
Generic Function, (setf collect-profiling-info): Private generic functions
Generic Function, (setf depends-on): Private generic functions
Generic Function, (setf description): Private generic functions
Generic Function, (setf name): Private generic functions
Generic Function, (setf profiling-info): Private generic functions
Generic Function, (setf reason): Private generic functions
Generic Function, (setf runtime-package): Private generic functions
Generic Function, (setf status): Private generic functions
Generic Function, (setf test-case): Private generic functions
Generic Function, (setf test-expr): Private generic functions
Generic Function, (setf test-lambda): Private generic functions
Generic Function, (setf test-suite): Private generic functions
Generic Function, (setf tests): Private generic functions
Generic Function, actual-condition: Private generic functions
Generic Function, collect-profiling-info: Private generic functions
Generic Function, depends-on: Private generic functions
Generic Function, description: Private generic functions
Generic Function, explain: Public generic functions
Generic Function, for-all-test-failed-p: Private generic functions
Generic Function, name: Private generic functions
Generic Function, profiling-info: Private generic functions
Generic Function, reason: Private generic functions
Generic Function, resolve-dependencies: Private generic functions
Generic Function, run-resolving-dependencies: Private generic functions
Generic Function, run-test-lambda: Private generic functions
Generic Function, runtime-package: Private generic functions
Generic Function, status: Private generic functions
Generic Function, suite-emptyp: Private generic functions
Generic Function, test-case: Private generic functions
Generic Function, test-expr: Private generic functions
Generic Function, test-failure-p: Private generic functions
Generic Function, test-lambda: Private generic functions
Generic Function, test-passed-p: Private generic functions
Generic Function, test-skipped-p: Private generic functions
Generic Function, test-suite: Private generic functions
Generic Function, tests: Private generic functions
get-fixture: Public ordinary functions
get-test: Public ordinary functions

I
if-bind: Private macros
import-testing-symbols: Private ordinary functions
in-suite: Public macros
in-suite*: Public macros
is: Public macros
is-every: Public macros
is-false: Public macros
is-true: Public macros

L
list-all-suites: Private ordinary functions
list-match: Private ordinary functions
list-match-case: Private macros

M
Macro, %in-suite: Private macros
Macro, acond2: Private macros
Macro, aif: Private macros
Macro, bind-run-state: Private macros
Macro, bind-run-state*: Private macros
Macro, dbind-rec: Private macros
Macro, def-fixture: Public macros
Macro, def-special-environment: Private macros
Macro, def-suite: Public macros
Macro, def-suite*: Public macros
Macro, def-test: Public macros
Macro, dolist*: Private macros
Macro, fail: Public macros
Macro, finishes: Public macros
Macro, for-all: Public macros
Macro, for-all*: Public macros
Macro, if-bind: Private macros
Macro, in-suite: Public macros
Macro, in-suite*: Public macros
Macro, is: Public macros
Macro, is-every: Public macros
Macro, is-false: Public macros
Macro, is-true: Public macros
Macro, list-match-case: Private macros
Macro, pass: Public macros
Macro, signals: Public macros
Macro, skip: Public macros
Macro, test: Public macros
Macro, with-*test-dribble*: Private macros
Macro, with-fixture: Public macros
Macro, with-run-state: Private macros
make-collector: Private ordinary functions
make-suite: Public ordinary functions
Method, %run: Private generic functions
Method, %run: Private generic functions
Method, %run: Private generic functions
Method, %run: Private generic functions
Method, %test-names: Private generic functions
Method, %tests: Private generic functions
Method, (setf %test-names): Private generic functions
Method, (setf %tests): Private generic functions
Method, (setf actual-condition): Private generic functions
Method, (setf collect-profiling-info): Private generic functions
Method, (setf depends-on): Private generic functions
Method, (setf description): Private generic functions
Method, (setf name): Private generic functions
Method, (setf profiling-info): Private generic functions
Method, (setf reason): Private generic functions
Method, (setf reason): Private generic functions
Method, (setf runtime-package): Private generic functions
Method, (setf status): Private generic functions
Method, (setf test-case): Private generic functions
Method, (setf test-case): Private generic functions
Method, (setf test-expr): Private generic functions
Method, (setf test-expr): Private generic functions
Method, (setf test-lambda): Private generic functions
Method, (setf test-suite): Private generic functions
Method, (setf tests): Private generic functions
Method, actual-condition: Private generic functions
Method, collect-profiling-info: Private generic functions
Method, depends-on: Private generic functions
Method, description: Private generic functions
Method, explain: Public generic functions
Method, explain: Public generic functions
Method, for-all-test-failed-p: Private generic functions
Method, for-all-test-failed-p: Private generic functions
Method, name: Private generic functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, profiling-info: Private generic functions
Method, reason: Private generic functions
Method, reason: Private generic functions
Method, reason: Private generic functions
Method, resolve-dependencies: Private generic functions
Method, resolve-dependencies: Private generic functions
Method, run-resolving-dependencies: Private generic functions
Method, run-test-lambda: Private generic functions
Method, runtime-package: Private generic functions
Method, status: Private generic functions
Method, suite-emptyp: Private generic functions
Method, suite-emptyp: Private generic functions
Method, test-case: Private generic functions
Method, test-case: Private generic functions
Method, test-expr: Private generic functions
Method, test-expr: Private generic functions
Method, test-failure-p: Private generic functions
Method, test-failure-p: Private generic functions
Method, test-lambda: Private generic functions
Method, test-passed-p: Private generic functions
Method, test-passed-p: Private generic functions
Method, test-skipped-p: Private generic functions
Method, test-skipped-p: Private generic functions
Method, test-suite: Private generic functions
Method, tests: Private generic functions

N
name: Private generic functions
name: Private generic functions

P
partition-results: Private ordinary functions
partitionx: Private ordinary functions
pass: Public macros
perform-random-testing: Private ordinary functions
perform-random-testing/run-once: Private ordinary functions
print-object: Public standalone methods
print-object: Public standalone methods
process-failure: Private ordinary functions
profiling-info: Private generic functions
profiling-info: Private generic functions

R
reason: Private generic functions
reason: Private generic functions
reason: Private generic functions
reason: Private generic functions
register-test: Private ordinary functions
rem-fixture: Public ordinary functions
rem-test: Public ordinary functions
resolve-dependencies: Private generic functions
resolve-dependencies: Private generic functions
resolve-dependencies: Private generic functions
results-status: Public ordinary functions
return-result-list: Private ordinary functions
run: Public ordinary functions
run!: Public ordinary functions
run-all-tests: Public ordinary functions
run-resolving-dependencies: Private generic functions
run-resolving-dependencies: Private generic functions
run-test-lambda: Private generic functions
run-test-lambda: Private generic functions
runtime-package: Private generic functions
runtime-package: Private generic functions

S
signals: Public macros
skip: Public macros
status: Private generic functions
status: Private generic functions
suite-emptyp: Private generic functions
suite-emptyp: Private generic functions
suite-emptyp: Private generic functions

T
test: Public macros
test-case: Private generic functions
test-case: Private generic functions
test-case: Private generic functions
test-expr: Private generic functions
test-expr: Private generic functions
test-expr: Private generic functions
test-failure-p: Private generic functions
test-failure-p: Private generic functions
test-failure-p: Private generic functions
test-lambda: Private generic functions
test-lambda: Private generic functions
test-names: Public ordinary functions
test-passed-p: Private generic functions
test-passed-p: Private generic functions
test-passed-p: Private generic functions
test-skipped-p: Private generic functions
test-skipped-p: Private generic functions
test-skipped-p: Private generic functions
test-suite: Private generic functions
test-suite: Private generic functions
tests: Private generic functions
tests: Private generic functions

V
vars: Private ordinary functions
varsymp: Private ordinary functions

W
with-*test-dribble*: Private macros
with-fixture: Public macros
with-run-state: Private macros


A.3 Variables

Jump to:   *  
A   C   D   F   N   P   R   S   T  
Index Entry  Section

*
*!!!*: Private special variables
*!!*: Private special variables
*!*: Private special variables
*debug-on-error*: Public special variables
*debug-on-failure*: Public special variables
*default-test-compilation-time*: Public special variables
*fixture*: Private special variables
*initial-!*: Private special variables
*max-trials*: Public special variables
*num-trials*: Public special variables
*on-error*: Public special variables
*on-failure*: Public special variables
*print-names*: Public special variables
*run-queue*: Private special variables
*run-test-when-defined*: Public special variables
*suite*: Private special variables
*test*: Private special variables
*test-dribble*: Public special variables
*test-dribble-indent*: Private special variables
*toplevel-suites*: Private special variables
*verbose-failures*: Public special variables

A
actual-condition: Private classes

C
collect-profiling-info: Private classes

D
depends-on: Private classes
description: Private classes

F
failure-values: Private classes

N
name: Private classes
names: Private classes

P
profiling-info: Private classes

R
random-state: Private classes
reason: Private conditions
reason: Private classes
result-list: Private classes
runtime-package: Private classes

S
Slot, actual-condition: Private classes
Slot, collect-profiling-info: Private classes
Slot, depends-on: Private classes
Slot, description: Private classes
Slot, failure-values: Private classes
Slot, name: Private classes
Slot, names: Private classes
Slot, profiling-info: Private classes
Slot, random-state: Private classes
Slot, reason: Private conditions
Slot, reason: Private classes
Slot, result-list: Private classes
Slot, runtime-package: Private classes
Slot, status: Private classes
Slot, test-case: Private conditions
Slot, test-case: Private conditions
Slot, test-case: Private classes
Slot, test-expr: Private conditions
Slot, test-expr: Private classes
Slot, test-lambda: Private classes
Slot, test-suite: Private classes
Slot, tests: Private classes
Slot, tests: Private classes
Special Variable, *!!!*: Private special variables
Special Variable, *!!*: Private special variables
Special Variable, *!*: Private special variables
Special Variable, *debug-on-error*: Public special variables
Special Variable, *debug-on-failure*: Public special variables
Special Variable, *default-test-compilation-time*: Public special variables
Special Variable, *fixture*: Private special variables
Special Variable, *initial-!*: Private special variables
Special Variable, *max-trials*: Public special variables
Special Variable, *num-trials*: Public special variables
Special Variable, *on-error*: Public special variables
Special Variable, *on-failure*: Public special variables
Special Variable, *print-names*: Public special variables
Special Variable, *run-queue*: Private special variables
Special Variable, *run-test-when-defined*: Public special variables
Special Variable, *suite*: Private special variables
Special Variable, *test*: Private special variables
Special Variable, *test-dribble*: Public special variables
Special Variable, *test-dribble-indent*: Private special variables
Special Variable, *toplevel-suites*: Private special variables
Special Variable, *verbose-failures*: Public special variables
status: Private classes

T
test-case: Private conditions
test-case: Private conditions
test-case: Private classes
test-expr: Private conditions
test-expr: Private classes
test-lambda: Private classes
test-suite: Private classes
tests: Private classes
tests: Private classes


A.4 Data types

Jump to:   C   D   E   F   I   O   P   R   S   T   U  
Index Entry  Section

C
check-failure: Private conditions
check.lisp: The fiveam/check․lisp file
circular-dependency: Private conditions
Class, detailed-text-explainer: Private classes
Class, explainer: Private classes
Class, for-all-test-failed: Private classes
Class, for-all-test-never-run: Private classes
Class, for-all-test-no-tests: Private classes
Class, for-all-test-passed: Private classes
Class, for-all-test-result: Private classes
Class, simple-text-explainer: Private classes
Class, test-bundle: Private classes
Class, test-case: Private classes
Class, test-failure: Private classes
Class, test-passed: Private classes
Class, test-result: Private classes
Class, test-skipped: Private classes
Class, test-suite: Private classes
Class, testable-object: Private classes
Class, text-explainer: Private classes
Class, unexpected-test-failure: Private classes
classes.lisp: The fiveam/classes․lisp file
Condition, check-failure: Private conditions
Condition, circular-dependency: Private conditions

D
detailed-text-explainer: Private classes

E
explain.lisp: The fiveam/explain․lisp file
explainer: Private classes

F
File, check.lisp: The fiveam/check․lisp file
File, classes.lisp: The fiveam/classes․lisp file
File, explain.lisp: The fiveam/explain․lisp file
File, fiveam.asd: The fiveam/fiveam․asd file
File, fixture.lisp: The fiveam/fixture․lisp file
File, package.lisp: The fiveam/package․lisp file
File, random.lisp: The fiveam/random․lisp file
File, run.lisp: The fiveam/run․lisp file
File, suite.lisp: The fiveam/suite․lisp file
File, test.lisp: The fiveam/test․lisp file
File, utils.lisp: The fiveam/utils․lisp file
fiveam: The fiveam system
fiveam.asd: The fiveam/fiveam․asd file
fixture.lisp: The fiveam/fixture․lisp file
for-all-test-failed: Private classes
for-all-test-never-run: Private classes
for-all-test-no-tests: Private classes
for-all-test-passed: Private classes
for-all-test-result: Private classes

I
it.bese.fiveam: The it․bese․fiveam package

O
on-problem-action: Private types

P
Package, it.bese.fiveam: The it․bese․fiveam package
package.lisp: The fiveam/package․lisp file

R
random.lisp: The fiveam/random․lisp file
run.lisp: The fiveam/run․lisp file

S
simple-text-explainer: Private classes
suite.lisp: The fiveam/suite․lisp file
System, fiveam: The fiveam system

T
test-bundle: Private classes
test-case: Private classes
test-failure: Private classes
test-passed: Private classes
test-result: Private classes
test-skipped: Private classes
test-suite: Private classes
test.lisp: The fiveam/test․lisp file
testable-object: Private classes
text-explainer: Private classes
Type, on-problem-action: Private types

U
unexpected-test-failure: Private classes
utils.lisp: The fiveam/utils․lisp file