Skip to content

Commit

Permalink
adding tests for detail Summary rendering
Browse files Browse the repository at this point in the history
  • Loading branch information
paulbellamy committed Mar 29, 2016
1 parent 653c679 commit 03d5b65
Show file tree
Hide file tree
Showing 2 changed files with 102 additions and 11 deletions.
91 changes: 91 additions & 0 deletions render/detailed/summary_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
package detailed_test

import (
"sort"
"testing"
"time"

"github.com/weaveworks/scope/common/mtime"
"github.com/weaveworks/scope/probe/process"
"github.com/weaveworks/scope/render"
"github.com/weaveworks/scope/render/detailed"
"github.com/weaveworks/scope/render/expected"
"github.com/weaveworks/scope/report"
"github.com/weaveworks/scope/test"
"github.com/weaveworks/scope/test/fixture"
"github.com/weaveworks/scope/test/reflect"
)

func TestSummaries(t *testing.T) {
{
// Just a convenient source of some rendered nodes
have := detailed.Summaries(render.ProcessRenderer.Render(fixture.Report))
// The ids of the processes rendered above
expectedIDs := []string{
fixture.ClientProcess1NodeID,
fixture.ClientProcess2NodeID,
fixture.ServerProcessNodeID,
fixture.NonContainerProcessNodeID,
expected.UnknownPseudoNode1ID,
expected.UnknownPseudoNode2ID,
render.IncomingInternetID,
render.OutgoingInternetID,
}
sort.Strings(expectedIDs)

// It should summarize each node
ids := []string{}
for id := range have {
ids = append(ids, id)
}
sort.Strings(ids)
if !reflect.DeepEqual(expectedIDs, ids) {
t.Fatalf("Expected Summaries to have summarized every node in the process renderer: %v, but got %v", expectedIDs, ids)
}
}

// It should summarize nodes' metrics
{
t1, t2 := mtime.Now().Add(-1*time.Minute), mtime.Now()
metric := report.MakeMetric().Add(t1, 1).Add(t2, 2)
input := fixture.Report.Copy()

input.Process.Nodes[fixture.ClientProcess1NodeID] = input.Process.Nodes[fixture.ClientProcess1NodeID].WithMetrics(report.Metrics{process.CPUUsage: metric})
have := detailed.Summaries(render.ProcessRenderer.Render(input))

node, ok := have[fixture.ClientProcess1NodeID]
if !ok {
t.Fatalf("Expected output to have the node we added the metric to")
}

var row detailed.MetricRow
ok = false
for _, metric := range node.Metrics {
if metric.ID == process.CPUUsage {
row = metric
ok = true
break
}
}
if !ok {
t.Fatalf("Expected node to have the metric we added")
}

// Our summarized MetricRow
want := detailed.MetricRow{
ID: process.CPUUsage,
Format: "percent",
Value: 2,
Metric: &report.Metric{
Samples: nil,
Min: metric.Min,
Max: metric.Max,
First: metric.First,
Last: metric.Last,
},
}
if !reflect.DeepEqual(want, row) {
t.Fatalf("Expected to have summarized the node's metrics: %s", test.Diff(want, row))
}
}
}
22 changes: 11 additions & 11 deletions render/expected/expected.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,18 @@ var (
service = node(report.Service)
host = node(report.Host)

UnknownPseudoNode1ID = render.MakePseudoNodeID(fixture.UnknownClient1IP)
UnknownPseudoNode2ID = render.MakePseudoNodeID(fixture.UnknownClient3IP)

unknownPseudoNode1 = func(adjacent ...string) report.Node {
return pseudo(unknownPseudoNode1ID, adjacent...).
return pseudo(UnknownPseudoNode1ID, adjacent...).
WithChildren(report.MakeNodeSet(
RenderedEndpoints[fixture.UnknownClient1NodeID],
RenderedEndpoints[fixture.UnknownClient2NodeID],
))
}
unknownPseudoNode2 = func(adjacent ...string) report.Node {
return pseudo(unknownPseudoNode2ID, adjacent...).
return pseudo(UnknownPseudoNode2ID, adjacent...).
WithChildren(report.MakeNodeSet(
RenderedEndpoints[fixture.UnknownClient3NodeID],
))
Expand Down Expand Up @@ -70,9 +73,6 @@ var (
fixture.GoogleEndpointNodeID: endpoint(fixture.GoogleEndpointNodeID),
}.Prune()

unknownPseudoNode1ID = render.MakePseudoNodeID(fixture.UnknownClient1IP)
unknownPseudoNode2ID = render.MakePseudoNodeID(fixture.UnknownClient3IP)

RenderedProcesses = report.Nodes{
fixture.ClientProcess1NodeID: process(fixture.ClientProcess1NodeID, fixture.ServerProcessNodeID).
WithChildren(report.MakeNodeSet(
Expand All @@ -94,8 +94,8 @@ var (
RenderedEndpoints[fixture.NonContainerNodeID],
)),

unknownPseudoNode1ID: unknownPseudoNode1(fixture.ServerProcessNodeID),
unknownPseudoNode2ID: unknownPseudoNode2(fixture.ServerProcessNodeID),
UnknownPseudoNode1ID: unknownPseudoNode1(fixture.ServerProcessNodeID),
UnknownPseudoNode2ID: unknownPseudoNode2(fixture.ServerProcessNodeID),

render.IncomingInternetID: theIncomingInternetNode(fixture.ServerProcessNodeID),
render.OutgoingInternetID: theOutgoingInternetNode,
Expand All @@ -122,8 +122,8 @@ var (
RenderedProcesses[fixture.NonContainerProcessNodeID],
)),

unknownPseudoNode1ID: unknownPseudoNode1(fixture.ServerName),
unknownPseudoNode2ID: unknownPseudoNode2(fixture.ServerName),
UnknownPseudoNode1ID: unknownPseudoNode1(fixture.ServerName),
UnknownPseudoNode2ID: unknownPseudoNode2(fixture.ServerName),
render.IncomingInternetID: theIncomingInternetNode(fixture.ServerName),
render.OutgoingInternetID: theOutgoingInternetNode,
}.Prune()
Expand Down Expand Up @@ -199,8 +199,8 @@ var (
//RenderedPods[fixture.ServerPodNodeID], #1142
)),

unknownPseudoNode1ID: unknownPseudoNode1(fixture.ServerHostNodeID),
unknownPseudoNode2ID: unknownPseudoNode2(fixture.ServerHostNodeID),
UnknownPseudoNode1ID: unknownPseudoNode1(fixture.ServerHostNodeID),
UnknownPseudoNode2ID: unknownPseudoNode2(fixture.ServerHostNodeID),
render.IncomingInternetID: theIncomingInternetNode(fixture.ServerHostNodeID),
render.OutgoingInternetID: theOutgoingInternetNode,
}.Prune()
Expand Down

0 comments on commit 03d5b65

Please sign in to comment.