Coder Social home page Coder Social logo

e6863-fridge-model-checking's Introduction

E6863 Project - Fridge Model Checking

This is the final project for Columbia University CSEE E6863 Formal Verification HW/SW System. It aims at performing bounded model checking on Fridge, a multi-threaded key-value store that supports nonblocking and blocking GET operation, to help locating bugs that are hard to find via normal testing method.

This project utilizes CBMC to perform model checking.

Get Started

As CBMC requires adding code that cannot be normally compiled, the master branch of the repository is for running CBMC.

To run unit tests and e2e tests, you need to switch to the test tag using:

git checkout test

Run Fridge

To run fridge, use the following make command to compile:

make app

and run the executable:

./app

Run the unit tests

All the unit tests are located in test/unit_test.c.

To run the unit tests, use the following make command to compile:

make unit_test

and run the executable:

./unit_test

Run the end-to-end tests

All the end-to-end tests are located in test/e2e_test.c.

To run the unit tests, use the following make command to compile:

make e2e_test

and run the executable:

./e2e_test

Run CBMC Model Checking

Function-Level

We implemented function-level model checking for kkv_init, kkv_destroy, kkv_get and kkv_put.

To run CBMC on each function, you need to comment out the other three functions and then run the corresponding command in the Makefile.

TBD

e6863-fridge-model-checking's People

Contributors

qq544259335 avatar zclyne avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.