本文整理汇总了Golang中github.com/cloudfoundry-incubator/garden/fakes.FakeContainer.RunStub方法的典型用法代码示例。如果您正苦于以下问题:Golang FakeContainer.RunStub方法的具体用法?Golang FakeContainer.RunStub怎么用?Golang FakeContainer.RunStub使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/cloudfoundry-incubator/garden/fakes.FakeContainer
的用法示例。
在下文中一共展示了FakeContainer.RunStub方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1:
fakeContainer.RunStub = func(spec garden.ProcessSpec, io garden.ProcessIO) (garden.Process, error) {
writing := new(sync.WaitGroup)
writing.Add(1)
go func() {
defer writing.Done()
defer GinkgoRecover()
_, err := fmt.Fprintf(io.Stdout, "stdout data")
Ω(err).ShouldNot(HaveOccurred())
in, err := ioutil.ReadAll(io.Stdin)
Ω(err).ShouldNot(HaveOccurred())
_, err = fmt.Fprintf(io.Stdout, "mirrored %s", string(in))
Ω(err).ShouldNot(HaveOccurred())
_, err = fmt.Fprintf(io.Stderr, "stderr data")
Ω(err).ShouldNot(HaveOccurred())
}()
process := new(fakes.FakeProcess)
process.IDReturns(42)
process.WaitStub = func() (int, error) {
writing.Wait()
return 123, nil
}
return process, nil
}
示例2:
Context("when a Run request is in-flight", func() {
It("does not wait for the request to complete", func(done Done) {
fakeContainer := new(fakes.FakeContainer)
fakeContainer.RunStub = func(spec garden.ProcessSpec, io garden.ProcessIO) (garden.Process, error) {
process := new(fakes.FakeProcess)
process.WaitStub = func() (int, error) {
time.Sleep(time.Minute)
return 0, nil
}
go func() {
defer GinkgoRecover()
_, err := io.Stdout.Write([]byte("msg 1\n"))
Ω(err).ShouldNot(HaveOccurred())
time.Sleep(time.Minute)
_, err = io.Stdout.Write([]byte("msg 2\n"))
Ω(err).ShouldNot(HaveOccurred())
}()
return process, nil
}
fakeBackend.CreateReturns(fakeContainer, nil)
clientContainer, err := apiClient.Create(garden.ContainerSpec{})
Ω(err).ShouldNot(HaveOccurred())