Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
dcd8218
step 1, remove option for non-LOOP mode
huangzhen1997 Apr 22, 2026
557abdf
do not use hard coded cmd
huangzhen1997 Apr 23, 2026
c6f0a3c
rm non-LOOPP solana e2e test
huangzhen1997 Apr 24, 2026
0bd92fd
update CI
huangzhen1997 Apr 24, 2026
2dc6c1b
add Solana loop for failing test
huangzhen1997 Apr 24, 2026
ca14ec0
refactor solana core test into integration with LOOP plugin
huangzhen1997 Apr 24, 2026
ac8c35e
refactor test
huangzhen1997 Apr 24, 2026
229e097
fix lint
huangzhen1997 Apr 24, 2026
9752a12
move refactor and remove solana from non-loop health report
huangzhen1997 Apr 24, 2026
fbbabe4
Merge branch 'develop' of github.com:smartcontractkit/chainlink into …
huangzhen1997 Apr 25, 2026
7a1973e
revert removal, only remove solana
huangzhen1997 Apr 25, 2026
6bbcac9
rm no plugin test
huangzhen1997 Apr 25, 2026
6dcbc46
update comment
huangzhen1997 Apr 25, 2026
2130f0d
test: align solana interoperator test with cosmos/starknet pattern
huangzhen1997 Apr 25, 2026
b220ea4
refactor solana relay config to use raw unwrapped
huangzhen1997 Apr 25, 2026
bbd0f3e
mod tidy
huangzhen1997 Apr 25, 2026
7ae63ea
fix test
huangzhen1997 Apr 26, 2026
d8987cc
use default cmd
huangzhen1997 Apr 26, 2026
08fec60
fix
huangzhen1997 Apr 26, 2026
6678156
fix test
huangzhen1997 Apr 26, 2026
bc5f211
add test env var back
huangzhen1997 Apr 26, 2026
df8c4a9
update yml again with plugin fix
huangzhen1997 Apr 26, 2026
215846f
delete solana config as raw config test is covered
huangzhen1997 Apr 27, 2026
fecf861
add missing fields back
huangzhen1997 Apr 27, 2026
7eda9ac
resolve conflicts
huangzhen1997 Apr 28, 2026
40d24ef
remove the old code added accidentally
huangzhen1997 Apr 28, 2026
8c8fca2
revert test modification
huangzhen1997 Apr 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 16 additions & 40 deletions .github/integration-in-memory-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,22 +54,6 @@ runner-test-matrix:
-- -v -run "Test_CCIPMessaging_EVM2EVM" -timeout 18m -count=1 -parallel=4 ./smoke/ccip
test_go_project_path: integration-tests

- id: smoke/ccip/ccip_messaging_test.go:Test_CCIPMessaging_EVM2Solana
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Remove the NON-LOOP in-process Solana e2e testcase. The LOOP supported is kept below.

path: integration-tests/smoke/ccip/ccip_messaging_test.go
test_env_type: in-memory
runs_on: ubuntu-latest
runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
triggers:
- PR Integration CCIP Tests
- Nightly Integration CCIP Tests
test_cmd: |
gotestsum \
--junitfile=/tmp/junit.xml \
--jsonfile=/tmp/gotest.log \
--format=github-actions \
-- -v -run "Test_CCIPMessaging_EVM2Solana" -timeout 18m -count=1 -parallel=4 ./smoke/ccip
test_go_project_path: integration-tests

- id: smoke/ccip/ccip_messaging_test.go:Test_CCIPMessaging_EVM2Solana_LOOPP
path: integration-tests/smoke/ccip/ccip_messaging_test.go
test_env_type: in-memory
Expand All @@ -86,24 +70,6 @@ runner-test-matrix:
-- -v -run "Test_CCIPMessaging_EVM2Solana" -timeout 18m -count=1 -parallel=4 ./smoke/ccip
test_go_project_path: integration-tests
install_plugins_public: true
test_env_vars:
CL_SOLANA_CMD: chainlink-solana

- id: smoke/ccip/ccip_messaging_test.go:Test_CCIPMessaging_Solana2EVM
path: integration-tests/smoke/ccip/ccip_messaging_test.go
test_env_type: in-memory
runs_on: ubuntu-latest
runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs
triggers:
- PR Integration CCIP Tests
- Nightly Integration CCIP Tests
test_cmd: |
gotestsum \
--junitfile=/tmp/junit.xml \
--jsonfile=/tmp/gotest.log \
--format=github-actions \
-- -v -run "Test_CCIPMessaging_Solana2EVM" -timeout 18m -count=1 -parallel=4 ./smoke/ccip
test_go_project_path: integration-tests

