From db750a090c5fe85a42cdc6a24f8472070f99148e Mon Sep 17 00:00:00 2001 From: benjamin <ben@elixxir.io> Date: Wed, 26 Oct 2022 19:26:19 -0700 Subject: [PATCH] hacked dummy message sender ramp down after sending 20 messages --- dummy/manager.go | 4 ++++ dummy/manager_test.go | 1 + dummy/send.go | 16 +++++++++++++++- dummy/utils_test.go | 2 ++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/dummy/manager.go b/dummy/manager.go index 83feb81d3..4a7d19f9e 100644 --- a/dummy/manager.go +++ b/dummy/manager.go @@ -61,6 +61,8 @@ type Manager struct { // Pauses/Resumes the dummy send thread when triggered statusChan chan bool + totalSent *uint64 + // Interfaces net cmix.Client store storage.Session @@ -96,6 +98,7 @@ func NewManager(maxNumMessages int, // function is a helper function for NewManager. func newManager(maxNumMessages int, avgSendDelta, randomRange time.Duration, net cmix.Client, store storage.Session, rng *fastRNG.StreamGenerator) *Manager { + numSent := uint64(8) return &Manager{ maxNumMessages: maxNumMessages, avgSendDelta: avgSendDelta, @@ -105,6 +108,7 @@ func newManager(maxNumMessages int, avgSendDelta, randomRange time.Duration, net: net, store: store, rng: rng, + totalSent: &numSent, } } diff --git a/dummy/manager_test.go b/dummy/manager_test.go index c36b2a596..13b46275a 100644 --- a/dummy/manager_test.go +++ b/dummy/manager_test.go @@ -35,6 +35,7 @@ func Test_newManager(t *testing.T) { statusChanLen, cap(received.statusChan)) } received.statusChan = expected.statusChan + received.totalSent = nil if !reflect.DeepEqual(expected, received) { t.Errorf("New manager does not match expected."+ diff --git a/dummy/send.go b/dummy/send.go index 77b0f4e7d..c35910fee 100644 --- a/dummy/send.go +++ b/dummy/send.go @@ -21,7 +21,12 @@ import ( // Error messages for the Manager.sendThread and its helper functions. const ( - numMsgsRngErr = "failed to generate random number of messages to send: %+v" + numMsgsRngErr = "failed to generate random number of messages to send: %+v" + overrideAvgSendDelta = 10 * time.Minute + overrideRandomRange = 8 * time.Minute + overrideMaxNumMessages = 2 + + numSendsToOverride = 20 ) // sendThread is a thread that sends the dummy messages at random intervals. @@ -32,6 +37,13 @@ func (m *Manager) sendThread(stop *stoppable.Single) { nextSendChanPtr := &(nextSendChan) for { + + if numSent := atomic.LoadUint64(m.totalSent); numSent > numSendsToOverride { + m.avgSendDelta = overrideAvgSendDelta + m.randomRange = overrideRandomRange + m.maxNumMessages = overrideMaxNumMessages + } + select { case status := <-m.statusChan: if status { @@ -71,6 +83,8 @@ func (m *Manager) sendThread(stop *stoppable.Single) { err := m.sendMessages() if err != nil { jww.ERROR.Printf("Failed to send dummy messages: %+v", err) + } else { + atomic.AddUint64(m.totalSent, 1) } }() case <-stop.Quit(): diff --git a/dummy/utils_test.go b/dummy/utils_test.go index 4ddccebf7..4e787f886 100644 --- a/dummy/utils_test.go +++ b/dummy/utils_test.go @@ -40,6 +40,7 @@ func newTestManager(maxNumMessages int, avgSendDelta, randomRange time.Duration, t *testing.T) *Manager { store := storage.InitTestingSession(t) payloadSize := store.GetCmixGroup().GetP().ByteLen() + n := uint64(0) m := &Manager{ maxNumMessages: maxNumMessages, avgSendDelta: avgSendDelta, @@ -48,6 +49,7 @@ func newTestManager(maxNumMessages int, avgSendDelta, randomRange time.Duration, store: store, net: newMockCmix(payloadSize), rng: fastRNG.NewStreamGenerator(1000, 10, csprng.NewSystemRNG), + totalSent: &n, } return m -- GitLab