Reference manual

Name

cbmc-starter-kit-update - Update CBMC starter kit in a CBMC proof repository

Synopsis

cbmc-starter-kit-update [-h] [--cbmc-root CBMC]
                        [--starter-kit-root STARTER_KIT] [--no-migrate]
                        [--no-test-removal] [--no-update]
                        [--remove-starter-kit-submodule]
                        [--remove-litani-submodule] [--verbose]
                        [--debug] [--version]

Description

This script is used to update the CBMC starter kit installed in your repository to the lastest version. It copies (overwrites) two files into your repository (Makefile.common and run-cbmc-proofs.py). These are the two files in the starter kit that encode our best practices for how to use CBMC in a software verification project.

This script will also migrate your repository from early versions of the starter kit and litani (the build system used by the starter kit) to modern versions. Early versions of the starter kit and litani were distributed as as git repositories that you submoduled into your repository. The starter kit also installed symbolic links from your repository into the starter kit submodule. This script will remove the symbolic links (replace them with the files they are linking to) and will also remove the starter kit and litani submodules from your repository if you give the --remove-stater-kit-submodule and --remove-litani-submodule flags (flags you almost certainly want to use during the migration). Finally, it will remove some regression tests that were distributed with early versions of the starter kit that most people don't use.

Options

--cbmc-root CBMC

  • Root of CBMC proof infrastructure (default: ".")

--starter-kit-root STARTER_KIT

  • Root of CBMC starter kit submodule (default: None or root of starter kit submodule installed in repository containing CBMC)

--no-migrate

  • Do not remove symlinks under CBMC. Normally remove symlinks under CBMC to files under STARTER_KIT.

--no-test-removal

  • Do not remove negative tests in CBMC/negative_tests. Normally remove the directory CBMC/negative_tests since most projects don't use these tests.

--no-update

  • Do not update Makefile.common and run-cbmc-proofs.py under CBMC/proofs. Normally update these files with the versions in the starter kit package.

--remove-starter-kit-submodule

  • Remove the starter kit submodule if it is present. Normally just recommend removal.

--remove-litani-submodule

  • Remove the litani submodule and update the definition of LITANI in Makefile-template-defines if the litani submodule is present and the litani command is in PATH. Normally just recommend removal.

--verbose

  • Verbose output

--debug

  • Debug output

--version

  • Display version and exit

--help, -h

  • Print the help message and exit.