From 057893ff07d54bf56c6bbd7193afa6fe801f5ec8 Mon Sep 17 00:00:00 2001 From: Anton Egorov Date: Mon, 21 Jul 2014 03:22:51 +0400 Subject: [PATCH] we cannot expect output chenned entries order, fix #4 --- reducer_test.go | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/reducer_test.go b/reducer_test.go index 2817148..351dbac 100644 --- a/reducer_test.go +++ b/reducer_test.go @@ -190,13 +190,18 @@ func TestGroupByReducer(t *testing.T) { output := make(chan *Entry, 2) // Make it buffered to avoid deadlock reducer.Reduce(input, output) - // Read and assert first group result - result, ok := <-output - assert.True(t, ok) + // Collect result entries from output channel to the map, because reading + // from channel can be in any order, it depends on each reducer processing + resultMap := make(map[string]*Entry) + for result := range output { + value, err := result.Field("host") + assert.NoError(t, err) + resultMap[value] = result + } + assert.Equal(t, len(resultMap), 2) - value, err := result.Field("host") - assert.NoError(t, err) - assert.Equal(t, value, "alpha.example.com") + // Read and assert first group result + result := resultMap["alpha.example.com"] floatVal, err := result.FloatField("foo") assert.NoError(t, err) @@ -206,17 +211,12 @@ func TestGroupByReducer(t *testing.T) { assert.NoError(t, err) assert.Equal(t, floatVal, 2.0) - value, err = result.Field("count") + value, err := result.Field("count") assert.NoError(t, err) assert.Equal(t, value, "1") // Read and assert second group result - result, ok = <-output - assert.True(t, ok) - - value, err = result.Field("host") - assert.NoError(t, err) - assert.Equal(t, value, "beta.example.com") + result = resultMap["beta.example.com"] floatVal, err = result.FloatField("foo") assert.NoError(t, err)