本文整理匯總了Golang中github.com/cloudfoundry/gunk/command_runner/fake_command_runner.FakeCommandRunner.WhenWaitingFor方法的典型用法代碼示例。如果您正苦於以下問題:Golang FakeCommandRunner.WhenWaitingFor方法的具體用法?Golang FakeCommandRunner.WhenWaitingFor怎麽用?Golang FakeCommandRunner.WhenWaitingFor使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/cloudfoundry/gunk/command_runner/fake_command_runner.FakeCommandRunner
的用法示例。
在下文中一共展示了FakeCommandRunner.WhenWaitingFor方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1:
Expect(fakeRunner).ToNot(HaveExecutedSerially(
fake_command_runner.CommandSpec{
Path: "setquota",
},
))
})
})
})
Describe("getting quotas limits", func() {
It("executes repquota in the root path", func(done Done) {
fakeRunner.WhenWaitingFor(
fake_command_runner.CommandSpec{
Path: "/root/path/repquota",
}, func(cmd *exec.Cmd) error {
close(done)
return nil
},
)
fakeRunner.WhenRunning(
fake_command_runner.CommandSpec{
Path: "/root/path/repquota",
Args: []string{"/some/mount/point", "1234"},
}, func(cmd *exec.Cmd) error {
cmd.Stdout.Write([]byte("1234 111 222 333 444 555 666 777 888\n"))
return nil
},
)
示例2:
Eventually(oomChan).Should(BeClosed())
})
})
Context("when the oom process does not exit", func() {
var waitReturns chan struct{}
BeforeEach(func() {
waitReturns = make(chan struct{})
runner.WhenWaitingFor(
fake_command_runner.CommandSpec{
Path: path.Join(containerPath, "bin", "oom"),
},
func(cmd *exec.Cmd) error {
<-waitReturns
return nil
},
)
})
AfterEach(func() {
close(waitReturns)
Eventually(oomChan).Should(BeClosed())
})
It("does not notify", func() {
Expect(oomNotifier.Watch(oNoom)).To(Succeed())
示例3:
time.Sleep(100 * time.Millisecond)
Expect(fakeRunner).ToNot(HaveStartedExecuting(
fake_command_runner.CommandSpec{
Path: binPath("iomux-link"),
},
), "Executed iomux-link too early!")
Expect(cmd.Stdout).ToNot(BeNil())
fakeRunner.WhenWaitingFor(
fake_command_runner.CommandSpec{
Path: binPath("iomux-link"),
},
func(*exec.Cmd) error {
close(done)
return nil
},
)
cmd.Stdout.Write([]byte("xxx\n"))
Eventually(fakeRunner).Should(HaveStartedExecuting(
fake_command_runner.CommandSpec{
Path: binPath("iomux-link"),
},
))
}()
return nil
示例4:
}(eventsCh, cmd.Stdout.(io.WriteCloser))
return nil
})
eventsNotifier = new(fakes.FakeEventsNotifier)
})
It("reports an event if one happens", func() {
defer close(eventsCh)
waitCh := make(chan struct{})
defer close(waitCh)
commandRunner.WhenWaitingFor(fake_command_runner.CommandSpec{
Path: "funC-events",
}, func(cmd *exec.Cmd) error {
<-waitCh
return nil
})
go runner.WatchEvents(logger, "some-container", eventsNotifier)
Consistently(eventsNotifier.OnEventCallCount).Should(Equal(0))
eventsCh <- `{"type":"oom"}`
Eventually(eventsNotifier.OnEventCallCount).Should(Equal(1))
handle, event := eventsNotifier.OnEventArgsForCall(0)
Expect(handle).To(Equal("some-container"))
Expect(event).To(Equal("Out of memory"))
eventsCh <- `{"type":"oom"}`
Eventually(eventsNotifier.OnEventCallCount).Should(Equal(2))
示例5:
))
})
It("returns error if fails to start a shell command", func() {
runner.WhenRunning(fake_command_runner.CommandSpec{}, func(*exec.Cmd) error {
return errors.New("what")
})
step := &containerizer.ShellRunnerStep{Runner: runner, Path: path}
err := step.Run()
Expect(err).To(HaveOccurred())
})
It("returns error if shell command does not exit 0", func() {
runner.WhenWaitingFor(fake_command_runner.CommandSpec{}, func(*exec.Cmd) error {
return errors.New("booo")
})
step := &containerizer.ShellRunnerStep{Runner: runner, Path: path}
err := step.Run()
Expect(err).To(HaveOccurred())
})
})
Context("when a given path does not exist", func() {
It("does not execute a shell command", func() {
step := &containerizer.ShellRunnerStep{Runner: runner, Path: "/whatever.sh"}
step.Run()
Expect(runner.StartedCommands()).To(HaveLen(0))
})