-
Notifications
You must be signed in to change notification settings - Fork 412
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore(profiling): run native tests in ci #11108
Conversation
|
Datadog ReportBranch report: ✅ 0 Failed, 592 Passed, 694 Skipped, 19m 15.94s Total duration (17m 34.75s time saved) |
BenchmarksBenchmark execution time: 2024-11-11 22:35:21 Comparing candidate commit 95cfd6a in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 388 metrics, 2 unstable metrics. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generally speaking this looks good and I really like how it works within the framework of our existing tests.
I left some comments about the use of RPATH
, since this is loader-facing change which will affect how resolution occurs in customer environments. In practice I don't think this actually matters, so I'm not blocking the PR based on this feedback, but the general guidance is to minimize dependency resolution at dynamic load-time.
1. Use `pytest-cpp` to discover and run profiling C++ tests a. `pytest-cpp` will find executables that start with `test_` b. all tests are put into `ddtrace/internal/datadog/profiling/test` and `tests/profiling_v2/native_test` will symlink to it for discovery. 3. `DD_PROFILING_NATIVE_TESTS` flag is used to build native tests a. needed to set this in `build_base_venv` b. setup.py includes native test binaries when the flag is set c. gitlab will also propagate those artifacts ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
pytest-cpp
to discover and run profiling C++ testsa.
pytest-cpp
will find executables that start withtest_
b. all tests are put into
ddtrace/internal/datadog/profiling/test
andtests/profiling_v2/native_test
will symlink to it for discovery.DD_PROFILING_NATIVE_TESTS
flag is used to build native testsa. needed to set this in
build_base_venv
b. setup.py includes native test binaries when the flag is set
c. gitlab will also propagate those artifacts
Checklist
Reviewer Checklist