Skip to content
Snippets Groups Projects
Commit e8563e29 authored by Jake Taylor's avatar Jake Taylor :lips:
Browse files

Merge branch 'josh/ImproveTests' into 'restructure'

Josh/improve tests

See merge request !230
parents 16d746d2 0d0e512a
No related branches found
No related tags found
3 merge requests!510Release,!230Josh/improve tests,!207WIP: Client Restructure
......@@ -9,6 +9,7 @@ package parse
import (
"encoding/binary"
"fmt"
"time"
jww "github.com/spf13/jwalterweatherman"
......@@ -43,6 +44,9 @@ func newFirstMessagePart(mt catalog.MessageType, id uint32, numParts uint8,
// Create the message structure
m := firstMessagePartFromBytes(make([]byte, size))
fmt.Printf("len of contents: %d"+
"\nsize: %d\n"+
"len m.contents: %d\n", len(contents), size, len(m.Contents))
// Set the message type
binary.BigEndian.PutUint32(m.Type, uint32(mt))
......
......@@ -41,7 +41,7 @@ func Test_newFirstMessagePart(t *testing.T) {
1077,
2,
time.Unix(1609786229, 0).UTC(),
[]byte{'t', 'e', 's', 't', 'i', 'n', 'g', 's', 't', 'r', 'i', 'n', 'g'},
[]byte{'t', 'e', 's', 't', 'i', 'n', 'g', 's', 't', 'r', 'i', 'n', 'g'}, len(expectedFMP.Data),
)
gotTime := fmp.getTimestamp()
......
......@@ -26,7 +26,7 @@ var expectedMP = messagePart{
// Tests that a new function part is successfully created.
func Test_newMessagePart(t *testing.T) {
goTmp := newMessagePart(32, 6, []byte{'t', 'e', 's', 't', 'i', 'n', 'g'})
goTmp := newMessagePart(32, 6, []byte{'t', 'e', 's', 't', 'i', 'n', 'g'}, len(expectedMP.Data))
if !reflect.DeepEqual(goTmp, expectedMP) {
t.Errorf("MessagePart received and MessagePart expected do not match."+
"\nexpected: %#v\nreceived: %#v", expectedMP, goTmp)
......
......@@ -69,7 +69,7 @@ func TestPartitioner_Partition(t *testing.T) {
// Test that Partitioner.HandlePartition can handle a message part.
func TestPartitioner_HandlePartition(t *testing.T) {
p := NewPartitioner(versioned.NewKV(ekv.MakeMemstore()), len(ipsumTestStr))
m := newMessagePart(1107, 1, []byte(ipsumTestStr))
m := newMessagePart(1107, 1, []byte(ipsumTestStr), len(ipsumTestStr)+headerLen)
_, _ = p.HandlePartition(
&id.DummyUser,
......@@ -82,7 +82,7 @@ func TestPartitioner_HandlePartition(t *testing.T) {
func TestPartitioner_HandleFirstPartition(t *testing.T) {
p := NewPartitioner(versioned.NewKV(ekv.MakeMemstore()), len(ipsumTestStr))
m := newFirstMessagePart(
catalog.XxMessage, 1107, 1, netTime.Now(), []byte(ipsumTestStr))
catalog.XxMessage, 1107, 1, netTime.Now(), []byte(ipsumTestStr), len([]byte(ipsumTestStr))+firstHeaderLen)
_, _ = p.HandlePartition(
&id.DummyUser,
......
......@@ -23,7 +23,8 @@ import (
)
func TestManager_SendUnsafe(t *testing.T) {
streamGen := fastRNG.NewStreamGenerator(12, 1024, csprng.NewSystemRNG)
streamGen := fastRNG.NewStreamGenerator(12,
1024, csprng.NewSystemRNG)
rng := streamGen.GetStream()
defer rng.Close()
netHandler := newMockCmixHandler()
......@@ -70,7 +71,7 @@ func TestManager_SendUnsafe(t *testing.T) {
}
receiveChan := make(chan receive.Message, 10)
m2.Switchboard.RegisterListener(partnerID, catalog.NoType, &mockListener{receiveChan})
m2.Switchboard.RegisterListener(myID, catalog.NoType, &mockListener{receiveChan})
partnerPrivKey := dh.GeneratePrivateKey(
dh.DefaultPrivateKeyLength, m2.grp, rng)
......@@ -85,6 +86,9 @@ func TestManager_SendUnsafe(t *testing.T) {
m1.Ratchet, err = ratchet.Load(
partnerKv, partnerID, m2.grp, partnerFpGen, partnerServices, streamGen)
m1.EnableUnsafeReception()
m2.EnableUnsafeReception()
// Generate partner identity and add partner
partnerPubKey, partnerSidhPubKey, mySidhPrivKey, sessionParams :=
genPartnerKeys(partnerPrivKey, m1.grp, rng, t)
......
......@@ -126,12 +126,14 @@ func (m *mockServices) DeleteService(
type mockCmixHandler struct {
processorMap map[format.Fingerprint]message.Processor
serviceMap map[string]message.Processor
sync.Mutex
}
func newMockCmixHandler() *mockCmixHandler {
return &mockCmixHandler{
processorMap: make(map[format.Fingerprint]message.Processor),
serviceMap: make(map[string]message.Processor),
}
}
......@@ -172,7 +174,7 @@ func (m *mockCmix) GetMaxMessageLength() int {
return msg.ContentsSize()
}
func (m *mockCmix) Send(_ *id.ID, fp format.Fingerprint, _ message.Service,
func (m *mockCmix) Send(_ *id.ID, fp format.Fingerprint, srv message.Service,
payload, mac []byte, _ cmix.CMIXParams) (id.Round, ephemeral.Id, error) {
m.handler.Lock()
defer m.handler.Unlock()
......@@ -182,16 +184,20 @@ func (m *mockCmix) Send(_ *id.ID, fp format.Fingerprint, _ message.Service,
msg.SetMac(mac)
msg.SetKeyFP(fp)
if m.handler.processorMap[fp] == nil {
if m.handler.processorMap[fp] != nil {
m.handler.processorMap[fp].Process(
msg, receptionID.EphemeralIdentity{}, rounds.Round{})
return 0, ephemeral.Id{}, nil
} else if m.handler.serviceMap[srv.Tag] != nil {
m.handler.serviceMap[srv.Tag].Process(
msg, receptionID.EphemeralIdentity{}, rounds.Round{})
return 0, ephemeral.Id{}, nil
}
m.t.Errorf("No processor found for fingerprint %s", fp)
return 0, ephemeral.Id{},
errors.Errorf("No processor found for fingerprint %s", fp)
}
m.handler.processorMap[fp].Process(
msg, receptionID.EphemeralIdentity{}, rounds.Round{})
return 0, ephemeral.Id{}, nil
}
func (m *mockCmix) SendMany([]cmix.TargetedCmixMessage, cmix.CMIXParams) (id.Round, []ephemeral.Id, error) {
......@@ -214,8 +220,14 @@ func (m *mockCmix) DeleteFingerprint(_ *id.ID, fp format.Fingerprint) {
m.handler.Unlock()
}
func (m *mockCmix) AddService(myId *id.ID, srv message.Service, proc message.Processor) {
m.handler.Lock()
m.handler.serviceMap[srv.Tag] = proc
m.handler.Unlock()
}
func (m *mockCmix) DeleteClientFingerprints(*id.ID) {}
func (m *mockCmix) AddService(*id.ID, message.Service, message.Processor) {}
func (m *mockCmix) DeleteService(*id.ID, message.Service, message.Processor) {}
func (m *mockCmix) DeleteClientService(*id.ID) {}
func (m *mockCmix) TrackServices(message.ServicesTracker) {}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment