From d4a9db03318af59b00dd7ad9b972be1f08b7933d Mon Sep 17 00:00:00 2001 From: Hayden Parker Date: Sun, 3 Jul 2016 20:26:20 -0700 Subject: [PATCH] starting lease set tests --- lib/common/lease_set.go | 8 +++++ lib/common/lease_set_test.go | 58 ++++++++++++++++++++++++++++++++++-- 2 files changed, 64 insertions(+), 2 deletions(-) diff --git a/lib/common/lease_set.go b/lib/common/lease_set.go index 935af84..3679f32 100644 --- a/lib/common/lease_set.go +++ b/lib/common/lease_set.go @@ -202,6 +202,14 @@ func (lease_set LeaseSet) LeaseCount() (count int, err error) { return } count = Integer([]byte{remainder[LEASE_SET_PUBKEY_SIZE+LEASE_SET_SPK_SIZE]}) + if count > 16 { + log.WithFields(log.Fields{ + "at": "(LeaseSet) LeaseCount", + "lease_count": count, + "reason": "more than 16 leases", + }).Warn("invalid lease set") + err = errors.New("invalid lease set: more than 16 leases") + } return } diff --git a/lib/common/lease_set_test.go b/lib/common/lease_set_test.go index d0214af..6b5a464 100644 --- a/lib/common/lease_set_test.go +++ b/lib/common/lease_set_test.go @@ -1,7 +1,61 @@ package common import ( - //"github.com/stretchr/testify/assert" - //"testing" + "github.com/stretchr/testify/assert" + "testing" ) +func buildDestination() RouterIdentity { + router_ident_data := make([]byte, 128+256) + router_ident_data = append(router_ident_data, []byte{0x05, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00}...) + return RouterIdentity(router_ident_data) +} + +func buildPublicKey() []byte { + return make([]byte, 256) +} + +func buildSigningKey() []byte { + return make([]byte, 128) +} + +func buildLease(n int) []byte { + return make([]byte, LEASE_SIZE*n) +} + +func buildSignature() []byte { + return make([]byte, 40) +} + +func buildFullLeaseSet(n int) LeaseSet { + lease_set_data := make([]byte, 0) + lease_set_data = append(lease_set_data, buildDestination()...) + lease_set_data = append(lease_set_data, buildPublicKey()...) + lease_set_data = append(lease_set_data, buildSigningKey()...) + lease_set_data = append(lease_set_data, byte(n)) + lease_set_data = append(lease_set_data, buildLease(n)...) + lease_set_data = append(lease_set_data, buildSignature()...) + return LeaseSet(lease_set_data) +} + +// TestDestination + +// TestPublicKey + +// TestSigningKey + +func TestLeaseCountCorrect(t *testing.T) { + assert := assert.New(t) + + lease_set := buildFullLeaseSet(1) + count, err := lease_set.LeaseCount() + if assert.Nil(err) { + assert.Equal(1, count) + } +} + +// TestLeases + +// TestSignature + +//TestOldestExpiration