func NewLinuxContainer( id, handle, path string, 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, graceTime: graceTime, state: StateBorn, events: []string{}, resources: resources, portPool: portPool, runner: runner, cgroupsManager: cgroupsManager, quotaManager: quotaManager, bandwidthManager: bandwidthManager, jobTracker: job_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("Spawning jobs", func() { BeforeEach(func() { fakeRunner = fake_command_runner.New() jobTracker = job_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() jobID, _ := jobTracker.Spawn(cmd, false, true) Eventually(fakeRunner).Should(HaveStartedExecuting( fake_command_runner.CommandSpec{ Path: binPath("iomux-spawn"), Args: []string{