Introduction

This post is meant to be a reference for the work I’ve done during the seventh week.

Week 7

I have spent most of this week’s time working on the RcppDeepState GitHub Action. As discussed in my previous blog post1 I decided to integrate the actual docker based action with a composite one. Thanks to the precious advices of my mentors, I have performed this update, moving the actual docker architecture to the docker folder of the repository and creating a new action.yml file for the composite architecture. In this way the final result is a more flexible action that can be easily integrated with other actions available on the marketplace. In particular I have done the following improvements:

  • artifact upload: the results of RcppDeepState analysis are compressed in a zip file and uploaded as an artifact file to GitHub. By doing this, the user can easily download the analysis results and check the logs, inputs and outputs;
  • comment on pull request: the table that is returned by the analysis step can be printed in the pull requests if the comment parameter of the action is set to true. Here is a example of a comment message
function_name message file_line address_trace
rcpp_read_out_of_bound Invalid read of size 4 read_out_of_bound.cpp:7 No Address Trace found
rcpp_use_after_deallocate Invalid read of size 1 use_after_deallocate.cpp:8 use_after_deallocate.cpp:6
rcpp_use_after_free Invalid read of size 4 use_after_free.cpp:8 use_after_free.cpp:6
rcpp_write_index_outofbound Invalid write of size 4 write_index_outofbound.cpp:8 No Address Trace found
rcpp_zero_sized_array Invalid write of size 4 zero_sized_array.cpp:8 zero_sized_array.cpp:7
  • new fail_ci_if_error parameter: allows developers to define whether the workflow should fail if at least one error is found by RcppDeepState;

In terms of RcppDeepState, I improved the harness creation procedure by deleting some superfluous if/else lines and reorganizing all the information for each supported datatype into a data.table structure.

Reference

Pull requests:

Blog posts: