feat: add ContainerGuardSet for multi-container test management#227
Merged
joshrotenberg merged 1 commit intomainfrom Jan 5, 2026
Merged
feat: add ContainerGuardSet for multi-container test management#227joshrotenberg merged 1 commit intomainfrom
joshrotenberg merged 1 commit intomainfrom
Conversation
Implements Issue #220 - ContainerGuardSet for managing multiple containers as a group with coordinated lifecycle. Features: - Type-erased storage for heterogeneous template types - Shared network support with automatic creation/cleanup - Coordinated startup via start_all() - Access containers by name via contains() and names() - Automatic cleanup on drop with panic handling - Builder pattern for configuration API: - ContainerGuardSet::new() returns builder - Builder.add(template) adds containers - Builder.with_network() sets shared network - Builder.keep_on_panic() preserves containers on test failure - Builder.wait_for_ready() controls readiness checks - Builder.start_all() starts containers and returns guard set - GuardSet.contains(name) checks for container - GuardSet.names() iterates container names - GuardSet.network() returns shared network name Closes #220
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements Issue #220 - ContainerGuardSet for managing multiple containers as a group with coordinated lifecycle.
Features
start_all()contains()andnames()keep_on_panic)API
Implementation Details
Box<dyn PendingEntryTrait>) for type erasureTests
Added 6 new integration tests:
test_container_guard_set_basic- two container lifecycletest_container_guard_set_with_shared_network- network sharingtest_container_guard_set_empty- edge case handlingtest_container_guard_set_single_container- single container casetest_container_guard_set_network_no_auto_remove- network persistencetest_container_guard_set_wait_for_ready_disabled- readiness configCloses #220