diff options
Diffstat (limited to 'utilities/utilities_test.go')
| -rw-r--r-- | utilities/utilities_test.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/utilities/utilities_test.go b/utilities/utilities_test.go new file mode 100644 index 0000000..72a11fb --- /dev/null +++ b/utilities/utilities_test.go @@ -0,0 +1,39 @@ +package utilities + +import ( + "sync" + "testing" + "time" +) + +func TestReadAfterCloseOnBufferedChannel(t *testing.T) { + communication := make(chan int, 100) + + maxC := 0 + + wg := sync.WaitGroup{} + wg.Add(2) + + go func() { + counter := 0 + for range make([]int, 50) { + communication <- counter + counter++ + } + close(communication) + wg.Done() + }() + + go func() { + time.Sleep(2 * time.Second) + for c := range communication { + maxC = c + } + wg.Done() + }() + + wg.Wait() + if maxC != 49 { + t.Fatalf("Did not read all sent items from a buffered channel after channel.") + } +} |
