Skip to content

tezedge/action_fuzzer_ci

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This repository contains the script files needed to deploy and run TezEdge's action-fuzzer in the fuzzing CI.

To deploy we just need to run the ./deploy.sh script which will build the action_fuzzer Docker container.

After the container is created, it can be launched (in detached mode) by running the ./run.sh script. The container will listen to HTTP requests on port 8080 in the host's net.

There is a single endpoint: http://127.0.0.1:8080/start

When a GET request is made to that endpoint the container will:

  • If there are any light-node instances running, terminate them (SIGTERM).
  • If there are any fuzzcheck (action-fuzzer) instances running, terminate them (SIGTERM).
  • Pull latest changes from tezedge/develop branch.
  • Rebuild and run light-node.
  • Rebuild and run action-fuzzer.

Both, light-node and action-fuzzer will run until the next request to http://127.0.0.1:8080/start, in which case they are restarted. When the fuzzer is terminated (SIGTERM), a coverage report is generated from fuzzcheck coerage statistics. Reports are compatible with the rest of the fuzzing CI reports and they are stored in: /var/lib/fuzzing-data/reports/.

To complete the fuzzing CI integration, the http://127.0.0.1:8080/start endpoint should be called every time new code is pushed to the develop branch.

NOTE: the light-node instance is a normal node connected to the mainnet. Its purpose is to provide real-world state, when the action-fuzzer starts it requests this state via an RPC call. This state is used as initial state to apply the random actions generated by the fuzzer.

Generated coverage reports can be visualized with a web browser from http://127.0.0.1:8080/. Keep in mind that to generate reports for the first time two requests to http://127.0.0.1:8080/start are needed, since the reports for the first request are generated when the first fuzzer is stopped by the second request.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published