diff options
Diffstat (limited to 'internal/mapr/server/turbo_aggregate_test.go')
| -rw-r--r-- | internal/mapr/server/turbo_aggregate_test.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/internal/mapr/server/turbo_aggregate_test.go b/internal/mapr/server/turbo_aggregate_test.go index f556f50..7ae4b5a 100644 --- a/internal/mapr/server/turbo_aggregate_test.go +++ b/internal/mapr/server/turbo_aggregate_test.go @@ -8,6 +8,7 @@ import ( "testing" "time" + "github.com/mimecast/dtail/internal" "github.com/mimecast/dtail/internal/config" "github.com/mimecast/dtail/internal/io/dlog" "github.com/mimecast/dtail/internal/io/line" @@ -311,3 +312,21 @@ func TestTurboAggregateConcurrency(t *testing.T) { t.Error("Did not find expected count of 1000 in results") } } + +func TestTurboAggregateAbortReturnsPromptlyWithActiveProcessors(t *testing.T) { + aggregate := &TurboAggregate{} + aggregate.done = internal.NewDone() + aggregate.activeProcessors.Store(1) + + done := make(chan struct{}) + go func() { + aggregate.Abort() + close(done) + }() + + select { + case <-done: + case <-time.After(100 * time.Millisecond): + t.Fatal("Abort did not return promptly while processors were still active") + } +} |
