watchtower/wtdb+wtserver: pass properly sized blob in unit tests
This commit is contained in:
2 files changed
+88
-43
No files matched your search
@@ -1,6 +1,7 @@
|
||||
package wtdb_test
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/binary"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
@@ -16,6 +17,10 @@ import (
|
||||
"github.com/lightningnetwork/lnd/watchtower/wtpolicy"
|
||||
)
|
||||
|
||||
var (
|
||||
testBlob = make([]byte, blob.Size(blob.TypeAltruistCommit))
|
||||
)
|
||||
|
||||
// dbInit is a closure used to initialize a watchtower.DB instance and its
|
||||
// cleanup function.
|
||||
type dbInit func(*testing.T) (watchtower.DB, func())
|
||||
@@ -137,6 +142,9 @@ func testInsertSession(h *towerDBHarness) {
|
||||
session := &wtdb.SessionInfo{
|
||||
ID: id,
|
||||
Policy: wtpolicy.Policy{
|
||||
TxPolicy: wtpolicy.TxPolicy{
|
||||
BlobType: blob.TypeAltruistCommit,
|
||||
},
|
||||
MaxUpdates: 100,
|
||||
},
|
||||
RewardAddress: []byte{0x01, 0x02, 0x03},
|
||||
@@ -155,8 +163,9 @@ func testInsertSession(h *towerDBHarness) {
|
||||
|
||||
// Insert a state update to fully commit the session parameters.
|
||||
update := &wtdb.SessionStateUpdate{
|
||||
ID: id,
|
||||
SeqNum: 1,
|
||||
ID: id,
|
||||
SeqNum: 1,
|
||||
EncryptedBlob: testBlob,
|
||||
}
|
||||
h.insertUpdate(update, nil)
|
||||
|
||||
@@ -176,6 +185,9 @@ func testMultipleMatches(h *towerDBHarness) {
|
||||
session := &wtdb.SessionInfo{
|
||||
ID: id,
|
||||
Policy: wtpolicy.Policy{
|
||||
TxPolicy: wtpolicy.TxPolicy{
|
||||
BlobType: blob.TypeAltruistCommit,
|
||||
},
|
||||
MaxUpdates: 3,
|
||||
},
|
||||
RewardAddress: []byte{},
|
||||
@@ -183,9 +195,10 @@ func testMultipleMatches(h *towerDBHarness) {
|
||||
h.insertSession(session, nil)
|
||||
|
||||
update := &wtdb.SessionStateUpdate{
|
||||
ID: id,
|
||||
SeqNum: 1,
|
||||
Hint: hint, // Use same hint to cause multiple matches
|
||||
ID: id,
|
||||
SeqNum: 1,
|
||||
Hint: hint, // Use same hint to cause multiple matches
|
||||
EncryptedBlob: testBlob,
|
||||
}
|
||||
h.insertUpdate(update, nil)
|
||||
}
|
||||
@@ -267,6 +280,9 @@ func testDeleteSession(h *towerDBHarness) {
|
||||
session0 := &wtdb.SessionInfo{
|
||||
ID: *id0,
|
||||
Policy: wtpolicy.Policy{
|
||||
TxPolicy: wtpolicy.TxPolicy{
|
||||
BlobType: blob.TypeAltruistCommit,
|
||||
},
|
||||
MaxUpdates: 3,
|
||||
},
|
||||
RewardAddress: []byte{},
|
||||
@@ -285,6 +301,9 @@ func testDeleteSession(h *towerDBHarness) {
|
||||
session1 := &wtdb.SessionInfo{
|
||||
ID: *id1,
|
||||
Policy: wtpolicy.Policy{
|
||||
TxPolicy: wtpolicy.TxPolicy{
|
||||
BlobType: blob.TypeAltruistCommit,
|
||||
},
|
||||
MaxUpdates: 3,
|
||||
},
|
||||
RewardAddress: []byte{},
|
||||
@@ -297,13 +316,13 @@ func testDeleteSession(h *towerDBHarness) {
|
||||
ID: *id0,
|
||||
Hint: hint,
|
||||
SeqNum: 1,
|
||||
EncryptedBlob: []byte{},
|
||||
EncryptedBlob: testBlob,
|
||||
}
|
||||
update1 := &wtdb.SessionStateUpdate{
|
||||
ID: *id1,
|
||||
Hint: hint,
|
||||
SeqNum: 1,
|
||||
EncryptedBlob: []byte{},
|
||||
EncryptedBlob: testBlob,
|
||||
}
|
||||
|
||||
// Insert both updates should succeed.
|
||||
@@ -414,7 +433,7 @@ func runStateUpdateTest(test stateUpdateTest) func(*towerDBHarness) {
|
||||
var stateUpdateNoSession = stateUpdateTest{
|
||||
session: nil,
|
||||
updates: []*wtdb.SessionStateUpdate{
|
||||
{ID: *id(0), SeqNum: 1, LastApplied: 0},
|
||||
updateFromInt(id(0), 1, 0),
|
||||
},
|
||||
updateErrs: []error{
|
||||
wtdb.ErrSessionNotFound,
|
||||
@@ -425,6 +444,9 @@ var stateUpdateExhaustSession = stateUpdateTest{
|
||||
session: &wtdb.SessionInfo{
|
||||
ID: *id(0),
|
||||
Policy: wtpolicy.Policy{
|
||||
TxPolicy: wtpolicy.TxPolicy{
|
||||
BlobType: blob.TypeAltruistCommit,
|
||||
},
|
||||
MaxUpdates: 3,
|
||||
},
|
||||
RewardAddress: []byte{},
|
||||
@@ -444,6 +466,9 @@ var stateUpdateSeqNumEqualLastApplied = stateUpdateTest{
|
||||
session: &wtdb.SessionInfo{
|
||||
ID: *id(0),
|
||||
Policy: wtpolicy.Policy{
|
||||
TxPolicy: wtpolicy.TxPolicy{
|
||||
BlobType: blob.TypeAltruistCommit,
|
||||
},
|
||||
MaxUpdates: 3,
|
||||
},
|
||||
RewardAddress: []byte{},
|
||||
@@ -463,6 +488,9 @@ var stateUpdateSeqNumLTLastApplied = stateUpdateTest{
|
||||
session: &wtdb.SessionInfo{
|
||||
ID: *id(0),
|
||||
Policy: wtpolicy.Policy{
|
||||
TxPolicy: wtpolicy.TxPolicy{
|
||||
BlobType: blob.TypeAltruistCommit,
|
||||
},
|
||||
MaxUpdates: 3,
|
||||
},
|
||||
RewardAddress: []byte{},
|
||||
@@ -481,6 +509,9 @@ var stateUpdateSeqNumZeroInvalid = stateUpdateTest{
|
||||
session: &wtdb.SessionInfo{
|
||||
ID: *id(0),
|
||||
Policy: wtpolicy.Policy{
|
||||
TxPolicy: wtpolicy.TxPolicy{
|
||||
BlobType: blob.TypeAltruistCommit,
|
||||
},
|
||||
MaxUpdates: 3,
|
||||
},
|
||||
RewardAddress: []byte{},
|
||||
@@ -497,6 +528,9 @@ var stateUpdateSkipSeqNum = stateUpdateTest{
|
||||
session: &wtdb.SessionInfo{
|
||||
ID: *id(0),
|
||||
Policy: wtpolicy.Policy{
|
||||
TxPolicy: wtpolicy.TxPolicy{
|
||||
BlobType: blob.TypeAltruistCommit,
|
||||
},
|
||||
MaxUpdates: 3,
|
||||
},
|
||||
RewardAddress: []byte{},
|
||||
@@ -513,6 +547,9 @@ var stateUpdateRevertSeqNum = stateUpdateTest{
|
||||
session: &wtdb.SessionInfo{
|
||||
ID: *id(0),
|
||||
Policy: wtpolicy.Policy{
|
||||
TxPolicy: wtpolicy.TxPolicy{
|
||||
BlobType: blob.TypeAltruistCommit,
|
||||
},
|
||||
MaxUpdates: 3,
|
||||
},
|
||||
RewardAddress: []byte{},
|
||||
@@ -531,6 +568,9 @@ var stateUpdateRevertLastApplied = stateUpdateTest{
|
||||
session: &wtdb.SessionInfo{
|
||||
ID: *id(0),
|
||||
Policy: wtpolicy.Policy{
|
||||
TxPolicy: wtpolicy.TxPolicy{
|
||||
BlobType: blob.TypeAltruistCommit,
|
||||
},
|
||||
MaxUpdates: 3,
|
||||
},
|
||||
RewardAddress: []byte{},
|
||||
@@ -710,12 +750,14 @@ func updateFromInt(id *wtdb.SessionID, i int,
|
||||
copy(hint[:4], id[:4])
|
||||
binary.BigEndian.PutUint16(hint[4:6], uint16(i))
|
||||
|
||||
blobSize := blob.Size(blob.TypeAltruistCommit)
|
||||
|
||||
return &wtdb.SessionStateUpdate{
|
||||
ID: *id,
|
||||
Hint: hint,
|
||||
SeqNum: uint16(i),
|
||||
LastApplied: lastApplied,
|
||||
EncryptedBlob: []byte{byte(i)},
|
||||
EncryptedBlob: bytes.Repeat([]byte{byte(i)}, blobSize),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user