"path/filepath" "strconv" "syscall" "code.cloudfoundry.org/garden" "code.cloudfoundry.org/guardian/gqt/runner" . "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo/extensions/table" . "github.com/onsi/gomega" "github.com/onsi/gomega/gbytes" "github.com/onsi/gomega/gexec" "github.com/onsi/gomega/types" ) var _ = Describe("Run", func() { var client *runner.RunningGarden AfterEach(func() { Expect(client.DestroyAndStop()).To(Succeed()) }) DescribeTable("running a process", func(spec garden.ProcessSpec, matchers ...func(actual interface{})) { client = startGarden() container, err := client.Create(garden.ContainerSpec{}) Expect(err).NotTo(HaveOccurred()) out := gbytes.NewBuffer() proc, err := container.Run( spec, garden.ProcessIO{
"path" "path/filepath" "code.cloudfoundry.org/garden" "code.cloudfoundry.org/guardian/gqt/runner" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/onsi/gomega/gbytes" ) var _ = Describe("graph flags", func() { var ( client *runner.RunningGarden layersPath string diffPath string mntPath string nonDefaultRootfsPath string args []string persistentImages []string ) numLayersInGraph := func() int { layerFiles, err := ioutil.ReadDir(layersPath) Expect(err).ToNot(HaveOccurred()) diffFiles, err := ioutil.ReadDir(diffPath) Expect(err).ToNot(HaveOccurred()) mntFiles, err := ioutil.ReadDir(mntPath) Expect(err).ToNot(HaveOccurred()) numLayerFiles := len(layerFiles) Expect(numLayerFiles).To(Equal(len(diffFiles)))
"net" "os" "os/exec" "path" "path/filepath" "code.cloudfoundry.org/garden" "code.cloudfoundry.org/guardian/gqt/runner" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/onsi/gomega/gbytes" ) var _ = Describe("Surviving Restarts", func() { var ( args []string client *runner.RunningGarden ) BeforeEach(func() { args = []string{} }) JustBeforeEach(func() { client = startGarden(args...) }) AfterEach(func() { Expect(client.DestroyAndStop()).To(Succeed()) }) const (
func restartGarden(client *runner.RunningGarden, argv ...string) { Expect(client.Ping()).To(Succeed(), "tried to restart garden while it was not running") Expect(client.Stop()).To(Succeed()) client = startGarden(argv...) }
"strconv" "code.cloudfoundry.org/garden" "code.cloudfoundry.org/guardian/gqt/runner" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Port Pool", func() { Context("when the port pool is exhausted by container creation", func() { var ( portPoolStart int containers []garden.Container client *runner.RunningGarden expectedPort uint32 args []string propsPoolDir string numContainers int = 2 ) JustBeforeEach(func() { var err error portPoolStart = GinkgoParallelNode() * 10000 propsPoolDir, err = ioutil.TempDir("", "portpool") Expect(err).NotTo(HaveOccurred()) args = []string{ "--port-pool-size", strconv.Itoa(numContainers), "--port-pool-properties-path", filepath.Join(propsPoolDir, "props.json"), "--port-pool-start", strconv.Itoa(portPoolStart), }
"code.cloudfoundry.org/garden" "code.cloudfoundry.org/guardian/gardener" "code.cloudfoundry.org/guardian/gqt/runner" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/onsi/gomega/gbytes" "github.com/onsi/gomega/gexec" ) var _ = Describe("Networking", func() { var ( client *runner.RunningGarden container garden.Container containerNetwork string args []string exampleDotCom net.IP extraProperties garden.Properties ) BeforeEach(func() { args = []string{} containerNetwork = fmt.Sprintf("192.168.%d.0/24", 12+GinkgoParallelNode()) var ips []net.IP Eventually(func() error { var err error ips, err = net.LookupIP("www.example.com") return err
package gqt_test import ( "io" "code.cloudfoundry.org/garden" "code.cloudfoundry.org/guardian/gqt/runner" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/onsi/gomega/gbytes" ) var _ = Describe("Security", func() { var ( client *runner.RunningGarden args []string ) BeforeEach(func() { args = []string{} }) JustBeforeEach(func() { client = startGarden(args...) }) AfterEach(func() { Expect(client.DestroyAndStop()).To(Succeed()) }) Describe("Apparmor", func() {
"io/ioutil" "os" "path/filepath" "code.cloudfoundry.org/garden" "code.cloudfoundry.org/guardian/gqt/runner" . "code.cloudfoundry.org/guardian/matchers" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" archiver "github.com/pivotal-golang/archiver/extractor/test_helper" ) var _ = Describe("Streaming", func() { var ( client *runner.RunningGarden container garden.Container ) BeforeEach(func() { var err error client = startGarden() container, err = client.Create(garden.ContainerSpec{}) Expect(err).NotTo(HaveOccurred()) }) AfterEach(func() { Expect(client.DestroyAndStop()).To(Succeed()) })
"path" "path/filepath" "time" "code.cloudfoundry.org/garden" "code.cloudfoundry.org/guardian/gqt/runner" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/onsi/gomega/gbytes" "github.com/onsi/gomega/gexec" ) var _ = Describe("Destroying a Container", func() { var ( args []string client *runner.RunningGarden ) BeforeEach(func() { args = []string{"--debug-bind-ip", "0.0.0.0", "--debug-bind-port", fmt.Sprintf("%d", 8080+GinkgoParallelNode())} }) JustBeforeEach(func() { client = startGarden(args...) }) AfterEach(func() { Expect(client.DestroyAndStop()).To(Succeed()) }) It("should not leak goroutines", func() {
package gqt_test import ( "code.cloudfoundry.org/guardian/gqt/runner" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Garden API", func() { var ( args []string client *runner.RunningGarden ) BeforeEach(func() { args = []string{} }) JustBeforeEach(func() { client = startGarden(args...) }) AfterEach(func() { Expect(client.DestroyAndStop()).To(Succeed()) }) Describe("Capacity", func() { It("returns json representing capacity", func() { result, err := client.Capacity() Expect(err).NotTo(HaveOccurred())
"code.cloudfoundry.org/garden" "code.cloudfoundry.org/guardian/gqt/runner" . "code.cloudfoundry.org/guardian/matchers" . "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo/extensions/table" . "github.com/onsi/gomega" "github.com/onsi/gomega/gbytes" "github.com/onsi/gomega/gexec" ) var _ = Describe("Creating a Container", func() { var ( args []string client *runner.RunningGarden container garden.Container initialSockets int initialPipes int ) BeforeEach(func() { args = nil }) JustBeforeEach(func() { client = startGarden(args...) initialSockets = numOpenSockets(client.Pid) initialPipes = numPipes(client.Pid) }) AfterEach(func() {
import ( "strings" "code.cloudfoundry.org/garden" "code.cloudfoundry.org/guardian/gqt/runner" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/onsi/gomega/gbytes" "github.com/onsi/gomega/gexec" ) var _ = Describe("runC Logging", func() { var ( client *runner.RunningGarden logLevel string ) JustBeforeEach(func() { binPath, err := gexec.Build("code.cloudfoundry.org/guardian/gqt/cmd/fake_runc") Expect(err).NotTo(HaveOccurred()) containerSpec := garden.ContainerSpec{} client = startGarden("--runc-bin", binPath, "--log-level", logLevel) client.Create(containerSpec) }) AfterEach(func() { Expect(client.DestroyAndStop()).To(Succeed()) })
package gqt_test import ( "io" "os" "code.cloudfoundry.org/garden" "code.cloudfoundry.org/guardian/gqt/runner" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/onsi/gomega/gbytes" ) var _ = Describe("Fuse", func() { var ( client *runner.RunningGarden container garden.Container ) BeforeEach(func() { fuseRootfs := os.Getenv("GARDEN_FUSE_TEST_ROOTFS") if fuseRootfs == "" { Skip("GARDEN_FUSE_TEST_ROOTFS not defined, skipping") } var err error client = startGarden() container, err = client.Create(garden.ContainerSpec{ RootFSPath: fuseRootfs, Privileged: true, }) Expect(err).NotTo(HaveOccurred())
"path/filepath" "code.cloudfoundry.org/garden" "code.cloudfoundry.org/guardian/gqt/runner" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Bind mount", func() { var ( client *runner.RunningGarden container garden.Container // container create parms privilegedContainer bool srcPath string // bm: source dstPath string // bm: destination bindMountMode garden.BindMountMode // bm: RO or RW bindMountOrigin garden.BindMountOrigin // bm: Container or Host // pre-existing file for permissions testing testFileName string ) BeforeEach(func() { privilegedContainer = false container = nil srcPath = "" dstPath = "" bindMountMode = garden.BindMountModeRO bindMountOrigin = garden.BindMountOriginHost testFileName = ""
"code.cloudfoundry.org/garden" "code.cloudfoundry.org/guardian/gqt/runner" "code.cloudfoundry.org/guardian/sysinfo" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/onsi/gomega/gbytes" "github.com/onsi/gomega/types" ) var dockerRegistryV2RootFSPath = os.Getenv("GARDEN_DOCKER_REGISTRY_V2_TEST_ROOTFS") var _ = Describe("Rootfs container create parameter", func() { var container garden.Container var args []string var client *runner.RunningGarden var supplyDefaultRootfs bool BeforeEach(func() { container = nil args = []string{} }) JustBeforeEach(func() { if supplyDefaultRootfs { client = startGarden(args...) } else { client = startGardenWithoutDefaultRootfs(args...) } })
package gqt_test import ( "path" "code.cloudfoundry.org/garden" "code.cloudfoundry.org/guardian/gqt/runner" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Info", func() { var ( client *runner.RunningGarden container garden.Container ) BeforeEach(func() { var err error client = startGarden() container, err = client.Create(garden.ContainerSpec{ Network: "10.252.0.2", Properties: garden.Properties{ "foo": "bar", }, }) Expect(err).NotTo(HaveOccurred()) }) AfterEach(func() { Expect(client.DestroyAndStop()).To(Succeed())
"io/ioutil" "os" "path" "code.cloudfoundry.org/garden" "code.cloudfoundry.org/guardian/gardener" "code.cloudfoundry.org/guardian/gqt/runner" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Properties", func() { var ( args []string client *runner.RunningGarden container garden.Container props garden.Properties propertiesDir string ) BeforeEach(func() { var err error propertiesDir, err = ioutil.TempDir("", "props") Expect(err).NotTo(HaveOccurred()) args = append(args, "--properties-path", path.Join(propertiesDir, "props.json")) client = startGarden(args...) props = garden.Properties{"somename": "somevalue"} container, err = client.Create(garden.ContainerSpec{ Properties: props,
package gqt_test import ( "fmt" "os/exec" "strings" "code.cloudfoundry.org/guardian/gqt/runner" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Debug Endpoint", func() { var ( args []string client *runner.RunningGarden ) BeforeEach(func() { args = nil }) JustBeforeEach(func() { client = startGarden(args...) }) AfterEach(func() { Expect(client.DestroyAndStop()).To(Succeed()) }) It("does not listen for debug", func() {