- id: smoke/ccip/ccip_messaging_test.go:Test_CCIPMessaging_Solana2EVM_LOOPP
path: integration-tests/smoke/ccip/ccip_messaging_test.go
Expand All @@ -121,8 +87,6 @@ runner-test-matrix:
-- -v -run "Test_CCIPMessaging_Solana2EVM" -timeout 18m -count=1 -parallel=4 ./smoke/ccip
test_go_project_path: integration-tests
install_plugins_public: true
test_env_vars:
CL_SOLANA_CMD: chainlink-solana
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

NewLOOPRelayer() now uses plugin default value


- id: smoke/ccip/ccip_messaging_test.go:Test_CCIPMessaging_Revert_EVM2Solana_LOOPP
path: integration-tests/smoke/ccip/ccip_messaging_test.go
Expand All @@ -140,8 +104,6 @@ runner-test-matrix:
-- -v -run "Test_CCIPMessaging_Revert_EVM2Solana" -timeout 18m -count=1 -parallel=4 ./smoke/ccip
test_go_project_path: integration-tests
install_plugins_public: true
test_env_vars:
CL_SOLANA_CMD: chainlink-solana

- id: smoke/ccip/ccip_messaging_test.go:Test_CCIPMessaging_MultiExecReports_EVM2Solana
path: integration-tests/smoke/ccip/ccip_messaging_test.go
Expand Down Expand Up @@ -399,6 +361,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run ".*" -timeout 16m -count=1 -parallel=2 smoke/ccip/ccip_token_transfer_test.go
test_go_project_path: integration-tests
install_plugins_public: true

- id: smoke/ccip/ccip_token_transfer_test.go:*_LOOPP
path: integration-tests/smoke/ccip/ccip_token_transfer_test.go
Expand All @@ -416,8 +379,6 @@ runner-test-matrix:
-- -v -run ".*" -timeout 16m -count=1 -parallel=2 smoke/ccip/ccip_token_transfer_test.go
test_go_project_path: integration-tests
install_plugins_public: true
test_env_vars:
CL_SOLANA_CMD: chainlink-solana

- id: smoke/ccip/ccip_cs_update_rmn_config_test.go:*
path: integration-tests/smoke/ccip/ccip_cs_update_rmn_config_test.go
Expand Down Expand Up @@ -449,6 +410,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run "^TestRMNCurse$" -timeout 20m -count=1 -parallel=4 smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
test_go_project_path: integration-tests
install_plugins_public: true
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is this really necessary? It's testing against EVM?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The testcases also includes Solana chain, as Solana chain is provided


- id: smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go:TestRMNCurseUncurseAptos
path: integration-tests/smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
Expand Down Expand Up @@ -482,6 +444,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run "^TestRMNCurseMCMS$" -timeout 20m -count=1 -parallel=4 smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
test_go_project_path: integration-tests
install_plugins_public: true

- id: smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go:TestRMNCurseBypass
path: integration-tests/smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
Expand All @@ -498,6 +461,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run "^TestRMNCurseBypass$" -timeout 20m -count=1 -parallel=4 smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
test_go_project_path: integration-tests
install_plugins_public: true

- id: smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go:TestRMNCurseIdempotent
path: integration-tests/smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
Expand All @@ -513,6 +477,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run "^TestRMNCurseIdempotent$" -timeout 20m -count=1 -parallel=4 smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
test_go_project_path: integration-tests
install_plugins_public: true
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same for all these other tests

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This uses Solana as well.


- id: smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go:TestRMNUncurseIdempotent
path: integration-tests/smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
Expand All @@ -528,6 +493,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run "^TestRMNUncurseIdempotent$" -timeout 20m -count=1 -parallel=4 smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
test_go_project_path: integration-tests
install_plugins_public: true

- id: smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go:TestRMNUncurse
path: integration-tests/smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
Expand All @@ -544,6 +510,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run "^TestRMNUncurse$" -timeout 20m -count=1 -parallel=4 smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
test_go_project_path: integration-tests
install_plugins_public: true

- id: smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go:TestRMNUncurseMCMS
path: integration-tests/smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
Expand All @@ -560,6 +527,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run "^TestRMNUncurseMCMS$" -timeout 20m -count=1 -parallel=4 smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
test_go_project_path: integration-tests
install_plugins_public: true

- id: smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go:TestRMNUncurseBypass
path: integration-tests/smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
Expand All @@ -576,6 +544,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run "^TestRMNUncurseBypass$" -timeout 20m -count=1 -parallel=4 smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
test_go_project_path: integration-tests
install_plugins_public: true

- id: smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go:TestRMNCurseConfigValidate
path: integration-tests/smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
Expand All @@ -592,6 +561,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run "^TestRMNCurseConfigValidate$" -timeout 20m -count=1 -parallel=2 smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
test_go_project_path: integration-tests
install_plugins_public: true

