01176f2d7f
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
73 lines
1.1 KiB
Go
73 lines
1.1 KiB
Go
package supervisor
|
|
|
|
import (
|
|
"os"
|
|
"sort"
|
|
"testing"
|
|
|
|
"github.com/docker/containerd/runtime"
|
|
"github.com/opencontainers/specs"
|
|
)
|
|
|
|
type testProcess struct {
|
|
id string
|
|
}
|
|
|
|
func (p *testProcess) ID() string {
|
|
return p.id
|
|
}
|
|
|
|
func (p *testProcess) CloseStdin() error {
|
|
return nil
|
|
}
|
|
|
|
func (p *testProcess) Resize(w, h int) error {
|
|
return nil
|
|
}
|
|
|
|
func (p *testProcess) Stdio() runtime.Stdio {
|
|
return runtime.Stdio{}
|
|
}
|
|
|
|
func (p *testProcess) SystemPid() int {
|
|
return -1
|
|
}
|
|
|
|
func (p *testProcess) ExitFD() int {
|
|
return -1
|
|
}
|
|
|
|
func (p *testProcess) ExitStatus() (int, error) {
|
|
return -1, nil
|
|
}
|
|
|
|
func (p *testProcess) Container() runtime.Container {
|
|
return nil
|
|
}
|
|
|
|
func (p *testProcess) Spec() specs.Process {
|
|
return specs.Process{}
|
|
}
|
|
|
|
func (p *testProcess) Signal(os.Signal) error {
|
|
return nil
|
|
}
|
|
|
|
func (p *testProcess) Close() error {
|
|
return nil
|
|
}
|
|
|
|
func TestSortProcesses(t *testing.T) {
|
|
p := []runtime.Process{
|
|
&testProcess{"ls"},
|
|
&testProcess{"other"},
|
|
&testProcess{"init"},
|
|
&testProcess{"other2"},
|
|
}
|
|
s := &processSorter{p}
|
|
sort.Sort(s)
|
|
|
|
if id := p[len(p)-1].ID(); id != "init" {
|
|
t.Fatalf("expected init but received %q", id)
|
|
}
|
|
}
|