Skip to content

Commit

Permalink
add integration tests for LND lsp CLN client
Browse files Browse the repository at this point in the history
  • Loading branch information
JssDWt committed Oct 17, 2023
1 parent 4640507 commit 9f66f5b
Show file tree
Hide file tree
Showing 8 changed files with 32 additions and 9 deletions.
1 change: 1 addition & 0 deletions .github/actions/setup-clightning/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ runs:
- name: Install dependencies
if: steps.cache-core-lightning.outputs.cache-hit != 'true'
run: |
sudo apt-get update -y
sudo apt-get install -y autoconf automake build-essential git libtool libgmp-dev libsqlite3-dev python3 python3-pip net-tools zlib1g-dev libsodium-dev gettext valgrind libpq-dev shellcheck cppcheck libsecp256k1-dev jq
sudo apt-get remove -y protobuf-compiler
curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.12.0/protoc-3.12.0-linux-x86_64.zip
Expand Down
12 changes: 8 additions & 4 deletions .github/workflows/integration_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ jobs:
- setup-lnd-lsp
- setup-cln
- build-lspd
name: test ${{ matrix.implementation }} ${{ matrix.test }}
name: test ${{ matrix.lsp }}-lsp ${{ matrix.client }}-client ${{ matrix.test }}
strategy:
max-parallel: 6
matrix:
Expand All @@ -103,7 +103,11 @@ jobs:
testOfflineNotificationRegularForward,
testOfflineNotificationZeroConfChannel,
]
implementation: [
lsp: [
LND,
CLN
]
client: [
LND,
CLN
]
Expand All @@ -114,8 +118,8 @@ jobs:
- name: Run and Process Test State
uses: ./.github/actions/test-lspd
with:
TESTRE: "TestLspd/${{ matrix.implementation }}-lspd:_${{ matrix.test }}"
artifact-name: TestLspd-${{ matrix.implementation }}-lspd_${{ matrix.test }}
TESTRE: "TestLspd/${{ matrix.lsp }}-lsp-${{ matrix.client}}-client:_${{ matrix.test }}"
artifact-name: TestLspd-${{ matrix.lsp }}-lsp-${{ matrix.client}}-client_${{ matrix.test }}
bitcoin-version: ${{ env.BITCOIN_VERSION }}
LSP_REF: ${{ env.LSP_REF }}
CLIENT_REF: ${{ env.CLIENT_REF }}
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ go 1.19

require (
github.com/aws/aws-sdk-go v1.34.0
github.com/breez/lntest v0.0.26
github.com/breez/lntest v0.0.28
github.com/btcsuite/btcd v0.23.5-0.20230228185050-38331963bddd
github.com/btcsuite/btcd/btcec/v2 v2.3.2
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2
Expand Down
3 changes: 3 additions & 0 deletions itest/cln_breez_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ def on_openchannel(openchannel, plugin, **kwargs):
plugin.log(repr(openchannel))
mindepth = int(0)
if openchannel['funding_msat'] == 200000000:
return {'result': 'continue'}
plugin.log(f"This peer is in the zeroconf allowlist, setting mindepth={mindepth}")
return {'result': 'continue', 'mindepth': mindepth}
Expand Down
4 changes: 4 additions & 0 deletions itest/lspd_node.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,10 @@ func newLspd(h *lntest.TestHarness, mem *mempoolApi, name string, nodeConfig *co
if nodeConfig.MinConfs != nil {
conf.MinConfs = nodeConfig.MinConfs
}

if nodeConfig.LegacyOnionTokens != nil {
conf.LegacyOnionTokens = nodeConfig.LegacyOnionTokens
}
}

log.Printf("%s: node config: %+v", name, conf)
Expand Down
15 changes: 13 additions & 2 deletions itest/lspd_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,19 @@ var defaultTimeout time.Duration = time.Second * 120

func TestLspd(t *testing.T) {
testCases := allTestCases
runTests(t, testCases, "LND-lspd", lndLspFunc, lndClientFunc)
runTests(t, testCases, "CLN-lspd", clnLspFunc, clnClientFunc)
runTests(t, testCases, "LND-lsp-CLN-client", lndLspFunc, clnClientFunc)
runTests(t, testCases, "LND-lsp-LND-client", legacyOnionLndLspFunc, lndClientFunc)
runTests(t, testCases, "CLN-lsp-CLN-client", clnLspFunc, clnClientFunc)
}

func legacyOnionLndLspFunc(h *lntest.TestHarness, m *lntest.Miner, mem *mempoolApi, c *config.NodeConfig) LspNode {
cfg := c
if cfg == nil {
cfg = &config.NodeConfig{}
}

cfg.LegacyOnionTokens = []string{"hello"}
return lndLspFunc(h, m, mem, cfg)
}

func lndLspFunc(h *lntest.TestHarness, m *lntest.Miner, mem *mempoolApi, c *config.NodeConfig) LspNode {
Expand Down
2 changes: 1 addition & 1 deletion itest/notification_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ func testOfflineNotificationRegularForward(p *testParams) {
log.Print("Opening channel between lsp and Breez client")
channelLB := p.lsp.LightningNode().OpenChannel(p.BreezClient().Node(), &lntest.OpenChannelOptions{
AmountSat: 200000,
IsPublic: false,
IsPublic: true,
})

log.Print("Waiting for channel between Alice and the lsp to be ready.")
Expand Down
2 changes: 1 addition & 1 deletion itest/regular_forward_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ func testRegularForward(p *testParams) {
log.Print("Opening channel between lsp and Breez client")
channelLB := p.lsp.LightningNode().OpenChannel(p.BreezClient().Node(), &lntest.OpenChannelOptions{
AmountSat: 200000,
IsPublic: false,
IsPublic: true,
})

log.Print("Waiting for channel between Alice and the lsp to be ready.")
Expand Down

0 comments on commit 9f66f5b

Please sign in to comment.