Skip to content

[DX-3444] migrate vrfv2 smoke tests to devenv#21618

Merged
Tofel merged 11 commits intodevelopfrom
worktree-dx-3444-migrate-vrfv2-smoke-tests
Mar 24, 2026
Merged

[DX-3444] migrate vrfv2 smoke tests to devenv#21618
Tofel merged 11 commits intodevelopfrom
worktree-dx-3444-migrate-vrfv2-smoke-tests

Conversation

@Tofel
Copy link
Copy Markdown
Contributor

@Tofel Tofel commented Mar 20, 2026

Migrate VRFv2 smoke to devenv
VRFv2 smoke is moved from integration-tests/smoke/vrfv2_test.go to devenv/products/vrfv2 + devenv/tests/vrfv2 (env: env-vrfv2.toml, BHS: env-vrfv2-bhs.toml), with devenv/contracts/vrf_v2.go helpers and product name vrfv2.

Contract wrappers that were copied over are test-only and they allows us treat different contract versions polymorphically. Since these wrappers exist only in integration-tests we cannot substitute them with imports from chainlink-evm.

CI

  • dropped vrfv2 tests from e2e-tests.yml and client-compatibility-tests;
  • removed on-demand-vrfv2-smoke-tests.yml; added four devenv-nightly rows (basic, two_keys, bhs, batch).

Out of scope
TestVRFOwner, TestVRFv2NodeReorg (not migrated, removed).

Verification

image

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 20, 2026

✅ No conflicts with other open PRs targeting develop

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Risk Rating: MEDIUM

This PR migrates the classic VRFv2 (Coordinator v2) smoke coverage from the legacy integration-tests/smoke harness into the devenv product + test structure, and rewires CI to run the new devenv-based VRFv2 suites (basic, multiple keys, BHS, batch) while removing the old integration-test entrypoints.

Changes:

  • Moved VRFv2 smoke scenarios into devenv/tests/vrfv2 and removed the legacy integration-tests/smoke/vrfv2_test.go.
  • Added a new devenv/products/vrfv2 product (config, node/job setup, TOMLs) plus VRFv2 contract helpers in devenv/contracts/vrf_v2.go.
  • Updated CI/workflows to drop old VRFv2 integration-test jobs and add devenv-nightly VRFv2 matrix rows.

Reviewed changes

Copilot reviewed 27 out of 27 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
integration-tests/smoke/vrfv2_test.go Removes legacy VRFv2 smoke tests (migration target).
integration-tests/smoke/README.md Documents VRFv2 smoke now living under devenv/tests/vrfv2.
integration-tests/go.mod Adjusts go-cmp dependency classification after removing legacy tests.
devenv/tests/vrfv2/smoke_test.go New devenv-based VRFv2 basic smoke scenarios.
devenv/tests/vrfv2/multiple_keys_test.go New devenv test validating fulfillment sender rotation across TX keys.
devenv/tests/vrfv2/helpers.go Shared helpers for VRFv2 devenv tests (deploy/fund/request/wait utilities).
devenv/tests/vrfv2/bhs_test.go New devenv test coverage for BHS behavior.
devenv/tests/vrfv2/batch_test.go New devenv test coverage for batch fulfillment enabled/disabled.
devenv/tests/logpoller/logpoller_test.go Moves logpoller config types out of the test file.
devenv/tests/logpoller/config.go New extracted logpoller config/validation types.
devenv/products/vrfv2/basic.toml Product config for basic VRFv2 smoke devenv run.
devenv/products/vrfv2/two_keys.toml Product config enabling multiple TX keys for rotation test.
devenv/products/vrfv2/bhs.toml Product config enabling BHS job topology.
devenv/products/vrfv2/batch.toml Product config for batch fulfillment test parameters.
devenv/products/vrfv2/job_spec.go VRFv2 job + pipeline TOML builders for devenv.
devenv/products/vrfv2/job_spec_bhs.go BHS job TOML builder for devenv VRFv2.
devenv/products/vrfv2/core.go Product orchestration: keys/secrets, contract deploys, job creation, funding.
devenv/products/vrfv2/configuration.go VRFv2 product config schema + load/store.
devenv/go.mod Adds direct deps needed by new devenv VRFv2 code/tests.
devenv/environment.go Registers new vrfv2 product type in devenv product factory.
devenv/env-vrfv2.toml New base devenv environment definition for VRFv2.
devenv/env-vrfv2-bhs.toml New devenv environment definition with 2 nodes for BHS topology.
devenv/contracts/vrf_v2.go New VRFv2 contract wrappers + log parsing/wait helpers used by tests.
.github/workflows/on-demand-vrfv2-smoke-tests.yml Removes legacy on-demand workflow for integration-test VRFv2 smoke.
.github/workflows/devenv-nightly.yml Adds 4 nightly rows to run the new devenv VRFv2 suites.
.github/workflows/client-compatibility-tests.yml Drops legacy VRFv2 integration-test compatibility rows.
.github/e2e-tests.yml Removes legacy VRFv2 integration-test entries from the e2e matrix.
.github/E2E_TESTS_ON_GITHUB_CI.md Updates on-demand workflow documentation list.

