Skip to content

test: speed up DI integration tests even more #5864

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

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

watson
Copy link
Collaborator

@watson watson commented Jun 10, 2025

What does this PR do?

Don't wait for script loading to stabilize in Dynamic Instrumentation integration tests.

This might make them temporarily set the test breakpoint in the wrong location, but it will quickly get moved to the right location and the test should still trigger as expected.

Debugger CI run performance improvement:

Before After
image image

Motivation

Plugin Checklist

Additional Notes

@watson watson mentioned this pull request Jun 10, 2025
7 tasks
Copy link
Collaborator Author

watson commented Jun 10, 2025

@watson watson mentioned this pull request Jun 10, 2025
7 tasks
Copy link

github-actions bot commented Jun 10, 2025

Overall package size

Self size: 9.63 MB
Deduped: 104.57 MB
No deduping: 105.09 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.6.0 | 30.47 MB | 30.47 MB | | @datadog/native-appsec | 8.5.2 | 19.33 MB | 19.34 MB | | @datadog/pprof | 5.8.0 | 12.55 MB | 12.92 MB | | @datadog/native-iast-taint-tracking | 4.0.0 | 11.72 MB | 11.73 MB | | @opentelemetry/core | 1.30.1 | 908.66 kB | 7.16 MB | | protobufjs | 7.5.3 | 2.95 MB | 5.6 MB | | @datadog/wasm-js-rewriter | 4.0.1 | 2.85 MB | 3.58 MB | | @datadog/native-metrics | 3.1.1 | 1.02 MB | 1.43 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.14.0 | 120.58 kB | 841.68 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.92 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.1 | 109.9 kB | 109.9 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.2 | 53.63 kB | 53.63 kB | | istanbul-lib-coverage | 3.2.2 | 34.37 kB | 34.37 kB | | rfdc | 1.4.1 | 27.15 kB | 27.15 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | dc-polyfill | 0.1.9 | 25.11 kB | 25.11 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | shell-quote | 1.8.2 | 23.54 kB | 23.54 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | semifies | 1.0.0 | 15.84 kB | 15.84 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | ttl-set | 1.0.0 | 4.61 kB | 9.69 kB | | mutexify | 1.4.0 | 5.71 kB | 8.74 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | module-details-from-path | 1.0.4 | 3.96 kB | 3.96 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

Copy link

codecov bot commented Jun 10, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 80.75%. Comparing base (784197d) to head (a73650f).
Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #5864   +/-   ##
=======================================
  Coverage   80.75%   80.75%           
=======================================
  Files         464      464           
  Lines       19910    19910           
=======================================
  Hits        16078    16078           
  Misses       3832     3832           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pr-commenter
Copy link

pr-commenter bot commented Jun 10, 2025

Benchmarks

Benchmark execution time: 2025-06-10 19:44:23

Comparing candidate commit a73650f in PR branch watson/speed-up-di-tests2 with baseline commit 784197d in branch master.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 1267 metrics, 56 unstable metrics.

@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Jun 10, 2025

Datadog Report

Branch report: watson/speed-up-di-tests2
Commit report: e699f99
Test service: dd-trace-js-integration-tests

✅ 0 Failed, 1086 Passed, 0 Skipped, 15m 0.62s Total Time
❄️ 1 New Flaky

New Flaky Tests (1)

  • [email protected] commonJS flaky test retries retries flaky tests - integration-tests/cypress/cypress.spec.js - Last Failure

    Expand for error
     expected +0 to equal 1
    

@watson watson force-pushed the watson/speed-up-di-tests branch from 60815c3 to de9c62b Compare June 10, 2025 10:38
@watson watson force-pushed the watson/speed-up-di-tests2 branch from ab6383f to 96857a5 Compare June 10, 2025 10:38
@watson watson force-pushed the watson/speed-up-di-tests branch from de9c62b to e7fd29a Compare June 10, 2025 19:26
@watson watson force-pushed the watson/speed-up-di-tests2 branch from 96857a5 to 604d7e2 Compare June 10, 2025 19:26
Base automatically changed from watson/speed-up-di-tests to master June 10, 2025 19:35
Don't wait for script loading to stabilize in Dynamic Instrumentation
integration tests.

This might make them temporarily set the test breakpoint in the wrong
location, but it will quickly get moved to the right location and the
test should still trigger as expected.
@watson watson force-pushed the watson/speed-up-di-tests2 branch from 604d7e2 to a73650f Compare June 10, 2025 19:36
@watson watson self-assigned this Jun 10, 2025
@watson watson marked this pull request as ready for review June 10, 2025 19:37
@watson watson requested review from a team as code owners June 10, 2025 19:37
Copy link
Member

@rochdev rochdev left a comment

Choose a reason for hiding this comment

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

Any way to do this without creating such a variable?

@rochdev
Copy link
Member

rochdev commented Jun 10, 2025

Actually what does this even do exactly? According to the description it seems like the right breakpoint will eventually happen anyway, so why have the delay to begin with?

Copy link
Collaborator

@BridgeAR BridgeAR left a comment

Choose a reason for hiding this comment

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

I don't think introducing another configuration warrants the benefit. It is effectively somewhat public.

@watson
Copy link
Collaborator Author

watson commented Jun 10, 2025

Any way to do this without creating such a variable?

I haven't been able to think of anything, as it has to be configurable from outside the sandbox 🤷

Actually what does this even do exactly? According to the description it seems like the right breakpoint will eventually happen anyway, so why have the delay to begin with?

It's to avoid the false positive. Both the data collected would not be what was expected and confuse users, and the incorrectly set breakpoint might be in a hot code-path, which could be a big problem (worst case scenario)

@rochdev
Copy link
Member

rochdev commented Jun 10, 2025

Seems to me like a design flaw more than something that should be configurable. I'm going to agree with @BridgeAR here. This is equivalent to adding a sleep which wouldn't fix the issue but only make it less likely, and I think we should figure out an actual fix for the underlying issue instead.

@watson
Copy link
Collaborator Author

watson commented Jun 11, 2025

Haha, yeah I knew this change was going to be controversial - and to be honest I don't really like it myself either. But I'm really happy for the discussion. I'll mark this as draft for now and think a bit more about it. Also, it's not super important to get this merged. It would just be good DevEx ☺️

@watson watson marked this pull request as draft June 11, 2025 06:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants