func NewLinuxContainer( id, handle, path string, properties warden.Properties, graceTime time.Duration, resources *Resources, portPool PortPool, runner command_runner.CommandRunner, cgroupsManager cgroups_manager.CgroupsManager, quotaManager quota_manager.QuotaManager, bandwidthManager bandwidth_manager.BandwidthManager, ) *LinuxContainer { return &LinuxContainer{ id: id, handle: handle, path: path, properties: properties, graceTime: graceTime, state: StateBorn, events: []string{}, resources: resources, portPool: portPool, runner: runner, cgroupsManager: cgroupsManager, quotaManager: quotaManager, bandwidthManager: bandwidthManager, processTracker: process_tracker.New(path, runner), } }
fakeRunner.WhenRunning( fake_command_runner.CommandSpec{ Path: binPath("iomux-spawn"), }, func(cmd *exec.Cmd) error { cmd.Stdout.Write([]byte("ready\n")) cmd.Stdout.Write([]byte("active\n")) return nil }, ) } var _ = Describe("Running processes", func() { BeforeEach(func() { fakeRunner = fake_command_runner.New() processTracker = process_tracker.New("/depot/some-id", fakeRunner) }) It("runs the command asynchronously via iomux-spawn", func() { cmd := &exec.Cmd{Path: "/bin/bash"} cmd.Stdin = bytes.NewBufferString("echo hi") setupSuccessfulSpawn() processID, _, err := processTracker.Run(cmd) Expect(err).NotTo(HaveOccurred()) Eventually(fakeRunner).Should(HaveBackgrounded( fake_command_runner.CommandSpec{ Path: binPath("iomux-spawn"),