parent
6a52fc29d3
commit
00096349d9
@ -0,0 +1,38 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os/exec"
|
||||
"strconv"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
. "github.com/smartystreets/goconvey/convey"
|
||||
)
|
||||
|
||||
func findProcess(name string) bool {
|
||||
name = fmt.Sprintf("[%c]%s", name[0], name[1:])
|
||||
c := exec.Command("bash", "-c", fmt.Sprintf("ps -eo command | grep %s", strconv.Quote(name)))
|
||||
output, err := c.CombinedOutput()
|
||||
if err == nil {
|
||||
So(string(output), ShouldNotEqual, "")
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func TestStopCommand(t *testing.T) {
|
||||
Convey("Stop command should clean up all program", t, func() {
|
||||
p := NewProcess(Program{
|
||||
Name: "sleep",
|
||||
Command: "(echo hello; sleep 17&); exit 1",
|
||||
StopTimeout: 1,
|
||||
})
|
||||
p.startCommand()
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
p.stopCommand()
|
||||
So(p.cmd, ShouldBeNil)
|
||||
exists := findProcess("sleep 17")
|
||||
So(exists, ShouldBeFalse)
|
||||
})
|
||||
}
|
Loading…
Reference in new issue