Skip to content

Fix parallel BAML test flakiness and aggregate reporting - #3828

Merged
rossirpaulo merged 9 commits into
paulo/default-testing-runnersfrom
paulo/default-testing-runners-ci-fixes
Jun 24, 2026
Merged

Fix parallel BAML test flakiness and aggregate reporting#3828
rossirpaulo merged 9 commits into
paulo/default-testing-runnersfrom
paulo/default-testing-runners-ci-fixes

Conversation

@rossirpaulo

@rossirpaulo rossirpaulo commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • make converted glob/fs BAML tests hermetic under the parallel runner
  • update affected bytecode snapshots
  • report failed child names for aggregate BAML testset runs

Verification

  • Tree matches previously verified fixed state from 2547b70
  • Previously verified with: cargo test -p baml_cli test_unfiltered_testset_run_reports_failed_child_name -- --nocapture
  • Previously verified with: cargo test -p baml_tests --test baml_src -- --nocapture

Stacked on #3772.

Summary by CodeRabbit

  • New Features

    • Test reports now track and display names of failed tests in aggregated results.
  • Bug Fixes

    • Improved test isolation with unique temporary directories per test run.
    • Enhanced CLI test output to display failed test names and aggregated totals.
    • Fixed exit code and failure summary reporting accuracy for testset execution.

@vercel

vercel Bot commented Jun 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
beps Ready Ready Preview, Comment Jun 24, 2026 11:25am
promptfiddle2 Ready Ready Preview, Comment Jun 24, 2026 11:25am
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
promptfiddle Skipped Skipped Jun 24, 2026 11:25am

Request Review

@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 9ea5b8ff-62a9-41d2-b6e8-d7d450e5b95e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch paulo/default-testing-runners-ci-fixes

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown

⏭️ Performance benchmarks were skipped

Perf benchmarks (CodSpeed) are opt-in on pull requests — they no longer run on every push. They always run automatically after merge to canary/main.

To run them on this PR, do any of the following, then push a commit (or re-run CI):

  • Add RUN_CODSPEED=1 to the PR description, or
  • Include run-perf or /perf in the PR title or any commit message.

@github-actions

Copy link
Copy Markdown

No description provided.

@coderabbitai coderabbitai Bot 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.

🧹 Nitpick comments (1)
baml_language/crates/baml_cli/tests/exit_code_e2e.rs (1)

387-423: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Prefer unit tests for helper-level parsing/summary logic, keep E2E as smoke.

This new E2E case is valuable, but the newly added pure logic in test_command.rs (leaf summary / failed-name extraction) is better covered with unit tests to reduce brittleness and runtime cost.

As per coding guidelines, **/*.rs: Prefer writing Rust unit tests over integration tests where possible.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@baml_language/crates/baml_cli/tests/exit_code_e2e.rs` around lines 387 - 423,
The test_unfiltered_testset_run_reports_failed_child_name function in
exit_code_e2e.rs is testing pure parsing and summary logic that should be
covered by unit tests instead. Extract the pure logic for leaf summary
calculation and failed child name extraction from test_command.rs into dedicated
unit test functions, and refactor this E2E test to be a minimal smoke test that
only verifies the command runs successfully and returns the expected exit code
without asserting detailed output formatting. This reduces brittleness and test
runtime while keeping E2E tests focused on end-to-end workflows.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@baml_language/crates/baml_cli/tests/exit_code_e2e.rs`:
- Around line 387-423: The test_unfiltered_testset_run_reports_failed_child_name
function in exit_code_e2e.rs is testing pure parsing and summary logic that
should be covered by unit tests instead. Extract the pure logic for leaf summary
calculation and failed child name extraction from test_command.rs into dedicated
unit test functions, and refactor this E2E test to be a minimal smoke test that
only verifies the command runs successfully and returns the expected exit code
without asserting detailed output formatting. This reduces brittleness and test
runtime while keeping E2E tests focused on end-to-end workflows.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: b834a260-3d80-42b8-acff-af4738154cc9

📥 Commits

Reviewing files that changed from the base of the PR and between 3ebd960 and 4ec004f.

⛔ Files ignored due to path filters (10)
  • baml_language/crates/baml_cli/src/snapshots/baml_cli__describe_command_tests__render_testing_package_listing.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/baml_src/fs.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/baml_src/glob.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/__testing_std__/baml_tests__compiles____testing_std____03_hir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/__testing_std__/baml_tests__compiles____testing_std____04_5_mir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/__testing_std__/baml_tests__compiles____testing_std____04_tir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/compiles/__testing_std__/baml_tests__compiles____testing_std____06_codegen.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/tests/bytecode_format/snapshots/bytecode_format__bytecode_display_expanded.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/tests/bytecode_format/snapshots/bytecode_format__bytecode_display_expanded_unoptimized.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/tests/bytecode_format/snapshots/bytecode_format__bytecode_display_textual.snap is excluded by !**/*.snap
📒 Files selected for processing (7)
  • baml_language/crates/baml_builtins2/baml_std/testing/registry.baml
  • baml_language/crates/baml_builtins2/baml_std/testing/runners.baml
  • baml_language/crates/baml_builtins2/baml_std/testing/types.baml
  • baml_language/crates/baml_cli/src/test_command.rs
  • baml_language/crates/baml_cli/tests/exit_code_e2e.rs
  • baml_language/crates/baml_tests/baml_src/ns_fs/fs.baml
  • baml_language/crates/baml_tests/baml_src/ns_glob/glob.baml

@vercel
vercel Bot temporarily deployed to Preview – promptfiddle June 24, 2026 11:19 Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant