Skip to content

Conversation

@prestonvasquez
Copy link
Member

GODRIVER-3337

Summary

Add new test-containerized task that will run integration tests using testcontainers rather than orchestration.

Background & Motivation

Integration and prose tests take quite a lot of time to run, mostly because they all rely on the same orchestration. Containerizing would allow us to scale the number of orchestrations to the number of cores on the machine.

Copilot AI review requested due to automatic review settings December 5, 2025 00:03
@prestonvasquez prestonvasquez requested a review from a team as a code owner December 5, 2025 00:03
@github-actions github-actions bot added the review-priority-normal Medium Priority PR for Review: within 1 business day label Dec 5, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds support for running integration tests using testcontainers instead of orchestration, which enables parallel test execution by allowing each test to run with its own containerized MongoDB instance.

Key Changes:

  • Introduces containerized test infrastructure with testcontainers-go integration
  • Adds wire protocol version testing across multiple MongoDB versions (4.0-8.0)
  • Creates new test-containerized task for running tests in isolated containers

Reviewed changes

Copilot reviewed 11 out of 12 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
internal/test/wire_protocol_test.go New test file validating minimum supported wire versions across MongoDB versions
internal/test/go.mod New module configuration with testcontainers dependencies
internal/test/container/mongo.go Container management utilities for spawning MongoDB test instances
internal/test/container/teardown.go Teardown function type definition for cleanup
internal/test/doc.go Package documentation for test utilities
etc/run-containerized-tests.sh Shell script to execute containerized tests
Taskfile.yml Adds test-containerized task definition
.evergreen/config.yml CI configuration for containerized test execution
go.work Includes new internal/test module in workspace
internal/test/goleak/go.mod Fixes typo in module path (.go → .org)
internal/test/compilecheck/go.mod Fixes typo in module path (.go → .org)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@mongodb-drivers-pr-bot
Copy link
Contributor

mongodb-drivers-pr-bot bot commented Dec 5, 2025

🧪 Performance Results

Commit SHA: d65ad67

The following benchmark tests for version 693346700c8a8200079769dc had statistically significant changes (i.e., |z-score| > 1.96):

Benchmark Measurement % Change Patch Value Stable Region H-Score Z-Score
BenchmarkBSONDeepDocumentEncoding ops_per_second_min 37.2063 4641.7282 Avg: 3383.0283
Med: 3417.1095
Stdev: 508.9813
0.7846 2.4730

For a comprehensive view of all microbenchmark results for this PR's commit, please check out the Evergreen perf task for this patch.

@mongodb-drivers-pr-bot
Copy link
Contributor

API Change Report

No changes found!

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 12 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@prestonvasquez prestonvasquez removed the request for review from matthewdale December 5, 2025 00:15
@prestonvasquez prestonvasquez marked this pull request as draft December 5, 2025 00:15
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 11 out of 12 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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

Labels

ci/cd review-priority-normal Medium Priority PR for Review: within 1 business day

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant