本文整理匯總了Golang中github.com/cloudfoundry/bosh-agent/internal/github.com/cloudfoundry/bosh-utils/system/fakes.FakeCmdRunner.AddCmdResult方法的典型用法代碼示例。如果您正苦於以下問題:Golang FakeCmdRunner.AddCmdResult方法的具體用法?Golang FakeCmdRunner.AddCmdResult怎麽用?Golang FakeCmdRunner.AddCmdResult使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/cloudfoundry/bosh-agent/internal/github.com/cloudfoundry/bosh-utils/system/fakes.FakeCmdRunner
的用法示例。
在下文中一共展示了FakeCmdRunner.AddCmdResult方法的14個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1:
var _ = Describe("MonitRetryable", func() {
var (
cmdRunner *fakesys.FakeCmdRunner
monitRetryable boshretry.Retryable
)
BeforeEach(func() {
cmdRunner = fakesys.NewFakeCmdRunner()
monitRetryable = NewMonitRetryable(cmdRunner)
})
Describe("Attempt", func() {
Context("when starting monit fails", func() {
BeforeEach(func() {
cmdRunner.AddCmdResult("sv start monit", fakesys.FakeCmdResult{
ExitStatus: 255,
Error: errors.New("fake-start-monit-error"),
})
})
It("is retryable and returns err", func() {
isRetryable, err := monitRetryable.Attempt()
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fake-start-monit-error"))
Expect(isRetryable).To(BeTrue())
Expect(len(cmdRunner.RunCommands)).To(Equal(1))
Expect(cmdRunner.RunCommands[0]).To(Equal([]string{"sv", "start", "monit"}))
})
})
Context("when starting succeeds", func() {
BeforeEach(func() {
示例2:
Describe("Run", func() {
var (
params fakeParams
)
BeforeEach(func() {
params = fakeParams{
jobChange: "job_shutdown",
hashChange: "hash_unchanged",
updatedPackages: []string{"foo", "bar"},
}
})
It("runs drain script", func() {
commandResult := fakesys.FakeCmdResult{Stdout: "1"}
runner.AddCmdResult("/fake/script job_shutdown hash_unchanged foo bar", commandResult)
_, err := script.Run(params)
Expect(err).ToNot(HaveOccurred())
expectedCmd := boshsys.Command{
Name: "/fake/script",
Args: []string{"job_shutdown", "hash_unchanged", "foo", "bar"},
Env: map[string]string{
"PATH": "/usr/sbin:/usr/bin:/sbin:/bin",
},
}
Expect(len(runner.RunComplexCommands)).To(Equal(1))
Expect(runner.RunComplexCommands[0]).To(Equal(expectedCmd))
})
示例3:
var _ = Describe("sfdiskPartitioner", func() {
var (
runner *fakesys.FakeCmdRunner
partitioner Partitioner
)
BeforeEach(func() {
runner = fakesys.NewFakeCmdRunner()
logger := boshlog.NewLogger(boshlog.LevelNone)
partitioner = NewSfdiskPartitioner(logger, runner)
})
It("sfdisk partition", func() {
runner.AddCmdResult("sfdisk -d /dev/sda", fakesys.FakeCmdResult{Stdout: devSdaSfdiskEmptyDump})
partitions := []Partition{
{Type: PartitionTypeSwap, SizeInBytes: 512 * 1024 * 1024},
{Type: PartitionTypeLinux, SizeInBytes: 1024 * 1024 * 1024},
{Type: PartitionTypeLinux, SizeInBytes: 512 * 1024 * 1024},
}
partitioner.Partition("/dev/sda", partitions)
Expect(1).To(Equal(len(runner.RunCommandsWithInput)))
Expect(runner.RunCommandsWithInput[0]).To(Equal([]string{",512,S\n,1024,L\n,,L\n", "sfdisk", "-uM", "/dev/sda"}))
})
It("sfdisk partition with no partition table", func() {
runner.AddCmdResult("sfdisk -d /dev/sda", fakesys.FakeCmdResult{Stderr: devSdaSfdiskNotableDumpStderr})
示例4: describeLinuxPlatform
//.........這裏部分代碼省略.........
Expect(partitioner.PartitionCalled).To(BeFalse())
Expect(formatter.FormatCalled).To(BeFalse())
Expect(mounter.MountCalled).To(BeFalse())
})
})
Context("when root partition is not the first partition", func() {
BeforeEach(func() {
diskManager.FakeMountsSearcher.SearchMountsMounts = []boshdisk.Mount{
{MountPoint: "/", PartitionPath: "/dev/vda2"},
}
})
It("returns an error", func() {
err := act()
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("Root partition is not the first partition"))
Expect(partitioner.PartitionCalled).To(BeFalse())
Expect(formatter.FormatCalled).To(BeFalse())
Expect(mounter.MountCalled).To(BeFalse())
})
})
Context("when root device is determined", func() {
BeforeEach(func() {
diskManager.FakeMountsSearcher.SearchMountsMounts = []boshdisk.Mount{
{MountPoint: "/", PartitionPath: "rootfs"},
{MountPoint: "/", PartitionPath: "/dev/vda1"},
}
})
Context("when getting absolute path fails", func() {
BeforeEach(func() {
cmdRunner.AddCmdResult(
"readlink -f /dev/vda1",
fakesys.FakeCmdResult{Error: errors.New("fake-readlink-error")},
)
})
It("returns an error", func() {
err := act()
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fake-readlink-error"))
Expect(partitioner.PartitionCalled).To(BeFalse())
Expect(formatter.FormatCalled).To(BeFalse())
Expect(mounter.MountCalled).To(BeFalse())
})
})
Context("when getting absolute path suceeds", func() {
BeforeEach(func() {
cmdRunner.AddCmdResult(
"readlink -f /dev/vda1",
fakesys.FakeCmdResult{Stdout: "/dev/vda1"},
)
})
Context("when root device has insufficient space for ephemeral partitions", func() {
BeforeEach(func() {
partitioner.GetDeviceSizeInBytesSizes["/dev/vda"] = 1024*1024*1024 - 1
collector.MemStats.Total = 8
})
It("returns an error", func() {
err := act()
Expect(err).To(HaveOccurred())
示例5:
Expect(ip).To(Equal("74.125.239.101"))
})
})
Context("when host is not an ip", func() {
It("returns 127.0.0.1 for 'localhost'", func() {
ip, err := resolver.LookupHost([]string{"8.8.8.8"}, "localhost")
Expect(err).ToNot(HaveOccurred())
Expect(ip).To(Equal("127.0.0.1"))
})
It("returns ip for resolved host", func() {
digResult := fakesys.FakeCmdResult{
Stdout: "74.125.19.99",
}
runner.AddCmdResult("dig @8.8.8.8 google.com. +short +time=1", digResult)
ip, err := resolver.LookupHost([]string{"8.8.8.8"}, "google.com.")
Expect(err).ToNot(HaveOccurred())
Expect(ip).To(Equal("74.125.19.99"))
})
It("returns ip for resolved host after failing and then succeeding", func() {
digResult := fakesys.FakeCmdResult{
Stdout: "74.125.19.99",
}
runner.AddCmdResult("dig @8.8.8.8 google.com. +short +time=1", digResult)
ip, err := resolver.LookupHost([]string{"127.0.0.127", "8.8.8.8"}, "google.com.")
Expect(err).ToNot(HaveOccurred())
Expect(ip).To(Equal("74.125.19.99"))
})
示例6:
It("returns an error if it fails to open stdout/stderr log file", func() {
fs.OpenFileErr = errors.New("fake-open-file-error")
runScriptResult := genericScript.Run()
Expect(runScriptResult.Tag).To(Equal("my-tag"))
Expect(runScriptResult.Error.Error()).To(Equal("fake-open-file-error"))
})
Context("when command succeeds", func() {
BeforeEach(func() {
cmdRunner.AddCmdResult("/path-to-script", fakesys.FakeCmdResult{
Stdout: "fake-stdout",
Stderr: "fake-stderr",
ExitStatus: 0,
Error: nil,
})
})
It("saves stdout/stderr to log file", func() {
runScriptResult := genericScript.Run()
Expect(runScriptResult.Tag).To(Equal("my-tag"))
Expect(runScriptResult.Error).To(BeNil())
Expect(fs.FileExists(stdoutLogPath)).To(BeTrue())
Expect(fs.FileExists(stderrLogPath)).To(BeTrue())
stdout, err := fs.ReadFileString(stdoutLogPath)
Expect(err).ToNot(HaveOccurred())
示例7:
var (
runner *fakesys.FakeCmdRunner
searcher MountsSearcher
)
BeforeEach(func() {
runner = fakesys.NewFakeCmdRunner()
searcher = NewCmdMountsSearcher(runner)
})
Describe("SearchMounts", func() {
Context("when running command succeeds", func() {
It("returns parsed mount information", func() {
runner.AddCmdResult("mount", fakesys.FakeCmdResult{
Stdout: `devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
/dev/sda1 on /boot type ext2 (rw)
none on /tmp/warden/cgroup type tmpfs (rw)`,
})
mounts, err := searcher.SearchMounts()
Expect(err).ToNot(HaveOccurred())
Expect(mounts).To(Equal([]Mount{
Mount{PartitionPath: "devpts", MountPoint: "/dev/pts"},
Mount{PartitionPath: "tmpfs", MountPoint: "/run"},
Mount{PartitionPath: "/dev/sda1", MountPoint: "/boot"},
Mount{PartitionPath: "none", MountPoint: "/tmp/warden/cgroup"},
}))
})
It("ignores empty lines", func() {
runner.AddCmdResult("mount", fakesys.FakeCmdResult{
示例8: describeUbuntuNetManager
//.........這裏部分代碼省略.........
iface lo inet loopback
auto ethstatic
iface ethstatic inet static
address 2.2.2.2
network 2.2.2.0
netmask 255.255.255.0
broadcast 2.2.2.255
gateway 3.4.5.6
`
Expect(networkConfig.StringContents()).To(Equal(expectedNetworkConfiguration))
})
It("configures network for a single physical device, when a virtual device is also present", func() {
staticNetworkWithoutMAC := boshsettings.Network{
Type: "manual",
IP: "2.2.2.2",
Netmask: "255.255.255.0",
Gateway: "3.4.5.6",
}
stubInterfacesWithVirtual(
map[string]boshsettings.Network{
"ethstatic": staticNetwork,
},
[]string{"virtual"},
)
err := netManager.SetupNetworking(boshsettings.Networks{
"static-network": staticNetworkWithoutMAC,
}, nil)
Expect(err).ToNot(HaveOccurred())
networkConfig := fs.GetFileTestStat("/etc/network/interfaces")
Expect(networkConfig).ToNot(BeNil())
expectedNetworkConfiguration := `# Generated by bosh-agent
auto lo
iface lo inet loopback
auto ethstatic
iface ethstatic inet static
address 2.2.2.2
network 2.2.2.0
netmask 255.255.255.0
broadcast 2.2.2.255
gateway 3.4.5.6
`
Expect(networkConfig.StringContents()).To(Equal(expectedNetworkConfiguration))
})
})
})
Describe("GetConfiguredNetworkInterfaces", func() {
Context("when there are network devices", func() {
BeforeEach(func() {
interfacePaths := []string{}
interfacePaths = append(interfacePaths, writeNetworkDevice("fake-eth0", "aa:bb", true))
interfacePaths = append(interfacePaths, writeNetworkDevice("fake-eth1", "cc:dd", true))
interfacePaths = append(interfacePaths, writeNetworkDevice("fake-eth2", "ee:ff", true))
fs.SetGlob("/sys/class/net/*", interfacePaths)
})
It("returns networks that are defined in /etc/network/interfaces", func() {
cmdRunner.AddCmdResult("ifup --no-act fake-eth0", fakesys.FakeCmdResult{
Stdout: "",
Stderr: "ifup: interface fake-eth0 already configured",
ExitStatus: 0,
})
cmdRunner.AddCmdResult("ifup --no-act fake-eth1", fakesys.FakeCmdResult{
Stdout: "",
Stderr: "Ignoring unknown interface fake-eth1=fake-eth1.",
ExitStatus: 0,
})
cmdRunner.AddCmdResult("ifup --no-act fake-eth2", fakesys.FakeCmdResult{
Stdout: "",
Stderr: "ifup: interface fake-eth2 already configured",
ExitStatus: 0,
})
interfaces, err := netManager.GetConfiguredNetworkInterfaces()
Expect(err).ToNot(HaveOccurred())
Expect(interfaces).To(ConsistOf("fake-eth0", "fake-eth2"))
})
})
Context("when there are no network devices", func() {
It("returns empty list", func() {
interfaces, err := netManager.GetConfiguredNetworkInterfaces()
Expect(err).ToNot(HaveOccurred())
Expect(interfaces).To(Equal([]string{}))
})
})
})
}
示例9:
runner *fakesys.FakeCmdRunner
searcher RoutesSearcher
)
BeforeEach(func() {
runner = fakesys.NewFakeCmdRunner()
searcher = NewCmdRoutesSearcher(runner)
})
Describe("SearchRoutes", func() {
Context("when running command succeeds", func() {
It("returns parsed routes information", func() {
runner.AddCmdResult("route -n", fakesys.FakeCmdResult{
Stdout: `Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.79.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 172.16.79.1 0.0.0.0 UG 0 0 0 eth0
`,
})
routes, err := searcher.SearchRoutes()
Expect(err).ToNot(HaveOccurred())
Expect(routes).To(Equal([]Route{
Route{Destination: "172.16.79.0", Gateway: "0.0.0.0", InterfaceName: "eth0"},
Route{Destination: "169.254.0.0", Gateway: "0.0.0.0", InterfaceName: "eth0"},
Route{Destination: "0.0.0.0", Gateway: "172.16.79.1", InterfaceName: "eth0"},
}))
})
It("ignores empty lines", func() {
runner.AddCmdResult("route -n", fakesys.FakeCmdResult{
示例10:
Expect(fileName).To(BeEmpty())
})
It("external get errs when external cli errs", func() {
tempFile, err := fs.TempFile("bosh-blobstore-external-TestGetErrsWhenExternalCliErrs")
Expect(err).ToNot(HaveOccurred())
fs.ReturnTempFile = tempFile
defer fs.RemoveAll(tempFile.Name())
expectedCmd := []string{
"bosh-blobstore-fake-provider", "-c", configPath, "get",
"fake-blob-id",
tempFile.Name(),
}
runner.AddCmdResult(strings.Join(expectedCmd, " "), fakesys.FakeCmdResult{Error: errors.New("fake-error")})
fileName, err := blobstore.Get("fake-blob-id", "")
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fake-error"))
Expect(fileName).To(BeEmpty())
Expect(fs.FileExists(tempFile.Name())).To(BeFalse())
})
})
Describe("CleanUp", func() {
It("external clean up", func() {
file, err := fs.TempFile("bosh-blobstore-external-TestCleanUp")
Expect(err).ToNot(HaveOccurred())
fileName := file.Name()
示例11:
Expect(err).To(HaveOccurred())
})
})
})
Describe("Mount", func() {
var (
mountResults fakesys.FakeCmdResult
)
BeforeEach(func() {
mountResults = fakesys.FakeCmdResult{}
})
JustBeforeEach(func() {
runner.AddCmdResult("mount /dev/sr0 /fake/settings/path", mountResults)
})
It("runs the mount command", func() {
err := cd.Mount("/fake/settings/path")
Expect(err).NotTo(HaveOccurred())
Expect(runner.RunCommands).To(Equal([][]string{{"mount", "/dev/sr0", "/fake/settings/path"}}))
})
Context("when mount command errors", func() {
BeforeEach(func() {
mountResults = fakesys.FakeCmdResult{
Stderr: "failed to mount",
Error: errors.New("exit 1"),
}
})
示例12:
newSpec := exampleSpec()
s := newSpec.PackageSpecs["foo"]
s.Sha1 = "foo_updated_sha1"
newSpec.PackageSpecs["foo"] = s
s = newSpec.PackageSpecs["bar"]
s.Sha1 = "bar_updated_sha1"
newSpec.PackageSpecs["bar"] = s
params = NewUpdateParams(oldSpec, newSpec)
})
It("runs drain script", func() {
commandResult := fakesys.FakeCmdResult{Stdout: "1"}
runner.AddCmdResult("/fake/script job_unchanged hash_unchanged bar foo", commandResult)
err := script.Run()
Expect(err).ToNot(HaveOccurred())
expectedCmd := boshsys.Command{
Name: "/fake/script",
Args: []string{"job_unchanged", "hash_unchanged", "bar", "foo"},
Env: map[string]string{
"PATH": "/usr/sbin:/usr/bin:/sbin:/bin",
"BOSH_JOB_STATE": "{\"persistent_disk\":42}",
"BOSH_JOB_NEXT_STATE": "{\"persistent_disk\":42}",
},
}
Expect(len(runner.RunComplexCommands)).To(Equal(1))
示例13:
fakeFs.SetGlob(fmt.Sprintf("%s/bosh-trusted-cert-*", certBasePath), []string{
fmt.Sprintf("%s/bosh-trusted-cert-1.crt", certBasePath),
})
err := certManager.UpdateCertificates("")
Expect(err).To(HaveOccurred())
})
}
Context("Ubuntu", func() {
BeforeEach(func() {
fakeFs = fakesys.NewFakeFileSystem()
fakeCmd = fakesys.NewFakeCmdRunner()
fakeCmd.AddCmdResult("/usr/sbin/update-ca-certificates", fakesys.FakeCmdResult{
Stdout: "",
Stderr: "",
ExitStatus: 0,
Sticky: true,
})
certManager = cert.NewUbuntuCertManager(fakeFs, fakeCmd, log)
})
SharedLinuxCertManagerExamples("/usr/local/share/ca-certificates", "/usr/sbin/update-ca-certificates")
// TODO this test can be shared if there is a way to update existing FakeCmdRunner command specs
It("executes update cert command", func() {
fakeCmd = fakesys.NewFakeCmdRunner()
fakeCmd.AddCmdResult("/usr/sbin/update-ca-certificates -f", fakesys.FakeCmdResult{
Stdout: "",
Stderr: "",
ExitStatus: 2,
Error: errors.New("command failed"),
示例14:
Expect(actualCmd.WorkingDir).To(Equal("/fake-working-dir"))
})
It("returns an error if it fails to save output", func() {
fs.OpenFileErr = errors.New("fake-open-file-error")
_, err := runner.RunCommand("fake-log-dir-name", "fake-log-file-name", cmd)
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fake-open-file-error"))
})
Context("when command succeeds", func() {
BeforeEach(func() {
cmdRunner.AddCmdResult("fake-cmd fake-args", fakesys.FakeCmdResult{
Stdout: "fake-stdout",
Stderr: "fake-stderr",
ExitStatus: 0,
})
})
It("returns correct result", func() {
expectedResult := &CmdResult{
IsStdoutTruncated: false,
Stdout: []byte("fake-stdout"),
Stderr: []byte("fake-stderr"),
ExitStatus: 0,
}
result, err := runner.RunCommand("fake-log-dir-name", "fake-log-file-name", cmd)
Expect(err).ToNot(HaveOccurred())
Expect(result).To(Equal(expectedResult))