Skip to content
Snippets Groups Projects
Commit 0d0e512a authored by Josh Brooks's avatar Josh Brooks
Browse files

Fix tests in e2e/parse

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