▸ Week 6 Summary
Pull requests and changes made in sixth week
Introduction
This post is meant to be a reference for the work I’ve done during the sixth week.
Week 6
After the creation of a RcppDeepState GitHub Action prototype of the previous week, I managed to organize my week spending some time working on RcppDeepState and the rest of the time improving the existing GitHub Action prototype.
RcppDeepState
I started by doing some improvements to the RcppDeepState’s logs, printing for each function not analyzed, the list of parameters that fall out of the allowed list. I also added a verbose
parameter to all the functions that generates some textual output. This option is used to offer more detailed information if set to TRUE
.
Additionally, I discovered that RcppDeepState did not execute the analysis of a package containing a function with an argument of type Rcpp::String
since this datatype is not one that is supported. To fill this gap, I added a method that creates a random Rcpp::String
to the RcppDeepState.h
header file.
RcppDeepState Action
On the Action side, I implemented the exit codes allowing the Action to report a fail status if the RcppDeepState’s analysis discovers any issues. If no errors have been detected, the analysis script produces a status code of 0, and if at least one issue has been discovered by RcppDeepState, it returns a status code of 1.
I also extended the Action’s input arguments, providing programmers more flexibility over the RcppDeepState options. The following input parameters have been introduced
seed
: input parameter that will be used as an input seed for deterministic fuzz testing;time_limit
: used to control the time which the fuzzing phase will be run;max_inputs
: used to provide a maximum number of inputs to analyze
Reference
Pull requests:
- Harness creation improvements
- Logging improvements
- Rcpp string support
- First prototype
- Exit codes
- Input arguments
Issues: