Using Code Coverage involves four steps, described in this section:
Optionally, you can get a copy of the results and manipulate these before displaying them, as described in Manipulating code coverage data.
Switch on generation of Code Coverage by either calling generate-code-coverage (which switches it globally), or using the macro with-code-coverage-generation (which switches it on only within the dynamic scope of the macro). Then compile your file(s) by calling compile-file. Alternatively you can use something that calls compile-file such as compile-system, menu command
File > Compile...
or the editor command
When compile-file is called with code coverage generation, it generates code that keeps track of execution and contains some extra data. This results in slightly slower code and larger binary files that use more memory when loaded.
Load your compiled files as usual by calling
cl:load. Alternatively you can use something that calls
cl:load such as load-system, menu command
File > Load...
or the editor command
When a file that was compiled with code coverage generation is loaded, it automatically adds itself to the internal code-coverage-data structure (overwriting existing data), and from that point any access to this structure (see below) will include information about the code in this file. Executing code that was compiled with code coverage generation always updates the internal code-coverage-data structure (it is not switchable).
Code Coverage measures which parts of the program were executed, so you need to decide what you want to check and call the entry points. In a graphical application, you need to display the main window and interact with it.
HTML display is done by calling code-coverage-data-generate-coloring-html, which in general generates one HTML file per source file in the code-coverage-data, and also an index HTML file with hyperlinks to all of them. Editor display is done by the function editor-color-code-coverage, which takes the name of a source file and creates a new editor buffer with the source colored according to the code coverage. Both functions take various keywords to control what they actually do. By default, both of them use the internal code-coverage-data structure, but can also use a manipulated code-coverage-data. See code-coverage-data-generate-coloring-html and editor-color-code-coverage for full details.
LispWorks User Guide and Reference Manual - 20 Sep 2017