Skip to content

Carve slow/e2e tests into separate testSlow tasks - #700

Open
jbachorik wants to merge 3 commits into
mainfrom
jb/slow-test-suite
Open

Carve slow/e2e tests into separate testSlow tasks#700
jbachorik wants to merge 3 commits into
mainfrom
jb/slow-test-suite

Conversation

@jbachorik

Copy link
Copy Markdown
Collaborator

What does this PR do?:
Tags long-running (45-70s+) tests with @Tag("slow"), excludes them from the default test${Config} Gradle tasks, and adds new testSlow${Config} tasks (with the same gtest dependency wiring) that run only in the nightly and pre-release-validated CI workflows.

Motivation:
Several tests (reference-chain tracking, class-unload/leak stress tests, dump-while-churning-threads) individually take 45-70+ seconds, inflating the regular per-PR test run. They belong in a slow/e2e suite that runs nightly and before releases, not on every PR.

Additional Notes:

  • ProfilerTestRunner (the musl Exec-task path) gained -Dtest.tags.include/-Dtest.tags.exclude system-property-driven tag filtering, mirroring the native Gradle Test task's includeTags/excludeTags.
  • testSlow${Config} tasks depend on the same gtest${Config} task as their test${Config} sibling, since each is an independent CI job.

How to test the change?:

  • ./gradlew :ddprof-test:tasks lists testDebug, testRelease, testSlowDebug, testSlowRelease with correct descriptions.
  • ./gradlew -q :ddprof-test:testSlowDebug --dry-run confirms the gtestDebug task graph is a dependency.
  • nightly.yml and release-validated.yml validated as valid YAML.

For Datadog employees:

  • If this PR touches code that signs or publishes builds or packages, or handles
    credentials of any kind, I've requested a security review (run the dd:platform-security-review
    skill, or file a request via the PSEC review form).
    bewaire also runs automatically on every PR.
  • This PR doesn't touch any of that.
  • JIRA: N/A

Unsure? Have a question? Request a review!

…re-release

Tag long-running tests with @tag("slow"), exclude them from the default
test tasks, and add testSlow${Config} Gradle tasks (wired to gtest deps)
run only by the nightly and release-validated CI workflows.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 31, 2026 10:05
@jbachorik jbachorik added the AI label Jul 31, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@dd-octo-sts

dd-octo-sts Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

CI Test Results

Run: #30641088505 | Commit: 830c21d | Duration: 14m 10s (longest job)

All 32 test jobs passed

Status Overview

JDK glibc-aarch64/debug glibc-amd64/debug musl-aarch64/debug musl-amd64/debug
8 - - -
8-ibm - - -
8-j9 - -
8-librca - -
8-orcl - - -
11 - - -
11-j9 - -
11-librca - -
17 - -
17-graal - -
17-j9 - -
17-librca - -
21 - -
21-graal - -
21-librca - -
25 - -
25-graal - -
25-librca - -

Legend: ✅ passed | ❌ failed | ⚪ skipped | 🚫 cancelled

Summary: Total: 32 | Passed: 32 | Failed: 0


Updated: 2026-07-31 15:33:21 UTC

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 31, 2026 10:21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@dd-octo-sts

dd-octo-sts Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit 5502908)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/128197042 Commit: 55029082901fdba8a40f184b561b67dc1e1ae9a8

⚠️ Significant outliers

  • 🟢 fj-kmeans (JDK 21): runtime -4.5% (2782→2657 ms)
  • 🔴 future-genetic (JDK 25): runtime +4.3% (1971→2056 ms)
Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10277 ms (21 iters) ✅ 10216 ms (21 iters) ≈ -0.6% (±11.6%) — / —
akka-uct 25 ✅ 8828 ms (24 iters) ✅ 8927 ms (24 iters) ≈ +1.1% (±9.8%) — / —
finagle-chirper 21 ✅ 5946 ms (33 iters) ✅ 6015 ms (33 iters) ≈ +1.2% (±25.2%) ⚠️ W:3 / ⚠️ W:3
finagle-chirper 25 ✅ 5437 ms (36 iters) ✅ 5470 ms (36 iters) ≈ +0.6% (±23.9%) ⚠️ W:3 / ⚠️ W:3
fj-kmeans 21 ✅ 2782 ms (67 iters) ✅ 2657 ms (70 iters) 🟢 -4.5% — / —
fj-kmeans 25 ✅ 2778 ms (67 iters) ✅ 2837 ms (66 iters) ≈ +2.1% (±2.7%) — / —
future-genetic 21 ✅ 2080 ms (89 iters) ✅ 2075 ms (89 iters) ≈ -0.2% (±2.6%) — / —
future-genetic 25 ✅ 1971 ms (93 iters) ✅ 2056 ms (90 iters) 🔴 +4.3% — / —
naive-bayes 21 ✅ 1241 ms (137 iters) ✅ 1311 ms (131 iters) ≈ +5.6% (±33.5%) — / —
naive-bayes 25 ✅ 1012 ms (169 iters) ✅ 1001 ms (171 iters) ≈ -1.1% (±31.5%) — / —
reactors 21 ✅ 17177 ms (15 iters) ✅ 17395 ms (15 iters) ≈ +1.3% (±7.5%) — / —
reactors 25 ✅ 18447 ms (15 iters) ✅ 18630 ms (15 iters) ≈ +1% (±4.3%) — / —
Internal counter details (ddprof)

ddprof internal counters, latest / dev (✅ = 0, · = unavailable):

