mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-02-22 22:25:24 +01:00
68 lines
1.9 KiB
Go
68 lines
1.9 KiB
Go
|
package migration29
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/lightningnetwork/lnd/channeldb/migtest"
|
||
|
"github.com/lightningnetwork/lnd/kvdb"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
hexStr = migtest.Hex
|
||
|
|
||
|
outpoint1 = hexStr("81b637d8fcd2c6da6859e6963113a1170de793e4b725b84d1e0b4cf99ec58ce90fb463ad")
|
||
|
outpoint2 = hexStr("81b637d8fcd2c6da6859e6963113a1170de793e4b725b84d1e0b4cf99ec58ce952d6c6c7")
|
||
|
|
||
|
chanID1 = hexStr("81b637d8fcd2c6da6859e6963113a1170de793e4b725b84d1e0b4cf99ec5ef44")
|
||
|
chanID2 = hexStr("81b637d8fcd2c6da6859e6963113a1170de793e4b725b84d1e0b4cf99ec54a2e")
|
||
|
|
||
|
// These tlv streams are used to populate the outpoint bucket at the
|
||
|
// start of the test.
|
||
|
tlvOutpointOpen = hexStr("000100")
|
||
|
tlvOutpointClosed = hexStr("000101")
|
||
|
|
||
|
// outpointData is used to populate the outpoint bucket.
|
||
|
outpointData = map[string]interface{}{
|
||
|
outpoint1: tlvOutpointOpen,
|
||
|
outpoint2: tlvOutpointClosed,
|
||
|
}
|
||
|
|
||
|
// chanIDBefore is the ChannelID bucket before the migration.
|
||
|
chanIDBefore = map[string]interface{}{}
|
||
|
|
||
|
// post is the expected data in the ChannelID bucket after the
|
||
|
// migration.
|
||
|
post = map[string]interface{}{
|
||
|
chanID1: "",
|
||
|
chanID2: "",
|
||
|
}
|
||
|
)
|
||
|
|
||
|
// TestMigrateChannelIDIndex asserts that the ChannelID index is properly
|
||
|
// populated.
|
||
|
func TestMigrateChannelIDIndex(t *testing.T) {
|
||
|
// Prime the database with the populated outpoint bucket. We create the
|
||
|
// ChannelID bucket since the prior migration creates it anyways.
|
||
|
before := func(tx kvdb.RwTx) error {
|
||
|
err := migtest.RestoreDB(tx, outpointBucket, outpointData)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return migtest.RestoreDB(tx, chanIDBucket, chanIDBefore)
|
||
|
}
|
||
|
|
||
|
// After the migration, ensure that the ChannelID bucket is properly
|
||
|
// populated.
|
||
|
after := func(tx kvdb.RwTx) error {
|
||
|
err := migtest.VerifyDB(tx, outpointBucket, outpointData)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return migtest.VerifyDB(tx, chanIDBucket, post)
|
||
|
}
|
||
|
|
||
|
migtest.ApplyMigration(t, before, after, MigrateChanID, false)
|
||
|
}
|