Areas requiring scrupulous human review:

  • devenv/contracts/vrf_v2.go: event/log parsing & “wait then filter” behavior (panics/false positives can make smoke flaky and hard to debug).
  • devenv/products/vrfv2/core.go: key generation/import + funding + job creation ordering (sensitive to CTF/CL node startup semantics).
  • CI rewiring in .github/workflows/devenv-nightly.yml and .github/e2e-tests.yml.

Suggested reviewers (per CODEOWNERS):

  • @smartcontractkit/devex-tooling (all devenv/ changes; integration-tests harness changes)
  • @smartcontractkit/devex-cicd (workflow/matrix changes under .github/)
  • @smartcontractkit/core (cross-cutting CI + module changes)

Comment thread devenv/contracts/vrf_v2.go
Comment thread devenv/contracts/vrf_v2.go Outdated
Comment thread devenv/contracts/vrf_v2.go
Comment thread devenv/tests/vrfv2/smoke_test.go
Comment thread devenv/tests/vrfv2/helpers.go
@trunk-io
Copy link
Copy Markdown

trunk-io Bot commented Mar 20, 2026

Static BadgeStatic BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

jmank88
jmank88 previously approved these changes Mar 23, 2026
@pavel-raykov
Copy link
Copy Markdown
Collaborator

Migrate VRFv2 smoke to devenv VRFv2 smoke is moved from integration-tests/smoke/vrfv2_test.go to devenv/products/vrfv2 + devenv/tests/vrfv2 (env: env-vrfv2.toml, BHS: env-vrfv2-bhs.toml), with devenv/contracts/vrf_v2.go helpers and product name vrfv2.

CI

  • dropped vrfv2 tests from e2e-tests.yml and client-compatibility-tests;
  • removed on-demand-vrfv2-smoke-tests.yml; added four devenv-nightly rows (basic, two_keys, bhs, batch).

Out of scope TestVRFOwner, TestVRFv2NodeReorg (not migrated, removed).

Verification

image

Lines changed: 2894 additions & 1838 deletions
Could you please say why 1000 new lines are added to this PR given that it just migrates the tests?

@Tofel
Copy link
Copy Markdown
Contributor Author

Tofel commented Mar 23, 2026

Lines changed: 2894 additions & 1838 deletions Could you please say why 1000 new lines are added to this PR given that it just migrates the tests?

@pavel-raykov we had to create contract wrappers and helpers in devenv/* but we haven't removed the original ones. Only the tests themselves were removed.

anirudhwarrier
anirudhwarrier previously approved these changes Mar 23, 2026
anirudhwarrier
anirudhwarrier previously approved these changes Mar 23, 2026
@pavel-raykov
Copy link
Copy Markdown
Collaborator

Lines changed: 2894 additions & 1838 deletions Could you please say why 1000 new lines are added to this PR given that it just migrates the tests?

@pavel-raykov we had to create contract wrappers and helpers in devenv/* but we haven't removed the original ones. Only the tests themselves were removed.

sorry, I am not sure I fully understand - do you make copies from https://github.com/smartcontractkit/chainlink/tree/2e14d51d4e2efef540bee4ac22d798ea647941f0/integration-tests/contracts because you cannot import them?

pavel-raykov
pavel-raykov previously approved these changes Mar 23, 2026
kalverra
kalverra previously approved these changes Mar 23, 2026
@cl-sonarqube-production
Copy link
Copy Markdown

Copy link
Copy Markdown
Contributor

@sebawo sebawo left a comment

Choose a reason for hiding this comment

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

LGTM

@Tofel Tofel closed this Mar 24, 2026
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.

9 participants