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  }