1
0
镜像自地址 https://github.com/tuna/tunasync.git 已同步 2025-12-07 15:06:47 +00:00

feature(worker): move command execution logic to a runner object

这个提交包含在:
bigeagle
2016-04-22 11:18:52 +08:00
父节点 16ead05160
当前提交 276ab233c5
共有 3 个文件被更改,包括 149 次插入44 次删除

查看文件

@@ -6,6 +6,7 @@ import (
"os"
"path/filepath"
"testing"
"time"
. "github.com/smartystreets/goconvey/convey"
)
@@ -64,7 +65,7 @@ func TestRsyncProvider(t *testing.T) {
}
func TestCmdProvider(t *testing.T) {
Convey("Command Provider should work", t, func() {
Convey("Command Provider should work", t, func(ctx C) {
tmpDir, err := ioutil.TempDir("", "tunasync")
defer os.RemoveAll(tmpDir)
So(err, ShouldBeNil)
@@ -112,7 +113,7 @@ echo $TUNASYNC_LOG_FILE
err = provider.Run()
So(err, ShouldBeNil)
err = provider.cmd.Wait()
err = provider.Wait()
So(err, ShouldBeNil)
loggedContent, err := ioutil.ReadFile(provider.LogFile())
@@ -130,9 +131,30 @@ echo $TUNASYNC_LOG_FILE
err = provider.Run()
So(err, ShouldBeNil)
err = provider.cmd.Wait()
err = provider.Wait()
So(err, ShouldNotBeNil)
})
Convey("If a long job is killed", func(ctx C) {
scriptContent := `#!/bin/bash
sleep 5
`
err = ioutil.WriteFile(scriptFile, []byte(scriptContent), 0755)
So(err, ShouldBeNil)
err = provider.Run()
So(err, ShouldBeNil)
go func() {
err = provider.Wait()
ctx.So(err, ShouldNotBeNil)
}()
time.Sleep(2)
err = provider.Terminate()
So(err, ShouldBeNil)
})
})
}