err = os.MkdirAll(filepath.Join(tmpdir, "bin"), 0755) Expect(err).ToNot(HaveOccurred()) processTracker = process_tracker.New(tmpdir, iodaemonBin, linux_command_runner.New()) }) AfterEach(func() { os.RemoveAll(tmpdir) }) Describe("Running processes", func() { It("runs the process and returns its exit code", func() { cmd := exec.Command("bash", "-c", "exit 42") process, err := processTracker.Run("555", cmd, garden.ProcessIO{}, nil, nil) Expect(err).NotTo(HaveOccurred()) status, err := process.Wait() Expect(err).ToNot(HaveOccurred()) Expect(status).To(Equal(42)) }) It("runs the process in the specified directory", func() { tmpDir, err := ioutil.TempDir("", "") Expect(err).NotTo(HaveOccurred()) cmd := exec.Command("bash", "-c", "pwd") cmd.Dir = tmpDir stdout := gbytes.NewBuffer()
iodaemon, err := gexec.Build("github.com/cloudfoundry-incubator/garden-linux/iodaemon/cmd/iodaemon") Expect(err).ToNot(HaveOccurred()) processTracker = process_tracker.New(tmpdir, iodaemon, linux_command_runner.New()) }) AfterEach(func() { os.RemoveAll(tmpdir) }) Describe("Running processes", func() { It("runs the process and returns its exit code", func() { cmd := exec.Command("bash", "-c", "exit 42") process, err := processTracker.Run(555, cmd, garden.ProcessIO{}, nil, signaller) Expect(err).NotTo(HaveOccurred()) status, err := process.Wait() Expect(err).ToNot(HaveOccurred()) Expect(status).To(Equal(42)) }) Describe("signalling a running process", func() { var ( process garden.Process stdout *gbytes.Buffer cmd *exec.Cmd ) JustBeforeEach(func() {