github.com/schwarzm/garden-linux@v0.0.0-20150507151835-33bca2147c47/integration/lifecycle/grace_time_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  )
     8  
     9  var _ = Describe("A container with a grace time", func() {
    10  	var container garden.Container
    11  
    12  	BeforeEach(func() {
    13  		client = startGarden("--containerGraceTime", "3s")
    14  
    15  		var err error
    16  
    17  		container, err = client.Create(garden.ContainerSpec{})
    18  		Expect(err).ToNot(HaveOccurred())
    19  	})
    20  
    21  	Context("when a request takes longer than the grace time", func() {
    22  		It("is not destroyed after the request is over", func() {
    23  			process, err := container.Run(garden.ProcessSpec{
    24  				Path: "sleep",
    25  				Args: []string{"5"},
    26  			}, garden.ProcessIO{})
    27  			Expect(err).ToNot(HaveOccurred())
    28  
    29  			Expect(process.Wait()).To(Equal(0))
    30  
    31  			_, err = container.Info()
    32  			Expect(err).ToNot(HaveOccurred())
    33  		})
    34  	})
    35  
    36  	Context("when no requests are made for longer than the grace time", func() {
    37  		It("is destroyed", func() {
    38  			Eventually(func() error {
    39  				_, err := client.Lookup(container.Handle())
    40  				return err
    41  			}, 10, 1).Should(HaveOccurred())
    42  		})
    43  	})
    44  })