- id: smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go:TestRMNCurseNoConnectedLanes
path: integration-tests/smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
Expand All @@ -607,6 +577,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run "^TestRMNCurseNoConnectedLanes$" -timeout 20m -count=1 -parallel=1 smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
test_go_project_path: integration-tests
install_plugins_public: true

- id: smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go:TestRMNCurseOneConnectedLanes
path: integration-tests/smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
Expand All @@ -622,6 +593,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run "^TestRMNCurseOneConnectedLanes$" -timeout 20m -count=1 -parallel=1 smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
test_go_project_path: integration-tests
install_plugins_public: true

- id: smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go:TestRMNCurseOneConnectedLanesSolana
path: integration-tests/smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
Expand All @@ -637,6 +609,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run "^TestRMNCurseOneConnectedLanesSolana$" -timeout 20m -count=1 -parallel=1 smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
test_go_project_path: integration-tests
install_plugins_public: true

- id: smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go:TestRMNCurseOneConnectedLanesGlobalOnly
path: integration-tests/smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
Expand All @@ -652,6 +625,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run "^TestRMNCurseOneConnectedLanesGlobalOnly$" -timeout 20m -count=1 -parallel=1 smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
test_go_project_path: integration-tests
install_plugins_public: true

- id: smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go:TestRMNCurseOneConnectedLanesLaneOnlyOnSource
path: integration-tests/smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
Expand All @@ -667,6 +641,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run "^TestRMNCurseOneConnectedLanesLaneOnlyOnSource$" -timeout 20m -count=1 -parallel=1 smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
test_go_project_path: integration-tests
install_plugins_public: true

- id: smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go:TestRMNUncurseForceOption
path: integration-tests/smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
Expand All @@ -683,6 +658,7 @@ runner-test-matrix:
--format=github-actions \
-- -v -run "^TestRMNUncurseForceOption$" -timeout 20m -count=1 -parallel=4 smoke/ccip/ccip_cs_rmn_curse_uncurse_test.go
test_go_project_path: integration-tests
install_plugins_public: true

- id: smoke/ccip/ccip_disable_lane_test.go:*
path: integration-tests/smoke/ccip/ccip_disable_lane_test.go
Expand Down
4 changes: 1 addition & 3 deletions core/capabilities/ccip/ccipsolana/pluginconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ import (
"github.com/smartcontractkit/chainlink-common/pkg/logger"
"github.com/smartcontractkit/chainlink-common/pkg/types/ccip/consts"
"github.com/smartcontractkit/chainlink-common/pkg/types/ccipocr3"
"github.com/smartcontractkit/chainlink/v2/core/config/env"

ccipcommon "github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/common"
"github.com/smartcontractkit/chainlink/v2/core/capabilities/ccip/ocrimpls"
)
Expand All @@ -26,7 +24,7 @@ func InitializePluginConfig(lggr logger.Logger, extraDataCodec ccipocr3.ExtraDat
ChainRW: ChainRWProvider{},
ExtraDataCodec: ExtraDataDecoder{},
PriceOnlyCommitFn: consts.MethodCommitPriceOnly,
CCIPProviderSupported: env.SolanaPlugin.Cmd.Get() != "",
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

LOOP mode only, so CCIP provide always supported

CCIPProviderSupported: true,
}
}

Expand Down
37 changes: 37 additions & 0 deletions core/cmd/blocks_commands_integration_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
//go:build integration

package cmd_test
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Moved from core/cmd/blocks_commands_test.go


import (
"flag"
"testing"

"github.com/stretchr/testify/require"
"github.com/urfave/cli"

"github.com/smartcontractkit/chainlink/v2/core/services/chainlink"
)

func Test_ReplayFromBlock_Solana(t *testing.T) {
t.Parallel()

chain := chainlink.RawConfig{
"ChainID": "devnet",
"Enabled": true,
"Nodes": []map[string]any{{
"Name": "primary",
"URL": "http://solana.example",
}},
}
app := solanaStartNewApplication(t, chain)
client, _ := app.NewShellAndRenderer()

set := flag.NewFlagSet("test", 0)
flagSetApplyFromAction(client.ReplayFromBlock, set, "")

require.NoError(t, set.Set("block-number", "1"))
require.NoError(t, set.Set("chain-id", "devnet"))
require.NoError(t, set.Set("family", "solana"))
c := cli.NewContext(nil, set, nil)
require.NoError(t, client.ReplayFromBlock(c))
}
16 changes: 0 additions & 16 deletions core/cmd/blocks_commands_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (
"github.com/urfave/cli"

"github.com/smartcontractkit/chainlink-common/pkg/sqlutil"
"github.com/smartcontractkit/chainlink-solana/pkg/solana/config"
"github.com/smartcontractkit/chainlink/v2/core/services/chainlink"
)

