mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-28 09:41:57 +00:00
add test for render/detailed/parents and fixed bug
This commit is contained in:
@@ -41,7 +41,7 @@ func MakeNode(r report.Report, n render.RenderableNode) Node {
|
||||
Pseudo: n.Pseudo,
|
||||
Controls: controls(r, n),
|
||||
Children: children(n),
|
||||
Parents: parents(r, n),
|
||||
Parents: Parents(r, n),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,9 +17,9 @@ type Parent struct {
|
||||
TopologyID string `json:"topologyId"`
|
||||
}
|
||||
|
||||
// parents renders the parents of this report.Node, which have been aggregated
|
||||
// Parents renders the parents of this report.Node, which have been aggregated
|
||||
// from the probe reports.
|
||||
func parents(r report.Report, n render.RenderableNode) (result []Parent) {
|
||||
func Parents(r report.Report, n render.RenderableNode) (result []Parent) {
|
||||
topologies := map[string]struct {
|
||||
report.Topology
|
||||
render func(report.Node) Parent
|
||||
@@ -39,7 +39,7 @@ func parents(r report.Report, n render.RenderableNode) (result []Parent) {
|
||||
t := topologies[topologyID]
|
||||
parents, _ := n.Node.Parents.Lookup(topologyID)
|
||||
for _, id := range parents {
|
||||
if topologyID == n.Node.Topology && id == n.ID {
|
||||
if topologyID == n.Node.Topology && id == n.Node.ID {
|
||||
continue
|
||||
}
|
||||
|
||||
|
||||
56
render/detailed/parents_test.go
Normal file
56
render/detailed/parents_test.go
Normal file
@@ -0,0 +1,56 @@
|
||||
package detailed_test
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/weaveworks/scope/render"
|
||||
"github.com/weaveworks/scope/render/detailed"
|
||||
"github.com/weaveworks/scope/report"
|
||||
"github.com/weaveworks/scope/test"
|
||||
"github.com/weaveworks/scope/test/fixture"
|
||||
"github.com/weaveworks/scope/test/reflect"
|
||||
)
|
||||
|
||||
func TestParents(t *testing.T) {
|
||||
for _, c := range []struct {
|
||||
name string
|
||||
node render.RenderableNode
|
||||
want []detailed.Parent
|
||||
}{
|
||||
{
|
||||
name: "Node accidentally tagged with itself",
|
||||
node: render.HostRenderer.Render(fixture.Report)[render.MakeHostID(fixture.ClientHostID)].WithParents(
|
||||
report.EmptySets.Add(report.Host, report.MakeStringSet(fixture.ClientHostNodeID)),
|
||||
),
|
||||
want: nil,
|
||||
},
|
||||
{
|
||||
node: render.HostRenderer.Render(fixture.Report)[render.MakeHostID(fixture.ClientHostID)],
|
||||
want: nil,
|
||||
},
|
||||
{
|
||||
node: render.ContainerRenderer.Render(fixture.Report)[render.MakeContainerID(fixture.ClientContainerID)],
|
||||
want: []detailed.Parent{
|
||||
{ID: render.MakeContainerImageID(fixture.ClientContainerImageName), Label: fixture.ClientContainerImageName, TopologyID: "containers-by-image"},
|
||||
{ID: render.MakeHostID(fixture.ClientHostID), Label: fixture.ClientHostName, TopologyID: "hosts"},
|
||||
},
|
||||
},
|
||||
{
|
||||
node: render.ProcessRenderer.Render(fixture.Report)[render.MakeProcessID(fixture.ClientHostID, fixture.Client1PID)],
|
||||
want: []detailed.Parent{
|
||||
{ID: render.MakeContainerID(fixture.ClientContainerID), Label: fixture.ClientContainerName, TopologyID: "containers"},
|
||||
{ID: render.MakeContainerImageID(fixture.ClientContainerImageName), Label: fixture.ClientContainerImageName, TopologyID: "containers-by-image"},
|
||||
{ID: render.MakeHostID(fixture.ClientHostID), Label: fixture.ClientHostName, TopologyID: "hosts"},
|
||||
},
|
||||
},
|
||||
} {
|
||||
name := c.name
|
||||
if name == "" {
|
||||
name = fmt.Sprintf("Node %q", c.node.ID)
|
||||
}
|
||||
if have := detailed.Parents(fixture.Report, c.node); !reflect.DeepEqual(c.want, have) {
|
||||
t.Errorf("%s: %s", name, test.Diff(c.want, have))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -73,6 +73,7 @@ var (
|
||||
NonContainerProcessNodeID = report.MakeProcessNodeID(ServerHostID, NonContainerPID)
|
||||
|
||||
ClientContainerID = "a1b2c3d4e5"
|
||||
ClientContainerName = "client"
|
||||
ServerContainerID = "5e4d3c2b1a"
|
||||
ClientContainerNodeID = report.MakeContainerNodeID(ClientContainerID)
|
||||
ServerContainerNodeID = report.MakeContainerNodeID(ServerContainerID)
|
||||
@@ -257,7 +258,7 @@ var (
|
||||
Nodes: report.Nodes{
|
||||
ClientContainerNodeID: report.MakeNodeWith(map[string]string{
|
||||
docker.ContainerID: ClientContainerID,
|
||||
docker.ContainerName: "client",
|
||||
docker.ContainerName: ClientContainerName,
|
||||
docker.ImageID: ClientContainerImageID,
|
||||
report.HostNodeID: ClientHostNodeID,
|
||||
docker.LabelPrefix + "io.kubernetes.pod.name": ClientPodID,
|
||||
|
||||
Reference in New Issue
Block a user