github.com/iqoqo/nomad@v0.11.3-0.20200911112621-d7021c74d101/drivers/shared/executor/pid_collector_test.go (about) 1 package executor 2 3 import ( 4 "testing" 5 6 ps "github.com/mitchellh/go-ps" 7 ) 8 9 func TestScanPids(t *testing.T) { 10 t.Parallel() 11 p1 := NewFakeProcess(2, 5) 12 p2 := NewFakeProcess(10, 2) 13 p3 := NewFakeProcess(15, 6) 14 p4 := NewFakeProcess(3, 10) 15 p5 := NewFakeProcess(20, 18) 16 17 nomadPids, err := scanPids(5, []ps.Process{p1, p2, p3, p4, p5}) 18 if err != nil { 19 t.Fatalf("error: %v", err) 20 } 21 if len(nomadPids) != 4 { 22 t.Fatalf("expected: 4, actual: %v", len(nomadPids)) 23 } 24 } 25 26 type FakeProcess struct { 27 pid int 28 ppid int 29 } 30 31 func (f FakeProcess) Pid() int { 32 return f.pid 33 } 34 35 func (f FakeProcess) PPid() int { 36 return f.ppid 37 } 38 39 func (f FakeProcess) Executable() string { 40 return "fake" 41 } 42 43 func NewFakeProcess(pid int, ppid int) ps.Process { 44 return FakeProcess{pid: pid, ppid: ppid} 45 }