import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "time" "github.com/cloudfoundry-incubator/garden/server/bomberman" "github.com/cloudfoundry-incubator/garden/warden" "github.com/cloudfoundry-incubator/garden/warden/fake_backend" ) var _ = Describe("Bomberman", func() { It("straps a bomb to the given container with the container's grace time as the countdown", func() { detonated := make(chan warden.Container) bomberman := bomberman.New(fake_backend.New(), func(container warden.Container) { detonated <- container }) container := fake_backend.NewFakeContainer( warden.ContainerSpec{ GraceTime: 100 * time.Millisecond, Handle: "doomed", }, ) bomberman.Strap(container) select { case <-detonated: case <-time.After(container.GraceTime() + 50*time.Millisecond):
protocol "github.com/cloudfoundry-incubator/garden/protocol" "github.com/cloudfoundry-incubator/garden/server" "github.com/cloudfoundry-incubator/garden/transport" "github.com/cloudfoundry-incubator/garden/warden" "github.com/cloudfoundry-incubator/garden/warden/fake_backend" ) var _ = Describe("The Warden server", func() { Context("when passed a socket", func() { It("listens on the given socket path and chmods it to 0777", func() { tmpdir, err := ioutil.TempDir(os.TempDir(), "warden-server-test") Expect(err).ToNot(HaveOccurred()) socketPath := path.Join(tmpdir, "warden.sock") wardenServer := server.New("unix", socketPath, 0, fake_backend.New()) err = wardenServer.Start() Expect(err).ToNot(HaveOccurred()) Eventually(ErrorDialing("unix", socketPath)).ShouldNot(HaveOccurred()) stat, err := os.Stat(socketPath) Expect(err).ToNot(HaveOccurred()) Expect(int(stat.Mode() & 0777)).To(Equal(0777)) }) It("deletes the socket file if it is already there", func() { tmpdir, err := ioutil.TempDir(os.TempDir(), "warden-server-test") Expect(err).ToNot(HaveOccurred())