Skip to main content

run-e2e-tests

Run and debug E2E tests for the Stellar CCIP integration. Use when asked to run E2E tests, start/stop the devenv, rebuild Docker images, check container logs, or debug E2E test failures. Covers the full lifecycle: tearing down old containers, rebuilding images, starting the devenv, running tests, and inspecting logs.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
smartcontractkit/chainlink-stellar
آخر نشاط في المصدر
٣١ مارس ٢٠٢٦ في ١٢:٢٤
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٠
التفرعات
٢

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
run-e2e-tests
description
Run and debug E2E tests for the Stellar CCIP integration. Use when asked to run E2E tests, start/stop the devenv, rebuild Docker images, check container logs, or debug E2E test failures. Covers the full lifecycle: tearing down old containers, rebuilding images, starting the devenv, running tests, and inspecting logs.
# Run E2E Tests All commands run from the `chainlink-stellar` repo root. ## Full Workflow ``` make down # 1. Stop existing containers make docker-executor # 2. Rebuild executor image (if needed) make docker-verifier # 3. Rebuild verifier image (if needed) make up # 4. Start devenv (~5+ minutes) make test-e2e # 5. Run E2E tests ``` ### Step Details **Step 1 — `make down`**: Always run first to ensure a clean slate. Tears down all containers from prior runs. **Steps 2 & 3 — Image Rebuilds**: Only required when source code changes affect the built images. See "When to Rebuild Images" below. **Step 4 — `make up`**: Starts the full devenv topology defined in `tests/env/env-stellar-evm.toml`. This takes **5+ minutes** to become fully ready. It launches blockchains, verifiers, executors, aggregators, and an indexer. Wait for it to complete before proceeding — it writes `tests/env/env-stellar-evm-out.toml` which the tests read. **Step 5 — `make test-e2e`**: Runs `go test -v -timeout 15m ./tests/e2e/...`. Run individual tests with: ```bash go test -v -timeout 10m ./tests/e2e/... -run TestEVMToStellarExecution go test -v -timeout 10m ./tests/e2e/... -run TestStellarToEVMExecution ``` ### Convenience Targets Rebuild images **and** restart the devenv in one step: ```bash make restart-executor # rebuild executor + down + up make restart-verifier # rebuild verifier + down + up make restart-verifier-executor # rebuild both + down + up ``` ## When to Rebuild Images Determine whether to rebuild based on what changed: | Changed files | Rebuild executor? | Rebuild verifier? | |---|---|---| | `cmd/executor/` or executor Go code | Yes | No | | `cmd/committee-verifier/` or verifier Go code | No | Yes | | `ccv/` (shared chain/devenv Go code) | Yes | Yes | | `bindings/` (contract bindings) | Yes | Yes | | `contracts/` (Soroban contracts only) | No | No | | `tests/` (test code only) | No | No | | `go.mod` / `go.sum` | Yes | Yes | - The executor image is `stellarexecutor:dev` (built by `Dockerfile.executor`, entry point `cmd/executor`). - The verifier image is `stellarcommittee-verifier:dev` (built by `Dockerfile.verifier`, entry point `cmd/committee-verifier`). - Both Dockerfiles drop local `chainlink-ccv` replace directives and resolve from the module proxy, so changes in `../chainlink-ccv` that are not yet published require publishing or updating the pseudo-version in `go.mod`. ## Container Topology The devenv spins up these containers (configured in `tests/env/env-stellar-evm.toml`): | Container | Image | Role | |---|---|---| | `blockchain-stellar` | `stellar/quickstart:testing` | Stellar localnet | | `blockchain-src` | `ghcr.io/foundry-rs/foundry` | EVM chain (Anvil, chain 1337) | | `blockchain-dst` | `ghcr.io/foundry-rs/foundry` | EVM chain (Anvil, chain 2337) | | `stellar-verifier-1` | `stellarcommittee-verifier:dev` | Stellar committee verifier | | `stellar-verifier-2` | `stellarcommittee-verifier:dev` | Stellar committee verifier | | `evm-verifier-1` | `verifier:dev` | EVM committee verifier | | `evm-verifier-2` | `verifier:dev` | EVM committee verifier | | `stellar-executor-1` | `stellarexecutor:dev` | Stellar executor | | `evm-executor-1` | `executor:dev` | EVM executor | | `default-aggregator` | `aggregator:dev` | Committee aggregator | | `indexer-1` | `indexer:dev` | Verification indexer | | Various `-db` containers | `postgres:16-alpine` | Databases for verifiers/indexer/aggregator | ## Checking Container Logs ### List running containers ```bash docker ps -a ``` ### Follow logs for a specific container ```bash docker logs -f stellar-verifier-1 docker logs -f stellar-executor-1 docker logs -f evm-executor-1 docker logs -f blockchain-stellar docker logs -f indexer-1 docker logs -f default-aggregator ``` ### Tail recent logs (last N lines) ```bash docker logs --tail 50 stellar-verifier-1 ``` ### Search logs for a keyword ```bash docker logs stellar-executor-1 2>&1 | grep -i "error" docker logs stellar-verifier-1 2>&1 | grep -i "messageID" ``` ### Dump all container logs (useful after failures) ```bash for c in $(docker ps -a --format '{{.Names}}'); do echo "=== $c ===" docker logs "$c" 2>&1 | tail -50 done ``` ### Key containers to check by failure type | Symptom | Check these containers first | |---|---| | Message not sent | `blockchain-stellar` or `blockchain-src` (source chain) | | Message sent but not verified | `stellar-verifier-1`, `stellar-verifier-2` (or `evm-verifier-*`) | | Verified but not aggregated | `default-aggregator` | | Aggregated but not indexed | `indexer-1` | | Indexed but not executed | `stellar-executor-1` or `evm-executor-1` (destination executor) | | Container crashing / restarting | The crashing container itself + its `-db` container | ## Debugging Tips - The devenv config output (`tests/env/env-stellar-evm-out.toml`) contains the resolved addresses, ports, and CLDF datastore that tests use. Inspect it to verify contracts were deployed. - Stellar verifiers have finality checking disabled for the Stellar chain selector (`17301180955411967724`) via `disable_finality_checkers` in the config. - The committee threshold is 2 for all chains, meaning both verifiers must agree. - The executor checks the aggregator/indexer for verified messages, so if execution stalls, check the upstream components (verifiers → aggregator → indexer) in order. - If `make up` fails partway, always `make down` before retrying.
عرض على GitHub