Benchmark JDK Dropped rec Dropped jvmti Dropped trace Skipped WC AGCT fail Unwind fail
akka-uct 21 ✅ / ✅ ✅ / ✅ 2 / 1 1995 / 2020 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ ✅ / 2 2171 / 2126 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 3 / 3 8768 / 8817 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 1 / 1 8597 / 8311 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ ✅ / 3 1268 / 1300 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ 3 / 2 1250 / 1293 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ 2 / 4 2937 / 2949 ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ 1 / 3 2872 / 2881 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 4 / 4 3506 / 3486 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 1 / 1 3502 / 3469 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ ✅ / ✅ 1769 / 1817 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ 1 / ✅ 1944 / 1918 ✅ / ✅ ✅ / ✅

@jbachorik
jbachorik marked this pull request as ready for review July 31, 2026 15:01
@jbachorik
jbachorik requested a review from a team as a code owner July 31, 2026 15:01
Copilot AI review requested due to automatic review settings July 31, 2026 15:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 734072b35d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

uses: ./.github/workflows/test_workflow.yml
with:
configuration: '["debug"]'
slow_tests: true

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Namespace artifacts by test suite

For every normal release validation, this call and pre-release-tests both instantiate the full debug matrix, but test_workflow.yml names uploaded artifacts only by platform, JDK, and configuration (for example, line 170), without distinguishing regular from slow tests. Since actions/upload-artifact artifacts are immutable and names must be unique within the workflow run, the second debug job to upload each name fails, causing one of these required reusable-workflow jobs to fail and blocking create-release; include the suite in every artifact name.

Useful? React with 👍 / 👎.

if: ${{ inputs.dry_run != true && inputs.skip_tests != true && inputs.release_type != 'retag' }}
uses: ./.github/workflows/test_workflow.yml
with:
configuration: '["debug"]'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep slow regressions in ASan runs

Configuring the slow suite only for debug means the newly tagged tests are excluded from both nightly and pre-release ASan tasks, while no testSlowAsan invocation replaces that coverage. This is particularly harmful for WriteStackTracesAfterClassUnloadTest, whose own documentation says non-sanitized runs can stay green on the use-after-free and that ASan/UBSan is the authoritative signal; include asan in a slow-suite workflow so this regression remains detectable.

AGENTS.md reference: AGENTS.md:L324-L328

Useful? React with 👍 / 👎.

import org.junit.platform.engine.support.descriptor.MethodSource;
import org.junit.platform.launcher.Launcher;
import org.junit.platform.launcher.LauncherDiscoveryRequest;
import org.junit.platform.launcher.TagFilter;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Add the required Datadog copyright header

This commit modifies ProfilerTestRunner.java, but the file still begins directly with its package declaration and has no Datadog copyright header. Add the current-year header required for any modified file that lacks one.

AGENTS.md reference: AGENTS.md:L372-L374

Useful? React with 👍 / 👎.

@dd-octo-sts

dd-octo-sts Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit 734072b)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/128272132 Commit: 734072b35d2cb297be51ab293c01823169f13013

⚠️ Significant outliers

  • 🟢 future-genetic (JDK 21): runtime -3.2% (2133→2065 ms)
  • 🔴 future-genetic (JDK 25): runtime +3.4% (2009→2077 ms)
Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10402 ms (21 iters) ✅ 10250 ms (21 iters) ≈ -1.5% (±10.6%) — / —
akka-uct 25 ✅ 8930 ms (24 iters) ✅ 8826 ms (24 iters) ≈ -1.2% (±10.4%) — / —
finagle-chirper 21 ✅ 5953 ms (33 iters) ✅ 5935 ms (33 iters) ≈ -0.3% (±24.6%) ⚠️ W:3 / ⚠️ W:3
finagle-chirper 25 ✅ 5494 ms (36 iters) ✅ 5473 ms (36 iters) ≈ -0.4% (±24.8%) ⚠️ W:3 / ⚠️ W:3
fj-kmeans 21 ✅ 2727 ms (68 iters) ✅ 2776 ms (67 iters) ≈ +1.8% (±2.7%) — / —
fj-kmeans 25 ✅ 2837 ms (66 iters) ✅ 2828 ms (66 iters) ≈ -0.3% (±2.6%) — / —
future-genetic 21 ✅ 2133 ms (87 iters) ✅ 2065 ms (90 iters) 🟢 -3.2% — / —
future-genetic 25 ✅ 2009 ms (92 iters) ✅ 2077 ms (89 iters) 🔴 +3.4% — / —
naive-bayes 21 ✅ 1314 ms (130 iters) ✅ 1234 ms (138 iters) ≈ -6.1% (±32%) — / —
naive-bayes 25 ✅ 1022 ms (167 iters) ✅ 1012 ms (168 iters) ≈ -1% (±31.8%) — / —
reactors 21 ✅ 16450 ms (15 iters) ✅ 15792 ms (15 iters) ≈ -4% (±7.6%) — / —
reactors 25 ✅ 18869 ms (15 iters) ✅ 18773 ms (15 iters) ≈ -0.5% (±5.1%) — / —
Internal counter details (ddprof)

ddprof internal counters, latest / dev (✅ = 0, · = unavailable):

Benchmark JDK Dropped rec Dropped jvmti Dropped trace Skipped WC AGCT fail Unwind fail
akka-uct 21 ✅ / ✅ ✅ / ✅ ✅ / 1 2009 / 1922 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ 1 / 1 2201 / 2301 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 5 / 4 8503 / 8481 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 1 / 2 8717 / 8472 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ 3 / 3 1261 / 1255 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ 2 / 1 1280 / 1266 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ 3 / 1 2964 / 2991 ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ ✅ / ✅ 2834 / 2958 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 4 / 1 3483 / 3477 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 1 / 3 3463 / 3437 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ 1 / ✅ 1797 / 1623 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ 1 / 1 1933 / 1917 ✅ / ✅ ✅ / ✅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants