lntest: add SCB repeated restore test
This commit is contained in:
parent
4728ac844a
commit
570275435b
@ -14130,6 +14130,72 @@ func testChannelBackupRestore(net *lntest.NetworkHarness, t *harnessTest) {
|
|||||||
}, nil
|
}, nil
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Restore the backup from the on-disk file a second time to
|
||||||
|
// make sure imports can be canceled and later resumed.
|
||||||
|
{
|
||||||
|
name: "restore from backup file twice",
|
||||||
|
initiator: true,
|
||||||
|
private: false,
|
||||||
|
restoreMethod: func(oldNode *lntest.HarnessNode,
|
||||||
|
backupFilePath string,
|
||||||
|
mnemonic []string) (nodeRestorer, error) {
|
||||||
|
|
||||||
|
// Read the entire Multi backup stored within
|
||||||
|
// this node's chaannels.backup file.
|
||||||
|
multi, err := ioutil.ReadFile(backupFilePath)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now that we have Dave's backup file, we'll
|
||||||
|
// create a new nodeRestorer that will restore
|
||||||
|
// using the on-disk channels.backup.
|
||||||
|
backup := &lnrpc.RestoreChanBackupRequest_MultiChanBackup{
|
||||||
|
MultiChanBackup: multi,
|
||||||
|
}
|
||||||
|
|
||||||
|
ctxb := context.Background()
|
||||||
|
|
||||||
|
return func() (*lntest.HarnessNode, error) {
|
||||||
|
newNode, err := net.RestoreNodeWithSeed(
|
||||||
|
"dave", nil, password, mnemonic,
|
||||||
|
1000, nil,
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("unable to "+
|
||||||
|
"restore node: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = newNode.RestoreChannelBackups(
|
||||||
|
ctxb,
|
||||||
|
&lnrpc.RestoreChanBackupRequest{
|
||||||
|
Backup: backup,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("unable "+
|
||||||
|
"to restore backups: %v",
|
||||||
|
err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = newNode.RestoreChannelBackups(
|
||||||
|
ctxb,
|
||||||
|
&lnrpc.RestoreChanBackupRequest{
|
||||||
|
Backup: backup,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("unable "+
|
||||||
|
"to restore backups the"+
|
||||||
|
"second time: %v",
|
||||||
|
err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return newNode, nil
|
||||||
|
}, nil
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(roasbeef): online vs offline close?
|
// TODO(roasbeef): online vs offline close?
|
||||||
|
Loading…
Reference in New Issue
Block a user