本文整理汇总了Golang中github.com/cloudfoundry/bosh-agent/agent/action/fakes.FakeClock.SleepCallCount方法的典型用法代码示例。如果您正苦于以下问题:Golang FakeClock.SleepCallCount方法的具体用法?Golang FakeClock.SleepCallCount怎么用?Golang FakeClock.SleepCallCount使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/cloudfoundry/bosh-agent/agent/action/fakes.FakeClock
的用法示例。
在下文中一共展示了FakeClock.SleepCallCount方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1:
for i := 0; i < 19; i++ {
testError := fmt.Errorf("test error")
runner.AddCmdResult(",,L\n sfdisk -uM /dev/sda", fakesys.FakeCmdResult{ExitStatus: 1, Error: testError})
}
runner.AddCmdResult("sfdisk -d /dev/sda", fakesys.FakeCmdResult{Stdout: devSdaSfdiskDumpOnePartition})
runner.AddCmdResult("sfdisk -s /dev/sda", fakesys.FakeCmdResult{Stdout: "1048576"})
runner.AddCmdResult(",,L\n sfdisk -uM /dev/sda", fakesys.FakeCmdResult{Stdout: devSdaSfdiskDumpOnePartition})
partitions := []Partition{
{Type: PartitionTypeLinux},
}
err := partitioner.Partition("/dev/sda", partitions)
Expect(err).To(BeNil())
Expect(fakeclock.SleepCallCount()).To(Equal(19))
Expect(len(runner.RunCommandsWithInput)).To(Equal(20))
})
It("dmsetup command is retried 20 times", func() {
runner.AddCmdResult("sfdisk -d /dev/mapper/xxxxxx", fakesys.FakeCmdResult{Stdout: devSdaSfdiskDumpOnePartition})
for i := 0; i < 19; i++ {
testError := fmt.Errorf("test error")
runner.AddCmdResult("dmsetup ls", fakesys.FakeCmdResult{ExitStatus: 1, Error: testError})
}
runner.AddCmdResult("dmsetup ls", fakesys.FakeCmdResult{Stdout: expectedDmSetupLs})
runner.AddCmdResult("sfdisk -s /dev/mapper/xxxxxx", fakesys.FakeCmdResult{Stdout: "1048576"})
partitions := []Partition{
{Type: PartitionTypeLinux},
}
示例2:
"BOSH_JOB_STATE": "{\"persistent_disk\":42}",
"BOSH_JOB_NEXT_STATE": "{\"persistent_disk\":42}",
},
}
Expect(len(runner.RunComplexCommands)).To(Equal(1))
Expect(runner.RunComplexCommands[0]).To(Equal(expectedCmd))
})
It("sleeps when script returns a positive integer", func() {
runner.AddProcess("/fake/script job_unchanged hash_unchanged bar foo",
&fakesys.FakeProcess{WaitResult: boshsys.Result{Stdout: "12"}})
err := script.Run()
Expect(err).ToNot(HaveOccurred())
Expect(fakeClock.SleepCallCount()).To(Equal(1))
Expect(fakeClock.SleepArgsForCall(0)).To(Equal(12 * time.Second))
})
It("sleeps then calls the script again as long as script returns a negative integer", func() {
runner.AddProcess("/fake/script job_unchanged hash_unchanged bar foo",
&fakesys.FakeProcess{WaitResult: boshsys.Result{Stdout: "-5"}})
runner.AddProcess("/fake/script job_check_status hash_unchanged",
&fakesys.FakeProcess{WaitResult: boshsys.Result{Stdout: "-5"}})
runner.AddProcess("/fake/script job_check_status hash_unchanged",
&fakesys.FakeProcess{WaitResult: boshsys.Result{Stdout: "-5"}})
runner.AddProcess("/fake/script job_check_status hash_unchanged",
&fakesys.FakeProcess{WaitResult: boshsys.Result{Stdout: "0"}})
err := script.Run()
Expect(err).ToNot(HaveOccurred())
示例3:
Eventually(errChan).Should(Receive(Equal(lastError)))
Expect(retryable.Response().Body.(ClosedChecker).Closed()).To(BeTrue())
})
})
})
It("waits for retry delay between retries", func() {
for i := 0; i < maxUnavailableAttempts+maxOtherAttempts; i++ {
retryable.AddAttemptBehavior(unavailable, true, lastError)
}
errChan := tryInBackground(monitRetryStrategy)
Eventually(errChan).Should(Receive(Equal(lastError)))
Expect(timeService.SleepCallCount()).To(Equal(maxUnavailableAttempts + maxOtherAttempts))
})
Context("when error is not due to failed response", func() {
It("retries until maxOtherAttempts are exhausted", func() {
for i := 0; i < maxOtherAttempts-1; i++ {
retryable.AddAttemptBehavior(nil, true, errors.New("request error"))
}
retryable.AddAttemptBehavior(nil, true, lastError)
errChan := tryInBackground(monitRetryStrategy)
Eventually(errChan).Should(Receive(Equal(lastError)))
Expect(retryable.Attempts()).To(Equal(maxOtherAttempts))
})
})