Skip to content

Enable port-sharded concurrent NP and LR tests - #369

Merged
huangminghuang merged 23 commits into
masterfrom
codex/port-sharded-np-lr-tests
Jun 18, 2026
Merged

Enable port-sharded concurrent NP and LR tests#369
huangminghuang merged 23 commits into
masterfrom
codex/port-sharded-np-lr-tests

Conversation

@huangminghuang

@huangminghuang huangminghuang commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Summary

Purpose: allow macOS CI to run the full integration test suite in preparation for PR #356, so the PR #356 work can be validated against the complete macOS test surface instead of the reduced CI path.

  • Add shared CTest port-shard allocation for NP and LR tests using compact, non-overlapping 256-port shards.
  • Make Python test harness, SHiP clients, performance harness, HTTP plugin tests, and hardcoded test endpoints shard-aware.
  • Keep original NP/LR labels while allowing those tests to run concurrently through sharded port assignments.
  • Run CI as per-platform build -> tests -> package matrix jobs so each platform starts testing as soon as its own build finishes.
  • Remove the obsolete build_base.yaml reusable workflow now that the active CI no longer round-trips build artifacts between jobs.
  • Cache CTest cost data per platform so ctest -j can schedule previously slower tests earlier across CI runs.
  • Document the port assignment scheme and collision-avoidance rules in the port-sharding design doc.

Local Validation

  • python3 -m py_compile tests/TestHarness/testUtils.py tests/TestHarness/Cluster.py tests/TestHarness/WalletMgr.py tests/TestHarness/launcher.py
  • python3 -m py_compile tests/TestHarness/WalletMgr.py tests/PerformanceHarness/performance_test_basic.py tests/ship_test.py tests/ship_reqs_across_svnn_test.py
  • ninja -C build/codex-system-contracts -j6 ship_client ship_streamer
  • ctest --test-dir build/codex-system-contracts -j25 -L 'nonparallelizable_tests|long_running_tests' --output-on-failure --timeout 1800
    • 100% tests passed, 0 tests failed out of 105
  • ctest --test-dir build/codex-system-contracts -R '^p2p_multiple_listen_test$' --output-on-failure --timeout 1000
    • passed
  • Workflow YAML validation:
    • YAML parse passed
    • actionlint passed
    • git diff --check passed
  • CTest cost-cache workflow update:
    • PyYAML parse passed
    • git diff --check passed
  • Obsolete build-base workflow removal:
    • Active workflow YAML parse passed
    • git diff --check passed

@huangminghuang
huangminghuang force-pushed the codex/port-sharded-np-lr-tests branch 2 times, most recently from cbfc50d to c26e3fa Compare June 5, 2026 21:57
@huangminghuang
huangminghuang force-pushed the codex/port-sharded-np-lr-tests branch from c26e3fa to 144299f Compare June 5, 2026 21:59
@huangminghuang
huangminghuang requested a review from heifner June 5, 2026 23:48
@huangminghuang
huangminghuang marked this pull request as ready for review June 5, 2026 23:48
@huangminghuang
huangminghuang changed the base branch from master to codex/fix-trx-listener-connection-type June 5, 2026 23:54
@huangminghuang
huangminghuang changed the base branch from codex/fix-trx-listener-connection-type to master June 8, 2026 13:21
huangminghuang and others added 8 commits June 8, 2026 15:23
…into codex/resolve-pr-381-conflict

# Conflicts:
#	cmake/test-helpers.cmake
#	docs/port-sharding-design.md
…er-detect

Document opt-in test port avoidance
Resolves conflict in testUtils.py by keeping both the port-sharding
infrastructure (getPort/getTestPortOffset) from this branch and the
SYS VM OC helper methods (nodeopSupportsOption, etc.) from master.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…np-lr-tests

# Conflicts:
#	tests/CMakeLists.txt
#	tests/cli_test.py
#	tests/resource_monitor_plugin_test.py
…np-lr-tests

# Conflicts:
#	tests/CMakeLists.txt
@huangminghuang
huangminghuang merged commit e79094d into master Jun 18, 2026
10 checks passed
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.

2 participants