This directory contains a script that scans the viewer output for a set of and produce a summary of the stubs and undefined functions being used in the proofs. This is a work-in-progress.
-
projects.json is a list of projects on gitub. Each entry gives the url for the github repository and the path within the repository to the cbmc proofs. See more below.
-
summary.py scans the list of projects and clones the repositories, runs the proofs, summarizes the results, and produces a table of the results. See
summary.py --help
. -
stubs.py summarizes the stubs and undefined functions used in a proof. It is used as a library by summary.py, but see
stubs.py --help
.
Here is an example of a project list:
projects.json:
{
"Baseball": {
"github": "https://github.com/johnqpublic/baseball-fantasy-team.git",
"proofs": "tools/cbmc/proofs"
},
"Football": {
"github": "https://github.com/johnqpublic/football-fantasy-team.git",
"proofs": "test/cbmc/proofs"
}
}
This list describes two projects named "Baseball" and "Football". For "Baseball",
https://github.com/johnqpublic/baseball-fantasy-team.git
is the URL for the code repository, andtools/cbmc/proofs
is the path within the repository to the directory under which all of the CBMC proofs can be found.
Similarly for "Football". The names "Baseball" and "Football" are just
short names for the projects. They are used to refer the the projects
on the command line with summary.py --project Baseball Football
and
they are used as column headers for the projects in the spreadsheet
produced by summary.py --chart
.