Skip to content

e2e: expand and parallelize backward compatibility test#2869

Open
snormore wants to merge 6 commits intomainfrom
snor/compat-test-cli-workflows
Open

e2e: expand and parallelize backward compatibility test#2869
snormore wants to merge 6 commits intomainfrom
snor/compat-test-cli-workflows

Conversation

@snormore
Copy link
Contributor

@snormore snormore commented Feb 8, 2026

Summary of Changes

  • Add comprehensive CLI workflow coverage: user lifecycle (create, activate, update, ban, delete), DZX links (create, accept, update, delete), multicast subscriptions and allowlist operations, access-pass management, device/link health commands, get commands for all entity types, and full entity cleanup (exchange, contributor, location deletion)
  • Parallelize version subtests so all CLI versions run concurrently against a shared devnet stack instead of sequentially, significantly reducing total test runtime
  • Batch CLI version installations into a single docker exec call to eliminate repeated roundtrips and apt reinstalls
  • Add diagnostic output on write step failures (dumps onchain state for all entity types)
  • Track known incompatibilities for set-health commands (added in v0.8.6)

Testing Verification

  • Test passes for both testnet and mainnet-beta cloned environments
  • All write steps complete with proper cleanup in dependency order
  • Version-specific entity codes and IPs prevent conflicts during parallel execution

…y test

- Add user lifecycle: accesspass_set, user_create, user_wait_activated,
  user_update, user_delete, accesspass_close
- Add user ban workflow with request-ban and delete
- Add multicast subscription and allowlist operations
- Add DZX link lifecycle: create, accept, update, delete
- Add exchange_clear_devices step before device deletion
- Add device_wait_removed steps to ensure proper cleanup order
- Add get commands for all entity types
- Add health commands for devices and links
- Add set-health commands to knownIncompatibilities (added in v0.8.6)
- Fix diagnostic output to use fmt.Println to preserve newlines
@snormore snormore force-pushed the snor/compat-test-cli-workflows branch from d27c708 to 66e382b Compare February 8, 2026 17:14
@snormore snormore enabled auto-merge (squash) February 8, 2026 17:17
Run CLI version subtests in parallel against a shared devnet stack
instead of sequentially. Each version already creates entities with
version-specific codes and IPs, so they don't conflict.

Three shared-state steps (cloned entity updates, global config set) are
made version-specific to avoid Solana write-lock conflicts. CLI version
installation is batched into a single docker exec call to eliminate
repeated roundtrips and apt reinstalls.
@snormore snormore changed the title e2e: expand CLI workflow coverage in backward compatibility test e2e: expand and parallelize backward compatibility test Feb 8, 2026
// --- Phase 15: Delete operations ---
// Test delete instructions in reverse dependency order.
// The onchain program enforces referential integrity:
// - Users must be deleted before accesspasses can be closed
Copy link
Contributor

Choose a reason for hiding this comment

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

Is Greg's PR in? I think there is a change that will fix the deadlock situation we reached with multicast groups subs and user deletion

Copy link
Contributor

Choose a reason for hiding this comment

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

Looks like yes: #2830

Fix WAN vs DZX link description: WAN links connect devices owned by the
same contributor, DZX links are cross-contributor peering links.

Remove outdated note about banned multicast user deletion issue, which
was fixed in #2830.
Add known incompatibilities for:
- Multicast operations (< 0.8.1): depend on multicast_group_create which
  fails due to Borsh struct change, so all dependent ops fail with
  "MulticastGroup not found"
- global_config_set (< 0.8.7): SetGlobalConfig unconditionally requires
  resource extension accounts added in #2650 and #2849, even for the
  update path where they aren't used
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants