Слияние кода завершено, страница обновится автоматически
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)
})
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )