e2e: add RFC-18 flex-algo end-to-end tests (RFC-18, PR 4/4)#3477
Draft
ben-malbeclabs wants to merge 3 commits intobc/rfc18-controllerfrom
Draft
e2e: add RFC-18 flex-algo end-to-end tests (RFC-18, PR 4/4)#3477ben-malbeclabs wants to merge 3 commits intobc/rfc18-controllerfrom
ben-malbeclabs wants to merge 3 commits intobc/rfc18-controllerfrom
Conversation
This was referenced Apr 7, 2026
8672b96 to
d65944a
Compare
16fe008 to
267ba06
Compare
d65944a to
5e945fe
Compare
04b42de to
25fe2c9
Compare
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 of Changes
TestE2E_FlexAlgo_TopologyLifecycle— create a topology, tag a link, attempt delete (expect error), clear the topology, delete successfullyTestE2E_FlexAlgo_TopologyFilter— verifydoublezero link list --topology <name>returns correct links before and after tagging; includes--topology default(untagged) and named topology casesTestE2E_FlexAlgo_UnicastDrained— set and clear--unicast-drainedon a link; poll the Go SDK to confirmlink_flagsbit 0 transitions correctlyTestE2E_FlexAlgo_TenantIncludeTopologies— set and clear--include-topologieson a tenant; poll SDK for field changes (lightweight devnet, activator disabled)TestE2E_FlexAlgo_Migrate— clear topologies from a link, rundoublezero-admin migrate flex-algo --dry-run(verify "DRY RUN" output and count), run live migrate, poll SDK to confirm link is re-taggedTestE2E_FlexAlgo_Controller— exercises controller config generation end-to-end with a live cEOS deviceTestE2E_LinkOnchainAllocationto create UNICAST-DEFAULT topology before link activation (now required by the program)--features-configplumbing to the devnet controller container anddevnet.WithFeaturesConfighelperDiff Breakdown
Entirely test additions plus the devnet infrastructure to support them.
Key files (click to expand)
e2e/topology_filter_test.go— 368 lines; validates--topologyfilter across create/tag/untag cyclese2e/topology_lifecycle_test.go— 222 lines; verifies safe-delete enforcement (can't delete while links reference topology)e2e/flex_algo_test.go— 231 lines; controller config generation test against live cEOSe2e/topology_migrate_test.go— 191 lines; dry-run and live migrate with SDK pollinge2e/tenant_topology_test.go— 139 lines; lightweight devnet for tenant field changese2e/internal/devnet/controller.go—WithFeaturesConfigdevnet option for passingfeatures.yamlto the controller containerTesting Verification
TestE2E_LinkOnchainAllocationupdated to create UNICAST-DEFAULT first — verifies the existing link allocation flow still works after the activation constraint was addedlink_flags,link_topologies, andinclude_topologies