Skip to content

Commit

Permalink
use hashmap for diagnostic engine
Browse files Browse the repository at this point in the history
  • Loading branch information
MattSScott committed Oct 18, 2024
1 parent bb8c475 commit 7185a6e
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 12 deletions.
6 changes: 3 additions & 3 deletions internal/diagnosticsEngine/diagnosticsEngine.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ type IDiagnosticsEngine interface {
// allow agents to report status of sent message
ReportSendMessageStatus(bool)
// allow server to report number of end message closures
ReportEndMessagingStatus()
ReportEndMessagingStatus(int)
// allow for resetting of diagnostics for round-to-round data
ResetRoundDiagnostics()
// compile results for end of round messaging status
Expand All @@ -33,8 +33,8 @@ func (de *DiagnosticsEngine) ReportSendMessageStatus(status bool) {
}
}

func (de *DiagnosticsEngine) ReportEndMessagingStatus() {
de.numEndMessagings++
func (de *DiagnosticsEngine) ReportEndMessagingStatus(n int) {
de.numEndMessagings = n
}

func (de *DiagnosticsEngine) ResetRoundDiagnostics() {
Expand Down
14 changes: 6 additions & 8 deletions internal/diagnosticsEngine/diagnosticsEngine_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ func TestGetNumberEndMessagings(t *testing.T) {
if initEnds != 0 {
t.Error("Diagnostics engine intialised with non-zero number")
}
engine.ReportEndMessagingStatus()
engine.ReportEndMessagingStatus(1)
newEnds := engine.GetNumberEndMessagings()
if newEnds != initEnds+1 {
t.Error("Diagnostics engine successes not correctly incremented")
Expand Down Expand Up @@ -94,11 +94,8 @@ func TestEndMessagingSuccessRate(t *testing.T) {
engine := diagnosticsEngine.CreateDiagnosticsEngine()
numAgents := 100
numReports := 20
for i := 0; i < numAgents; i++ {
if i < numReports {
engine.ReportEndMessagingStatus()
}
}

engine.ReportEndMessagingStatus(numReports)
trueSuccessRate := engine.GetEndMessagingSuccessRate(numAgents)
expectedSuccessRate := float32(numReports) / float32(numAgents) * 100
if trueSuccessRate != expectedSuccessRate {
Expand All @@ -109,11 +106,12 @@ func TestEndMessagingSuccessRate(t *testing.T) {
func TestResetDiagnostics(t *testing.T) {
engine := diagnosticsEngine.CreateDiagnosticsEngine()
rounds := 3
nMessages := 10
for r := 0; r < rounds; r++ {
for delta := 0; delta < 10; delta++ {
engine.ReportEndMessagingStatus()
for delta := 0; delta < nMessages; delta++ {
engine.ReportSendMessageStatus(true)
}
engine.ReportEndMessagingStatus(nMessages)
engine.ResetRoundDiagnostics()
nSent := engine.GetNumberSentMessages()
nSucc := engine.GetNumberMessageSuccesses()
Expand Down
2 changes: 1 addition & 1 deletion pkg/server/baseServer.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,12 @@ awaitSessionEnd:
select {
case id := <-serv.agentFinishedMessaging:
agentStoppedTalkingMap[id] = struct{}{}
serv.diagnosticsEngine.ReportEndMessagingStatus()
case <-ctx.Done():
status = false
break awaitSessionEnd
}
}
serv.diagnosticsEngine.ReportEndMessagingStatus(len(agentStoppedTalkingMap))
close(serv.endNotifyAgentDone)
return status
}
Expand Down

0 comments on commit 7185a6e

Please sign in to comment.