Skip to content

Conversation

@antond-weta
Copy link
Contributor

Description

This adds cmake config and CI actions to run dynamic analysis.
Currently only the address and thread sanitisers are configured to run on CI, although the memory sanitiser can be run locally (I believe the OpenSSF badge only requires these three).

Currently the dynamic analysis gets run on the valid permutations of the WB and matrix methods (tests/run_valid.sh), I will add a script generating the launch commands for various permutations of invalid inputs later as a separate PR.

Tests

These are tests.

Checklist:

  • I have read the contribution guidelines.
  • I have updated the documentation, if applicable. (Check if there is no
    need to update the documentation, for example if this is a bug fix that
    doesn't change the API.)
  • I have ensured that the change is tested somewhere in the testsuite
    (adding new test cases if necessary).
  • My code follows the prevailing code style of this project. If I haven't
    already run clang-format before submitting, I definitely will look at the CI
    test that runs clang-format and fix anything that it highlights as being
    nonconforming.

@codecov-commenter
Copy link

codecov-commenter commented Jan 5, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.48%. Comparing base (442907a) to head (ff5dac5).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #233      +/-   ##
==========================================
+ Coverage   84.98%   85.48%   +0.50%     
==========================================
  Files          11       11              
  Lines        2165     2164       -1     
  Branches      326      326              
==========================================
+ Hits         1840     1850      +10     
+ Misses        325      314      -11     

see 1 file with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update be6d591...ff5dac5. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Signed-off-by: Anton Dukhovnikov <[email protected]>
-D CMAKE_CXX_STANDARD=17
-D CMAKE_BUILD_TYPE=${{ inputs.build_type }}
-D CMAKE_TOOLCHAIN_FILE="${{ inputs.toolchain_file }}"
-D CMAKE_BUILD_TYPE="${{ inputs.build_type }}"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it is already there on line 107

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess that didn't work without quotes. Fixed.

- name: Run sanitiser checks
if: inputs.sanitiser_mode != 'none'
working-directory: build/src/rawtoaces
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

inside script (run_valid.sh) it says # Execute from the build directory of the CLI tool but we run it from a different place here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the built binary location, assuming 'build' is the build folder. Is it different for you?

elseif ( "${RTA_SANITISER_MODE}" STREQUAL "thread" )
set ( RTA_SANITISER_COMPILE_OPTIONS "-fsanitize=thread" "-g" "-O1" )
set ( RTA_SANITISER_LINK_OPTIONS "-fsanitize=thread" "-g" )
endif ()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we care for else here with smth like
message(FATAL_ERROR "Invalid RTA_SANITISER_MODE: ${RTA_SANITISER_MODE}") ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Contributor

@soswow soswow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice. there is one duplicate line, all rest is LGTM

Signed-off-by: Anton Dukhovnikov <[email protected]>
@soswow
Copy link
Contributor

soswow commented Jan 5, 2026

send it!

@antond-weta antond-weta merged commit 2128cbc into AcademySoftwareFoundation:main Jan 5, 2026
17 of 18 checks passed
@antond-weta antond-weta deleted the dynamic_analysis branch January 5, 2026 23:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants