github.com/schwarzm/garden-linux@v0.0.0-20150507151835-33bca2147c47/integration/lifecycle/process_test.go (about) 1 package lifecycle_test 2 3 import ( 4 "github.com/cloudfoundry-incubator/garden" 5 . "github.com/onsi/ginkgo" 6 . "github.com/onsi/gomega" 7 "github.com/onsi/gomega/gbytes" 8 ) 9 10 var _ = Describe("Process", func() { 11 12 var container garden.Container 13 14 BeforeEach(func() { 15 client = startGarden() 16 var err error 17 container, err = client.Create(garden.ContainerSpec{}) 18 Expect(err).ToNot(HaveOccurred()) 19 }) 20 21 Describe("signalling", func() { 22 23 It("a process can be sent SIGTERM immediately after having been started", func() { 24 stdout := gbytes.NewBuffer() 25 26 process, err := container.Run(garden.ProcessSpec{ 27 Path: "sh", 28 Args: []string{ 29 "-c", 30 ` 31 trap 'exit 42' SIGTERM 32 33 sleep 2 34 exit 12 35 `, 36 }, 37 }, garden.ProcessIO{ 38 Stdout: stdout, 39 }) 40 Expect(err).ToNot(HaveOccurred()) 41 42 err = process.Signal(garden.SignalTerminate) 43 Expect(err).ToNot(HaveOccurred()) 44 Expect(process.Wait()).To(Equal(42)) 45 }) 46 47 }) 48 49 })