Skip to content

50417/DeepFuzzSL

Repository files navigation

DeepFuzzSL

DeepFuzzSL is research project aimed at generating valid Simulink models such that it could be used to test Simulink tool chains and compiler

Tech

DeepFuzzSL uses open source projects to work properly. Currently the project is an extension of Clgen.

Installation

DeepFuzzSL is tested on Ubuntu 18.04 and CentOS 7. The project can be built on Windows as well after adaptation of this script to compile protocol buffer files. The project can be built on TACC. Make sure to include <PATH_TO_libcudnn> in LD_LIBRARY_PATH

$ export LD_LIBRARY_PATH=<PATH_TO_libcudnn>:$LD_LIBRARY_PATH

First, create virtual environment using Anaconda so that the installation doesnot conflict with system wide installs.

$ conda create -n <envname> python=3.6

Clone the project and install the dependencies

$ git clone https://github.com/50417/DeepFuzzSL.git
$ cd DeepFuzzSL

Activate environment and Install the dependencies (Change tensorflow tp tensorflow-gpu to use GPU for training).

$ conda activate <envname>
$ pip install -r requirements.txt

Compile protocol buffer files

$ chmod +x tools/protoc.sh
$ ./tools/proctoc.sh

Test your installation

$ python clgen.py --config <PATH_TO_CONFIGURATION_FILE>

Models Finding Bugs

ModelsFindingBugs.zip contains the models generated by DeepFuzzSL that triggered bugs in Simulink reported in the paper.

Support for other programming language

Create a corpus of the programs(training data) and compress it and also define the configuration files. Here is an ExampleConfigFile

Development

Want to contribute? Great! DeepFuzzSL uses python + Tensorflow + keras for fast developing.

Todos

  • Write MORE Tests
  • Add MORE Preprocessors for mdl files