-
Notifications
You must be signed in to change notification settings - Fork 159
Add Kotlin coroutines instrumentation tests #2705
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
base: main
Are you sure you want to change the base?
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2705 +/- ##
============================================
- Coverage 70.34% 70.31% -0.03%
+ Complexity 10123 10119 -4
============================================
Files 853 853
Lines 41118 41120 +2
Branches 6240 6241 +1
============================================
- Hits 28923 28915 -8
- Misses 9372 9375 +3
- Partials 2823 2830 +7 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
@dhilpipre This PR does some work to strengthen the Kotlin coroutines test suite. I was curious if you might have any commentary/recommendations for additions or revisions that could be made per this PR? |
|
@sharvath-newrelic I'll take a look and let you know. |
Overview
Per this PR, classloading issues resulting from the porting of Kotlin lab code have been resolved. Additionally, unit tests for the Kotlin coroutines instrumentation modules (1.4, 1.7 and 1.9) have been added with assertions to verify NR agent behavior. Tests help to verify:
It's worth noting
async.ktandPauseService.ktwere not ported for the following reasons:async.kt:- Contained example code demonstrating async/await patterns but without assertions
- All patterns have been incorporated into
CoroutinesTest.ktwith Introspector-based verification- The new tests cover the same scenarios (async, awaitAll, multiple deferreds) with agent behavior validation
PauseService.kt:- No longer needed as new tests use
delay()directly within test methodsRelated Github Issue
Resolves #2675
Resolves #2661
Testing
To run the instrumentation tests manually, run the following command template via the terminal:
./gradlew instrumentation:kotlin-coroutines-1.x:test --parallel