From d57c6fab47d186f0a687f352364ce761d1feb81d Mon Sep 17 00:00:00 2001 From: Carla Kirk-Cohen Date: Fri, 15 Mar 2024 11:53:52 -0400 Subject: [PATCH] itest: add coverage for disabling blinded forwards --- itest/list_on_test.go | 4 ++++ itest/lnd_route_blinding_test.go | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/itest/list_on_test.go b/itest/list_on_test.go index 18285c85f..796a96805 100644 --- a/itest/list_on_test.go +++ b/itest/list_on_test.go @@ -578,6 +578,10 @@ var allTestCases = []*lntest.TestCase{ Name: "introduction blinded error", TestFunc: testIntroductionNodeError, }, + { + Name: "disable introduction node", + TestFunc: testDisableIntroductionNode, + }, { Name: "removetx", TestFunc: testRemoveTx, diff --git a/itest/lnd_route_blinding_test.go b/itest/lnd_route_blinding_test.go index 7cedbf3f0..4cbd75ff6 100644 --- a/itest/lnd_route_blinding_test.go +++ b/itest/lnd_route_blinding_test.go @@ -925,3 +925,23 @@ func testIntroductionNodeError(ht *lntest.HarnessTest) { // Send the payment, but do not expect it to reach Carol at all. sendAndResumeBlindedPayment(ctx, ht, testCase, route, false) } + +// testDisableIntroductionNode tests disabling of blinded forwards for the +// introduction node. +func testDisableIntroductionNode(ht *lntest.HarnessTest) { + // Disable route blinding for Bob, then re-connect to Alice. + ht.RestartNodeWithExtraArgs(ht.Bob, []string{ + "--protocol.no-route-blinding", + }) + ht.EnsureConnected(ht.Alice, ht.Bob) + + ctx, testCase := newBlindedForwardTest(ht) + defer testCase.cleanup() + route := testCase.setup(ctx) + // We always expect failures to look like they originated at Bob + // because blinded errors are converted. However, our tests intercepts + // all of Carol's forwards and we're not providing it any interceptor + // instructions. This means that the test will hang/timeout at Carol + // if Bob _doesn't_ fail the HTLC back as expected. + sendAndResumeBlindedPayment(ctx, ht, testCase, route, false) +}