rapidsai / rmm

RAPIDS Memory Manager
https://docs.rapids.ai/api/rmm/stable/
Apache License 2.0
446 stars 188 forks source link

[FEA] Build and test RMM C++ Debug in CI #1591

Open harrism opened 2 weeks ago

harrism commented 2 weeks ago

Is your feature request related to a problem? Please describe. Yesterday I was debugging some new code so I did a debug build of RMM and its gtests, and found 3 test fails.

  1. A legitimate UB bug.
  2. A legitimate test failure due to an incorrect expectation for an assertion message
  3. A legitimate test failure due to an assert. This should either be skipped in debug builds or turned into a death test.

Triaging these failures to make sure they weren't related to the change I'm working on cost precious time. Submitting issues and PRs to fix them cost more time.

Describe the solution you'd like Build and test debug build of librmm and gtests in CI.

Notes in approach from @bdice: Create a “custom job” (same GitHub Action we use for docs and other misc. tasks) and write a bash script that runs the build and test. I would run this on only one configuration, latest CUDA and latest Python on x86-64. Copy-paste the docs job: https://github.com/rapidsai/rmm/blob/1ab4920e50a07a97ec717db514ad9a3dccc9939a/.github/workflows/pr.yaml#L56 Modify it to use ci-wheel instead of ci-conda (should be faster if you can avoid the conda solve). Write a short bash script to build and test in ci/test_debug.sh. Ideally I would use ./build.sh to build but with custom flags.

Describe alternatives you've considered Run one-off tests. I don't think this is reliable.

Additional context Add any other context, code examples, or references to existing implementations about the feature request here.