sach1t / symbv

Validating changes using concolic execution

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Symbv

Validating Code Changes Using Symbolic Execution

Notes

Report

Requirements

  • Java 8
  • Z3

Installation

  • ant clean
  • ant bootstrap
  • ant resolve
  • ant build

Usage

To run any of the examples (or another project on a separate directory in the examples directory) you could use the shell script provided:

# Apply patches and generate Symbv tests
./bin/symbv example_name gen

# Compile everything
ant build

# Concolic/Symbolic execution
./bin/symbv example_name symbv

The last command could be replaced by two other options (for prune optimization or full symbolic execution):

# Prune Optimization
./bin/symbv example_name prune

# Symbolic execution
./bin/symbv example_name symbolic

Development Info

Tasks

  • Run ant bootstrap - boostraps ivy install
  • Run ant resolve - downloads the dependencies and places them in the lib directory
  • Run ant build - builds the project
  • Run ant test - runs test cases

Adding Dependencies

  1. Add dependency to ivy.xml
  2. Run ant resolve
  3. Add new jars to .classpath under the 3rd party jars section (this could be useful: cd lib; for f in *.jar; do echo "<classpathentry kind=\"lib\" path=\"lib/$f\"/>"; done)

About

Validating changes using concolic execution


Languages

Language:Java 98.4%Language:Shell 1.6%