Skip to content

TianchiLiu/verifySourceCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

How to verify

We have tested verification with the following setup:

  • Linux Ubuntu 17.10
  • LLVM 5.0.0
  • Z3 4.5.0
  • Python 2.7.10

make hv6-verify: Runs the verification scripts for the hv6 kernel. This includes building the kernel into LLVM IR, translating the kernel to Python using Irpy, and invoking hv6/spec/main.py. Individual tests can be run, for example, to run just the sys_set_runnable test, invoke: make hv6-verify -- -v --failfast HV6.test_sys_set_runnable`

make irpy/test: Runs the Irpy test suite, which compares symbolic execution results to running the C code directly.

Directory structure

hv6/: Contains the implementation of the hv6 kernel

hv6/spec/: Contains the specification for the hv6 kernel

irpy/compiler/: Contains the implementation of the IR -> Python compiler used for symbolic execution

irpy/libirpy/: Contains the Python library and resources for performing symbolic execution over Python generated by the Irpy compiler

A few quick pointers:

  • state-machine specification: hv6/spec/kernel/spec/specs.py
  • declarative specification: hv6/spec/kernel/spec/top.py

About

基于LLVM的静态验证

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published