Files
weave-scope/probe/process/tree_test.go
2016-01-06 11:55:34 +00:00

32 lines
706 B
Go

package process_test
import (
"reflect"
"testing"
"github.com/weaveworks/scope/probe/process"
)
func TestTree(t *testing.T) {
walker := &mockWalker{
processes: []process.Process{
{PID: 1, PPID: 0, Name: "init"},
{PID: 2, PPID: 1, Name: "bash"},
{PID: 3, PPID: 1, Name: "apache", Threads: 2},
{PID: 4, PPID: 2, Name: "ping", Cmdline: "ping foo.bar.local"},
},
}
tree, err := process.NewTree(walker)
if err != nil {
t.Fatalf("newProcessTree error: %v", err)
}
for pid, want := range map[int]int{2: 1, 3: 1, 4: 2} {
have, err := tree.GetParent(pid)
if err != nil || !reflect.DeepEqual(want, have) {
t.Errorf("%d: want %#v, have %#v (%v)", pid, want, have, err)
}
}
}