. "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/cloudfoundry/gunk/command_runner" "github.com/cloudfoundry/gunk/command_runner/fake_command_runner" . "github.com/cloudfoundry/gunk/command_runner/fake_command_runner/matchers" . "github.com/pivotal-cf-experimental/cf-probe/big_apps/helpers" ) var _ = Describe("Big Apps Helpers", func() { assetPath := "../../assets/big-app-base" Describe("Push", func() { It("calls 'gcf push' with the app name and path", func() { runner := fake_command_runner.New() app, err := NewBigApp(runner, assetPath, 0) Expect(err).To(BeNil()) app.Push() expectedCommand := fake_command_runner.CommandSpec{Path: "gcf", Args: []string{"push", app.Name, "-p", app.Location}} Expect(runner).To(HaveExecutedSerially(expectedCommand)) }) }) Describe("NewBigApp", func() { var app *BigApp BeforeEach(func() {
var _ = Describe("CgroupStarter", func() { var ( runner *fake_command_runner.FakeCommandRunner starter *rundmc.CgroupStarter procCgroups *FakeReadCloser tmpDir string ) BeforeEach(func() { var err error tmpDir, err = ioutil.TempDir("", "gdncgroup") Expect(err).NotTo(HaveOccurred()) runner = fake_command_runner.New() procCgroups = &FakeReadCloser{Buffer: bytes.NewBufferString("")} starter = &rundmc.CgroupStarter{ CgroupPath: path.Join(tmpDir, "cgroup"), CommandRunner: runner, ProcCgroups: procCgroups, } }) AfterEach(func() { os.RemoveAll(tmpDir) }) It("mkdirs the cgroup path", func() { starter.Start() Expect(path.Join(tmpDir, "cgroup")).To(BeADirectory())
It("should return the error", func() { Expect(aufsCake.Create(namespacedChildID, parentID, "")).To(Equal(testError)) }) It("should not unmount the parent", func() { Expect(aufsCake.Create(namespacedChildID, parentID, "")).To(Equal(testError)) Expect(cake.UnmountCallCount()).To(Equal(0)) }) }) Context("when getting parent's path succeeds", func() { var succeedingRunner *fake_command_runner.FakeCommandRunner BeforeEach(func() { succeedingRunner = fake_command_runner.New() succeedingRunner.WhenRunning(fake_command_runner.CommandSpec{}, func(cmd *exec.Cmd) error { return nil }) }) It("should unmount the parentID", func() { aufsCake.Runner = succeedingRunner Expect(aufsCake.Create(namespacedChildID, parentID, "")).To(Succeed()) Expect(cake.UnmountCallCount()).To(Equal(1)) Expect(cake.UnmountArgsForCall(0)).To(Equal(parentID)) }) It("should only unmount the parentID after mounting it", func() { cake.UnmountStub = func(id layercake.ID) error { Expect(cake.PathCallCount()).Should(BeNumerically(">", 0))