Skip to content

Files

Failed to load latest commit information.

Latest commit

 Cannot retrieve latest commit at this time.

History

History

summary

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

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, and
  • tools/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.