Expand All @@ -19,13 +18,6 @@ func Test_ReplayFromBlock(t *testing.T) {
app := startNewApplicationV2(t, func(c *chainlink.Config, s *chainlink.Secrets) {
c.EVM[0].ChainID = (*sqlutil.Big)(big.NewInt(5))
c.EVM[0].Enabled = ptr(true)

solCfg := &config.TOMLConfig{
ChainID: ptr("devnet"),
Enabled: ptr(true),
}
solCfg.SetDefaults()
c.Solana = config.TOMLConfigs{solCfg}
})

client, _ := app.NewShellAndRenderer()
Expand Down Expand Up @@ -59,14 +51,6 @@ func Test_ReplayFromBlock(t *testing.T) {
c := cli.NewContext(nil, set, nil)
require.NoError(t, client.ReplayFromBlock(c))
})

t.Run("solana replay", func(t *testing.T) {
require.NoError(t, set.Set("block-number", "1"))
require.NoError(t, set.Set("chain-id", "devnet"))
require.NoError(t, set.Set("family", "solana"))
c := cli.NewContext(nil, set, nil)
require.NoError(t, client.ReplayFromBlock(c))
})
}

func Test_FindLCA(t *testing.T) {
Expand Down
24 changes: 24 additions & 0 deletions core/cmd/chains_commands_integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"github.com/smartcontractkit/chainlink/v2/core/cmd"
"github.com/smartcontractkit/chainlink/v2/core/internal/cltest"
"github.com/smartcontractkit/chainlink/v2/core/internal/testutils/cosmostest"
"github.com/smartcontractkit/chainlink/v2/core/internal/testutils/solanatest"
"github.com/smartcontractkit/chainlink/v2/core/services/chainlink"
)

Expand All @@ -35,3 +36,26 @@ func TestShell_IndexCosmosChains(t *testing.T) {
assert.Equal(t, chainID, c.ID)
assertTableRenders(t, r)
}

func TestShell_IndexSolanaChains(t *testing.T) {
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Moved from core/cmd/shell_remote_test.go

t.Parallel()

id := solanatest.RandomChainID()
chain := chainlink.RawConfig{
"ChainID": id,
"Enabled": true,
"Nodes": []map[string]any{{
"Name": "primary",
"URL": "http://solana.example",
}},
}
app := solanaStartNewApplication(t, chain)
client, r := app.NewShellAndRenderer()

require.NoError(t, cmd.NewChainClient(client, "solana").IndexChains(cltest.EmptyCLIContext()))
chains := *r.Renders[0].(*cmd.ChainPresenters)
require.Len(t, chains, 1)
c := chains[0]
assert.Equal(t, id, c.ID)
assertTableRenders(t, r)
}
22 changes: 0 additions & 22 deletions core/cmd/chains_commands_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,11 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"

solcfg "github.com/smartcontractkit/chainlink-solana/pkg/solana/config"

"github.com/smartcontractkit/chainlink-common/pkg/sqlutil"
client2 "github.com/smartcontractkit/chainlink-evm/pkg/client"
"github.com/smartcontractkit/chainlink/v2/core/cmd"
"github.com/smartcontractkit/chainlink/v2/core/internal/cltest"
"github.com/smartcontractkit/chainlink/v2/core/internal/testutils"
"github.com/smartcontractkit/chainlink/v2/core/internal/testutils/solanatest"
"github.com/smartcontractkit/chainlink/v2/core/services/chainlink"
)

Expand All @@ -39,22 +36,3 @@ func TestShell_IndexEVMChains(t *testing.T) {
assert.Equal(t, strconv.Itoa(client2.NullClientChainID), c.ID)
assertTableRenders(t, r)
}

func TestShell_IndexSolanaChains(t *testing.T) {
Copy link
Copy Markdown
Contributor Author

@huangzhen1997 huangzhen1997 Apr 24, 2026

Choose a reason for hiding this comment

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

Moved to a different file core/cmd/chains_commands_integration_test.go where we run it with //go:build integration to enable LOOP

t.Parallel()

id := solanatest.RandomChainID()
cfg := solcfg.TOMLConfig{
ChainID: &id,
Enabled: ptr(true),
}
app := solanaStartNewApplication(t, &cfg)
client, r := app.NewShellAndRenderer()

require.NoError(t, cmd.NewChainClient(client, "solana").IndexChains(cltest.EmptyCLIContext()))
chains := *r.Renders[0].(*cmd.ChainPresenters)
require.Len(t, chains, 1)
c := chains[0]
assert.Equal(t, id, c.ID)
assertTableRenders(t, r)
}
Loading
Loading