mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-03-04 09:48:19 +01:00
itest: ensure that native SQL LND won't start if it has any KV invoices
This commit is contained in:
parent
2d3d11487c
commit
2fbffab421
3 changed files with 45 additions and 2 deletions
|
@ -578,4 +578,8 @@ var allTestCases = []*lntest.TestCase{
|
||||||
Name: "open channel locked balance",
|
Name: "open channel locked balance",
|
||||||
TestFunc: testOpenChannelLockedBalance,
|
TestFunc: testOpenChannelLockedBalance,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Name: "nativesql no migration",
|
||||||
|
TestFunc: testNativeSQLNoMigration,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package itest
|
package itest
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
@ -1242,3 +1243,41 @@ func testSignVerifyMessageWithAddr(ht *lntest.HarnessTest) {
|
||||||
|
|
||||||
require.False(ht, respValid.Valid, "external signature did validate")
|
require.False(ht, respValid.Valid, "external signature did validate")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// testNativeSQLNoMigration tests that nodes that have invoices would not start
|
||||||
|
// up with native SQL enabled, as we don't currently support migration of KV
|
||||||
|
// invoices to the new SQL schema.
|
||||||
|
func testNativeSQLNoMigration(ht *lntest.HarnessTest) {
|
||||||
|
alice := ht.Alice
|
||||||
|
|
||||||
|
// Make sure we run the test with SQLite or Postgres.
|
||||||
|
if alice.Cfg.DBBackend != node.BackendSqlite &&
|
||||||
|
alice.Cfg.DBBackend != node.BackendPostgres {
|
||||||
|
|
||||||
|
ht.Skip("node not running with SQLite or Postgres")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Skip the test if the node is already running with native SQL.
|
||||||
|
if alice.Cfg.NativeSQL {
|
||||||
|
ht.Skip("node already running with native SQL")
|
||||||
|
}
|
||||||
|
|
||||||
|
alice.RPC.AddInvoice(&lnrpc.Invoice{
|
||||||
|
Value: 10_000,
|
||||||
|
})
|
||||||
|
|
||||||
|
alice.SetExtraArgs([]string{"--db.use-native-sql"})
|
||||||
|
|
||||||
|
// Restart the node manually as we're really only interested in the
|
||||||
|
// startup error.
|
||||||
|
require.NoError(ht, alice.Stop())
|
||||||
|
require.NoError(ht, alice.StartLndCmd(context.Background()))
|
||||||
|
|
||||||
|
// We expect the node to fail to start up with native SQL enabled, as we
|
||||||
|
// have an invoice in the KV store.
|
||||||
|
require.Error(ht, alice.WaitForProcessExit())
|
||||||
|
|
||||||
|
// Reset the extra args and restart alice.
|
||||||
|
alice.SetExtraArgs(nil)
|
||||||
|
require.NoError(ht, alice.Start(ht.Context()))
|
||||||
|
}
|
||||||
|
|
|
@ -629,7 +629,7 @@ func (hn *HarnessNode) cleanup() error {
|
||||||
|
|
||||||
// waitForProcessExit Launch a new goroutine which that bubbles up any
|
// waitForProcessExit Launch a new goroutine which that bubbles up any
|
||||||
// potential fatal process errors to the goroutine running the tests.
|
// potential fatal process errors to the goroutine running the tests.
|
||||||
func (hn *HarnessNode) waitForProcessExit() error {
|
func (hn *HarnessNode) WaitForProcessExit() error {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
errChan := make(chan error, 1)
|
errChan := make(chan error, 1)
|
||||||
|
@ -752,7 +752,7 @@ func (hn *HarnessNode) Stop() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wait for lnd process to exit in the end.
|
// Wait for lnd process to exit in the end.
|
||||||
return hn.waitForProcessExit()
|
return hn.WaitForProcessExit()
|
||||||
}
|
}
|
||||||
|
|
||||||
// CloseConn closes the grpc connection.
|
// CloseConn closes the grpc connection.
|
||||||
|
|
Loading…
Add table
Reference in a new issue