Skip to content

Installation

Mark Tuttle edited this page Aug 3, 2021 · 17 revisions

This page gives instructions for installing the verification tools

and their dependencies

Install the tool dependencies

Install the tool dependencies by cutting-and-pasting the following commands into your shell. If you have already installed one of these dependencies --- for example, if you have already installed python3 and want to continue using that installation --- you may omit this dependency from the installation commands below. We require Python 3.7 or later.

MacOS

HomeBrew (or simply brew) is a popular package manager for MacOS. Install brew with

  /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Install the tool dependencies with

  brew install python3 ctags ninja gnuplot graphviz
  sudo python3 -m pip install jinja2 voluptuous

Ubuntu

Install the tool dependencies with

  sudo apt-get install python3 python3-pip ctags ninja-build gnuplot graphviz
  sudo python3 -m pip install jinja2 voluptuous

Windows

Install the binary tool dependencies by downloading them from

Install the python dependencies with

  python3 -m pip install jinja2 voluptuous

Install the tools

Install the tools themselves by following the instructions on the tool release pages given below. The instructions given above have already installed the tool dependencies mentioned on the tool release pages.

Test the tools

Test that tools are installed correctly by cutting-and-pasting the following commands into your shell. These commands run the memory safety proof for one method in the FreeRTOS HTTP implementation. Expect this proof to take about a minute to run.

  git clone https://github.com/FreeRTOS/coreHTTP.git
  cd coreHTTP
  git submodule update --init --checkout --recursive

  cd test/cbmc/proofs/HTTPClient_ReadHeader
  make report
  open html/html/index.html

You can run all 20+ memory saftey proofs with the following commands. Expect these commands to take between 6 and 30 minutes to run depending on your machine.

  git clone https://github.com/FreeRTOS/coreHTTP.git
  cd coreHTTP
  git submodule update --init --checkout --recursive

  cd test/cbmc/proofs
  ./run-cbmc-proofs.py
  open /tmp/litani/runs/*/html/index.html