32 lines
492 B
Go
32 lines
492 B
Go
|
package lease
|
||
|
|
||
|
import (
|
||
|
"os/exec"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestPIDValid(t *testing.T) {
|
||
|
// create a sleep command for 1 second
|
||
|
cmd := exec.Command("sleep", "1")
|
||
|
err := cmd.Start()
|
||
|
if err != nil {
|
||
|
t.Fatal("Failed to create a sleep process:", err)
|
||
|
}
|
||
|
|
||
|
pid := NewPID(cmd.Process.Pid)
|
||
|
if !pid.Valid() {
|
||
|
t.Error("PID died too soon")
|
||
|
}
|
||
|
|
||
|
cmd.Wait()
|
||
|
|
||
|
if pid.Valid() {
|
||
|
t.Error("PID didn't die somehow")
|
||
|
}
|
||
|
|
||
|
pid = NewPID(-1)
|
||
|
if pid.Valid() {
|
||
|
t.Error("Negative PIDS are not a thing")
|
||
|
}
|
||
|
}
|