Memlock: uint64ptr(7), Msgqueue: uint64ptr(8), Nice: uint64ptr(9), Nofile: uint64ptr(10), Nproc: uint64ptr(11), Rss: uint64ptr(12), Rtprio: uint64ptr(13), Sigpending: uint64ptr(14), Stack: uint64ptr(15), }, }, garden.ProcessIO{}) Expect(err).ToNot(HaveOccurred()) Expect(fakeProcessTracker.RunCallCount()).To(Equal(1)) _, ranCmd, _, _, _ := fakeProcessTracker.RunArgsForCall(0) Expect(ranCmd.Path).To(Equal(containerDir + "/bin/wsh")) Expect(ranCmd.Args).To(Equal([]string{ containerDir + "/bin/wsh", "--socket", containerDir + "/run/wshd.sock", "--user", "alice", "--env", "env1=env1Value", "--env", "env2=env2Value", "/some/script", "arg1", "arg2", })) Expect(ranCmd.Env).To(Equal([]string{ "RLIMIT_AS=1",
return exec.Command("dosh", append([]string{path}, args...)...) } requestedIO := garden.ProcessIO{Stdout: gbytes.NewBuffer()} requestedTTY := &garden.TTYSpec{ WindowSize: &garden.WindowSize{1, 2}, } container.Run(garden.ProcessSpec{ Path: "some-path", Args: []string{"an-arg", "another-arg"}, TTY: requestedTTY, }, requestedIO) Expect(fakeProcessTracker.RunCallCount()).To(Equal(1)) _, cmd, io, tty, _ := fakeProcessTracker.RunArgsForCall(0) Expect(cmd.Path).To(Equal("dosh")) Expect(cmd.Args).To(Equal([]string{"dosh", "some-path", "an-arg", "another-arg"})) Expect(io).To(Equal(requestedIO)) Expect(tty).To(Equal(requestedTTY)) }) PIt("requests sequential process ids", func() {}) }) Describe("Attach", func() { It("attaches to the requested process", func() { requestedIO := garden.ProcessIO{Stdout: gbytes.NewBuffer()} container.Attach(33, requestedIO)
}, { ID: 5, TTY: true, }, }, }) Expect(err).ToNot(HaveOccurred()) _, err = container.Run(garden.ProcessSpec{ User: "******", Path: "/some/script", }, garden.ProcessIO{}) Expect(err).ToNot(HaveOccurred()) nextGuid, _, _, _, _ := fakeProcessTracker.RunArgsForCall(0) nextId, _ := strconv.Atoi(nextGuid) Expect(nextId).To(BeNumerically(">", 5)) }) It("restores the correct process signaller", func() { Expect(container.Restore(linux_backend.LinuxContainerSpec{ State: "active", Processes: []linux_backend.ActiveProcess{{ID: 0, TTY: false}}, Resources: containerResources, })).To(Succeed()) _, signaller := fakeProcessTracker.RestoreArgsForCall(0) Expect(signaller).To(BeAssignableToTypeOf(&process_tracker.LinkSignaller{})) })