diff --git a/test/e2e/common_test.go b/test/e2e/common_test.go index 22d0c7aa4b..8264677a25 100644 --- a/test/e2e/common_test.go +++ b/test/e2e/common_test.go @@ -56,7 +56,6 @@ type PodmanTestIntegration struct { SignaturePolicyPath string CgroupManager string Host HostOS - Timings []string TmpDir string RemoteStartErr error } @@ -82,9 +81,6 @@ type testResultsSortedLength struct{ testResultsSorted } func (a testResultsSorted) Less(i, j int) bool { return a[i].length < a[j].length } -var testResults []testResult -var testResultsMutex sync.Mutex - func TestMain(m *testing.M) { if reexec.Init() { return @@ -107,6 +103,7 @@ var ( err error podmanTest *PodmanTestIntegration safeIPOctets [2]uint8 + timingsFile *os.File _ = BeforeEach(func() { tempdir, err = CreateTempDirInTempDir() @@ -129,9 +126,18 @@ var ( }) ) +const ( + // lockdir - do not use directly use LockTmpDir + lockdir = "libpodlock" + // imageCacheDir - do not use directly use ImageCacheDir + imageCacheDir = "imagecachedir" +) + var _ = SynchronizedBeforeSuite(func() []byte { + globalTmpDir := GinkgoT().TempDir() + // make cache dir - ImageCacheDir = filepath.Join(os.TempDir(), "imagecachedir") + ImageCacheDir = filepath.Join(globalTmpDir, imageCacheDir) if err := os.MkdirAll(ImageCacheDir, 0700); err != nil { GinkgoWriter.Printf("%q\n", err) os.Exit(1) @@ -140,7 +146,7 @@ var _ = SynchronizedBeforeSuite(func() []byte { // Cache images cwd, _ := os.Getwd() INTEGRATION_ROOT = filepath.Join(cwd, "../../") - podman := PodmanTestSetup(os.TempDir()) + podman := PodmanTestSetup(GinkgoT().TempDir()) // Pull cirros but don't put it into the cache pullImages := []string{CIRROS_IMAGE, fedoraToolbox, volumeTest} @@ -158,23 +164,8 @@ var _ = SynchronizedBeforeSuite(func() []byte { // tests are remote, this is a no-op populateCache(podman) - host := GetHostDistributionInfo() - if host.Distribution == "rhel" && strings.HasPrefix(host.Version, "7") { - f, err := os.OpenFile("/proc/sys/user/max_user_namespaces", os.O_WRONLY, 0644) - if err != nil { - GinkgoWriter.Println("Unable to enable userspace on RHEL 7") - os.Exit(1) - } - _, err = f.WriteString("15000") - if err != nil { - GinkgoWriter.Println("Unable to enable userspace on RHEL 7") - os.Exit(1) - } - f.Close() - } - path, err := os.MkdirTemp("", "libpodlock") - if err != nil { - GinkgoWriter.Println(err) + if err := os.MkdirAll(filepath.Join(globalTmpDir, lockdir), 0700); err != nil { + GinkgoWriter.Printf("%q\n", err) os.Exit(1) } @@ -183,11 +174,19 @@ var _ = SynchronizedBeforeSuite(func() []byte { podman.StopRemoteService() } - return []byte(path) + // remove temporary podman files, images are now cached in ImageCacheDir + rmAll(podman.PodmanBinary, podman.TempDir) + + return []byte(globalTmpDir) }, func(data []byte) { cwd, _ := os.Getwd() INTEGRATION_ROOT = filepath.Join(cwd, "../../") - LockTmpDir = string(data) + globalTmpDir := string(data) + ImageCacheDir = filepath.Join(globalTmpDir, imageCacheDir) + LockTmpDir = filepath.Join(globalTmpDir, lockdir) + + timingsFile, err = os.Create(fmt.Sprintf("%s/timings-%d", LockTmpDir, GinkgoParallelProcess())) + Expect(err).ToNot(HaveOccurred()) }) func (p *PodmanTestIntegration) Setup() { @@ -196,13 +195,8 @@ func (p *PodmanTestIntegration) Setup() { } var _ = SynchronizedAfterSuite(func() { - f, err := os.Create(fmt.Sprintf("%s/timings-%d", LockTmpDir, GinkgoParallelProcess())) - Expect(err).ToNot(HaveOccurred()) - defer f.Close() - for _, result := range testResults { - _, err := f.WriteString(fmt.Sprintf("%s\t\t%f\n", result.name, result.length)) - Expect(err).ToNot(HaveOccurred(), "write timings") - } + timingsFile.Close() + timingsFile = nil }, func() { testTimings := make(testResultsSorted, 0, 2000) @@ -232,30 +226,18 @@ var _ = SynchronizedAfterSuite(func() { GinkgoWriter.Printf("%s\t\t%f\n", result.name, result.length) } - // previous runroot - tempdir, err := CreateTempDirInTempDir() - if err != nil { - os.Exit(1) - } - podmanTest := PodmanTestCreate(tempdir) - defer os.RemoveAll(tempdir) - - if err := os.RemoveAll(podmanTest.Root); err != nil { - GinkgoWriter.Printf("%q\n", err) - } - - // If running remote, we need to stop the associated podman system service - if podmanTest.RemoteTest { - podmanTest.StopRemoteService() - } - // for localized tests, this removes the image cache dir and for remote tests - // this is a no-op - podmanTest.removeCache(podmanTest.ImageCacheDir) - - // LockTmpDir can already be removed - os.RemoveAll(LockTmpDir) + cwd, _ := os.Getwd() + rmAll(getPodmanBinary(cwd), ImageCacheDir) }) +func getPodmanBinary(cwd string) string { + podmanBinary := filepath.Join(cwd, "../../bin/podman") + if os.Getenv("PODMAN_BINARY") != "" { + podmanBinary = os.Getenv("PODMAN_BINARY") + } + return podmanBinary +} + // PodmanTestCreate creates a PodmanTestIntegration instance for the tests func PodmanTestCreateUtil(tempDir string, remote bool) *PodmanTestIntegration { var podmanRemoteBinary string @@ -264,10 +246,7 @@ func PodmanTestCreateUtil(tempDir string, remote bool) *PodmanTestIntegration { cwd, _ := os.Getwd() root := filepath.Join(tempDir, "root") - podmanBinary := filepath.Join(cwd, "../../bin/podman") - if os.Getenv("PODMAN_BINARY") != "" { - podmanBinary = os.Getenv("PODMAN_BINARY") - } + podmanBinary := getPodmanBinary(cwd) podmanRemoteBinary = filepath.Join(cwd, "../../bin/podman-remote") if os.Getenv("PODMAN_REMOTE_BINARY") != "" { @@ -342,8 +321,6 @@ func PodmanTestCreateUtil(tempDir string, remote bool) *PodmanTestIntegration { storageOptions = "--storage-driver " + storageFs } - ImageCacheDir = filepath.Join(os.TempDir(), "imagecachedir") - p := &PodmanTestIntegration{ PodmanTest: PodmanTest{ PodmanBinary: podmanBinary, @@ -467,9 +444,8 @@ func (p *PodmanTestIntegration) InspectContainer(name string) []define.InspectCo func processTestResult(r SpecReport) { tr := testResult{length: r.RunTime.Seconds(), name: r.FullText()} - testResultsMutex.Lock() - testResults = append(testResults, tr) - testResultsMutex.Unlock() + _, err := timingsFile.WriteString(fmt.Sprintf("%s\t\t%f\n", tr.name, tr.length)) + Expect(err).ToNot(HaveOccurred(), "write timings") } func GetPortLock(port string) *lockfile.LockFile { @@ -657,7 +633,7 @@ func (p *PodmanTestIntegration) Cleanup() { p.StopRemoteService() // Nuke tempdir - p.removeCache(p.TempDir) + rmAll(p.PodmanBinary, p.TempDir) // Clean up the registries configuration file ENV variable set in Create resetRegistriesConfigEnv() @@ -993,11 +969,13 @@ func populateCache(podman *PodmanTestIntegration) { GinkgoWriter.Printf("-----------------------------\n") } -func (p *PodmanTestIntegration) removeCache(path string) { +// rmAll removes the direcory and its content,, when running rootless we use +// podman unshare to prevent any subuid/gid problems +func rmAll(podmanBin string, path string) { // Remove cache dirs if isRootless() { // If rootless, os.RemoveAll() is failed due to permission denied - cmd := exec.Command(p.PodmanBinary, "unshare", "rm", "-rf", path) + cmd := exec.Command(podmanBin, "unshare", "rm", "-rf", path) cmd.Stdout = GinkgoWriter cmd.Stderr = GinkgoWriter if err := cmd.Run(); err != nil { diff --git a/test/e2e/cp_test.go b/test/e2e/cp_test.go index e2c3148215..8dcc38497e 100644 --- a/test/e2e/cp_test.go +++ b/test/e2e/cp_test.go @@ -243,8 +243,7 @@ var _ = Describe("Podman cp", func() { session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() session = podmanTest.Podman([]string{"cp", container + ":/", tmpDir}) session.WaitWithDefaultTimeout() diff --git a/test/e2e/create_test.go b/test/e2e/create_test.go index 10ac0f1be5..3aff7e31ed 100644 --- a/test/e2e/create_test.go +++ b/test/e2e/create_test.go @@ -204,9 +204,7 @@ var _ = Describe("Podman create", func() { session.WaitWithDefaultTimeout() Expect(session).Should(Exit(125)) - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) - defer os.RemoveAll(tmpDir) + tmpDir := GinkgoT().TempDir() podName := "rudolph" ctrName := "prancer" diff --git a/test/e2e/generate_kube_test.go b/test/e2e/generate_kube_test.go index decb547594..dcc0a4ce09 100644 --- a/test/e2e/generate_kube_test.go +++ b/test/e2e/generate_kube_test.go @@ -1382,10 +1382,7 @@ USER test1` }) It("podman generate kube omit secret if empty", func() { - dir, err := os.MkdirTemp(tempdir, "podman") - Expect(err).ShouldNot(HaveOccurred()) - - defer os.RemoveAll(dir) + dir := GinkgoT().TempDir() podCreate := podmanTest.Podman([]string{"run", "-d", "--pod", "new:" + "noSecretsPod", "--name", "noSecretsCtr", "--volume", dir + ":/foobar", ALPINE}) podCreate.WaitWithDefaultTimeout() diff --git a/test/e2e/generate_systemd_test.go b/test/e2e/generate_systemd_test.go index b984a6ed5b..4630c2d87e 100644 --- a/test/e2e/generate_systemd_test.go +++ b/test/e2e/generate_systemd_test.go @@ -544,10 +544,8 @@ var _ = Describe("Podman generate systemd", func() { }) It("podman generate systemd pod with containers --new", func() { - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() tmpFile := tmpDir + "podID" - defer os.RemoveAll(tmpDir) n := podmanTest.Podman([]string{"pod", "create", "--pod-id-file", tmpFile, "--name", "foo"}) n.WaitWithDefaultTimeout() diff --git a/test/e2e/kill_test.go b/test/e2e/kill_test.go index 91e922112f..280ccb2c82 100644 --- a/test/e2e/kill_test.go +++ b/test/e2e/kill_test.go @@ -1,8 +1,6 @@ package integration import ( - "os" - . "github.com/containers/podman/v4/test/utils" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" @@ -128,10 +126,8 @@ var _ = Describe("Podman kill", func() { }) It("podman kill --cidfile", func() { - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() tmpFile := tmpDir + "cid" - defer os.RemoveAll(tmpDir) session := podmanTest.Podman([]string{"run", "-dt", "--cidfile", tmpFile, ALPINE, "top"}) session.WaitWithDefaultTimeout() @@ -148,15 +144,11 @@ var _ = Describe("Podman kill", func() { }) It("podman kill multiple --cidfile", func() { - tmpDir1, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir1 := GinkgoT().TempDir() tmpFile1 := tmpDir1 + "cid" - defer os.RemoveAll(tmpDir1) - tmpDir2, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir2 := GinkgoT().TempDir() tmpFile2 := tmpDir2 + "cid" - defer os.RemoveAll(tmpDir2) session := podmanTest.Podman([]string{"run", "-dt", "--cidfile", tmpFile1, ALPINE, "top"}) session.WaitWithDefaultTimeout() diff --git a/test/e2e/pause_test.go b/test/e2e/pause_test.go index bcd31f347a..c4dc227f7e 100644 --- a/test/e2e/pause_test.go +++ b/test/e2e/pause_test.go @@ -321,12 +321,9 @@ var _ = Describe("Podman pause", func() { }) It("podman pause --cidfile", func() { - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() tmpFile := tmpDir + "cid" - defer os.RemoveAll(tmpDir) - session := podmanTest.Podman([]string{"create", "--cidfile", tmpFile, ALPINE, "top"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) @@ -350,8 +347,7 @@ var _ = Describe("Podman pause", func() { }) It("podman pause multiple --cidfile", func() { - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() tmpFile1 := tmpDir + "cid-1" tmpFile2 := tmpDir + "cid-2" diff --git a/test/e2e/play_kube_test.go b/test/e2e/play_kube_test.go index c6991e27d4..d3af40e9ba 100644 --- a/test/e2e/play_kube_test.go +++ b/test/e2e/play_kube_test.go @@ -1729,10 +1729,7 @@ func milliCPUToQuota(milliCPU string) int { } func createSourceTarFile(fileName, fileContent, tarFilePath string) error { - dir, err := os.MkdirTemp("", "podmanTest") - if err != nil { - return err - } + dir := GinkgoT().TempDir() file, err := os.Create(filepath.Join(dir, fileName)) if err != nil { diff --git a/test/e2e/pod_rm_test.go b/test/e2e/pod_rm_test.go index d5d0e4ccc7..d06743ae10 100644 --- a/test/e2e/pod_rm_test.go +++ b/test/e2e/pod_rm_test.go @@ -215,10 +215,8 @@ var _ = Describe("Podman pod rm", func() { }) It("podman pod start/remove single pod via --pod-id-file", func() { - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() tmpFile := tmpDir + "podID" - defer os.RemoveAll(tmpDir) podName := "rudolph" @@ -244,9 +242,7 @@ var _ = Describe("Podman pod rm", func() { }) It("podman pod start/remove multiple pods via --pod-id-file", func() { - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) - defer os.RemoveAll(tmpDir) + tmpDir := GinkgoT().TempDir() podIDFiles := []string{} for _, i := range "0123456789" { diff --git a/test/e2e/pod_start_test.go b/test/e2e/pod_start_test.go index b04d5a1196..dd4be832dd 100644 --- a/test/e2e/pod_start_test.go +++ b/test/e2e/pod_start_test.go @@ -153,10 +153,8 @@ var _ = Describe("Podman pod start", func() { }) It("podman pod start single pod via --pod-id-file", func() { - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() tmpFile := tmpDir + "podID" - defer os.RemoveAll(tmpDir) podName := "rudolph" @@ -177,9 +175,7 @@ var _ = Describe("Podman pod start", func() { }) It("podman pod start multiple pods via --pod-id-file", func() { - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) - defer os.RemoveAll(tmpDir) + tmpDir := GinkgoT().TempDir() podIDFiles := []string{} for _, i := range "0123456789" { @@ -209,10 +205,8 @@ var _ = Describe("Podman pod start", func() { }) It("podman pod create --infra-conmon-pod create + start", func() { - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() tmpFile := tmpDir + "podID" - defer os.RemoveAll(tmpDir) podName := "rudolph" // Create a pod with --infra-conmon-pid. diff --git a/test/e2e/pod_stop_test.go b/test/e2e/pod_stop_test.go index 9739078f2e..6025ea5966 100644 --- a/test/e2e/pod_stop_test.go +++ b/test/e2e/pod_stop_test.go @@ -1,8 +1,6 @@ package integration import ( - "os" - . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" . "github.com/onsi/gomega/gexec" @@ -158,10 +156,8 @@ var _ = Describe("Podman pod stop", func() { }) It("podman pod start/stop single pod via --pod-id-file", func() { - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() tmpFile := tmpDir + "podID" - defer os.RemoveAll(tmpDir) podName := "rudolph" @@ -187,9 +183,7 @@ var _ = Describe("Podman pod stop", func() { }) It("podman pod start/stop multiple pods via --pod-id-file", func() { - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) - defer os.RemoveAll(tmpDir) + tmpDir := GinkgoT().TempDir() podIDFiles := []string{} for _, i := range "0123456789" { diff --git a/test/e2e/restart_test.go b/test/e2e/restart_test.go index 3986476705..4e5e801989 100644 --- a/test/e2e/restart_test.go +++ b/test/e2e/restart_test.go @@ -2,7 +2,6 @@ package integration import ( "fmt" - "os" "time" . "github.com/containers/podman/v4/test/utils" @@ -229,12 +228,9 @@ var _ = Describe("Podman restart", func() { }) It("podman restart --cidfile", func() { - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() tmpFile := tmpDir + "cid" - defer os.RemoveAll(tmpDir) - session := podmanTest.Podman([]string{"create", "--cidfile", tmpFile, ALPINE, "top"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) @@ -252,13 +248,10 @@ var _ = Describe("Podman restart", func() { }) It("podman restart multiple --cidfile", func() { - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() tmpFile1 := tmpDir + "cid-1" tmpFile2 := tmpDir + "cid-2" - defer os.RemoveAll(tmpDir) - session := podmanTest.Podman([]string{"run", "--cidfile", tmpFile1, "-d", ALPINE, "top"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) diff --git a/test/e2e/rm_test.go b/test/e2e/rm_test.go index b4b5b17ef9..4f8f354eae 100644 --- a/test/e2e/rm_test.go +++ b/test/e2e/rm_test.go @@ -2,7 +2,6 @@ package integration import ( "fmt" - "os" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" @@ -122,12 +121,9 @@ var _ = Describe("Podman rm", func() { }) It("podman rm --cidfile", func() { - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() tmpFile := tmpDir + "cid" - defer os.RemoveAll(tmpDir) - session := podmanTest.Podman([]string{"create", "--cidfile", tmpFile, ALPINE, "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) @@ -143,13 +139,10 @@ var _ = Describe("Podman rm", func() { }) It("podman rm multiple --cidfile", func() { - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() tmpFile1 := tmpDir + "cid-1" tmpFile2 := tmpDir + "cid-2" - defer os.RemoveAll(tmpDir) - session := podmanTest.Podman([]string{"create", "--cidfile", tmpFile1, ALPINE, "ls"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) diff --git a/test/e2e/stop_test.go b/test/e2e/stop_test.go index 38e38b9da0..10c3de406f 100644 --- a/test/e2e/stop_test.go +++ b/test/e2e/stop_test.go @@ -2,7 +2,6 @@ package integration import ( "fmt" - "os" "strings" . "github.com/onsi/ginkgo/v2" @@ -258,13 +257,9 @@ var _ = Describe("Podman stop", func() { }) It("podman stop --cidfile", func() { - - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() tmpFile := tmpDir + "cid" - defer os.RemoveAll(tmpDir) - session := podmanTest.Podman([]string{"create", "--cidfile", tmpFile, ALPINE, "top"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) @@ -282,14 +277,10 @@ var _ = Describe("Podman stop", func() { }) It("podman stop multiple --cidfile", func() { - - tmpDir, err := os.MkdirTemp("", "") - Expect(err).ToNot(HaveOccurred()) + tmpDir := GinkgoT().TempDir() tmpFile1 := tmpDir + "cid-1" tmpFile2 := tmpDir + "cid-2" - defer os.RemoveAll(tmpDir) - session := podmanTest.Podman([]string{"run", "--cidfile", tmpFile1, "-d", ALPINE, "top"}) session.WaitWithDefaultTimeout() Expect(session).Should(Exit(0)) diff --git a/test/tools/go.mod b/test/tools/go.mod index 3ebec32f44..2dceb2eb03 100644 --- a/test/tools/go.mod +++ b/test/tools/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/cpuguy83/go-md2man/v2 v2.0.2 - github.com/onsi/ginkgo/v2 v2.9.6 + github.com/onsi/ginkgo/v2 v2.11.0 github.com/vbatts/git-validation v1.2.0 golang.org/x/tools v0.10.0 ) diff --git a/test/tools/go.sum b/test/tools/go.sum index b563bc2e06..2037ab6c10 100644 --- a/test/tools/go.sum +++ b/test/tools/go.sum @@ -17,9 +17,9 @@ github.com/hashicorp/go-version v1.3.0 h1:McDWVJIU/y+u1BRV06dPaLfLCaT7fUTJLp5r04 github.com/hashicorp/go-version v1.3.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/onsi/ginkgo/v2 v2.9.6 h1:QPnYLUAuyyKYVInVqnaBV+4k+r6LZ27+iBGAOcqNPHE= -github.com/onsi/ginkgo/v2 v2.9.6/go.mod h1:cxrmXWykAwTwhQsJOPfdIDiJ+l2RYq7U8hFU+M/1uw0= -github.com/onsi/gomega v1.27.7 h1:fVih9JD6ogIiHUN6ePK7HJidyEDpWGVB5mzM7cWNXoU= +github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= +github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM= +github.com/onsi/gomega v1.27.8 h1:gegWiwZjBsf2DgiSbf5hpokZ98JVDMcWkUiigk6/KXc= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= diff --git a/test/tools/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go b/test/tools/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go index 48d23f9191..be01dec979 100644 --- a/test/tools/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go +++ b/test/tools/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go @@ -32,6 +32,9 @@ func BuildGenerateCommand() command.Command { {Name: "template-data", KeyPath: "CustomTemplateData", UsageArgument: "template-data-file", Usage: "If specified, generate will use the contents of the file passed as data to be rendered in the test file template"}, + {Name: "tags", KeyPath: "Tags", + UsageArgument: "build-tags", + Usage: "If specified, generate will create a test file that uses the given build tags (i.e. `--tags e2e,!unit` will add `//go:build e2e,!unit`)"}, }, &conf, types.GinkgoFlagSections{}, @@ -59,6 +62,7 @@ You can also pass a of the form "file.go" and generate will emit "fil } type specData struct { + BuildTags string Package string Subject string PackageImportPath string @@ -93,6 +97,7 @@ func generateTestFileForSubject(subject string, conf GeneratorsConfig) { } data := specData{ + BuildTags: getBuildTags(conf.Tags), Package: determinePackageName(packageName, conf.Internal), Subject: formattedName, PackageImportPath: getPackageImportPath(), diff --git a/test/tools/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go b/test/tools/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go index c3470adbfd..4dab07d036 100644 --- a/test/tools/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go +++ b/test/tools/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go @@ -1,6 +1,7 @@ package generators -var specText = `package {{.Package}} +var specText = `{{.BuildTags}} +package {{.Package}} import ( {{.GinkgoImport}} @@ -14,7 +15,8 @@ var _ = {{.GinkgoPackage}}Describe("{{.Subject}}", func() { }) ` -var agoutiSpecText = `package {{.Package}} +var agoutiSpecText = `{{.BuildTags}} +package {{.Package}} import ( {{.GinkgoImport}} diff --git a/test/tools/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go b/test/tools/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go index 3046a4487a..28c7aa6f43 100644 --- a/test/tools/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go +++ b/test/tools/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go @@ -1,6 +1,7 @@ package generators import ( + "fmt" "go/build" "os" "path/filepath" @@ -14,6 +15,7 @@ type GeneratorsConfig struct { Agouti, NoDot, Internal bool CustomTemplate string CustomTemplateData string + Tags string } func getPackageAndFormattedName() (string, string, string) { @@ -62,3 +64,13 @@ func determinePackageName(name string, internal bool) string { return name + "_test" } + +// getBuildTags returns the resultant string to be added. +// If the input string is not empty, then returns a `//go:build {}` string, +// otherwise returns an empty string. +func getBuildTags(tags string) string { + if tags != "" { + return fmt.Sprintf("//go:build %s\n", tags) + } + return "" +} diff --git a/test/tools/vendor/github.com/onsi/ginkgo/v2/types/version.go b/test/tools/vendor/github.com/onsi/ginkgo/v2/types/version.go index 2ca1f7ba00..f895739b83 100644 --- a/test/tools/vendor/github.com/onsi/ginkgo/v2/types/version.go +++ b/test/tools/vendor/github.com/onsi/ginkgo/v2/types/version.go @@ -1,3 +1,3 @@ package types -const VERSION = "2.9.6" +const VERSION = "2.11.0" diff --git a/test/tools/vendor/modules.txt b/test/tools/vendor/modules.txt index c65f4d60e2..5aace32db4 100644 --- a/test/tools/vendor/modules.txt +++ b/test/tools/vendor/modules.txt @@ -11,7 +11,7 @@ github.com/google/pprof/profile # github.com/hashicorp/go-version v1.3.0 ## explicit github.com/hashicorp/go-version -# github.com/onsi/ginkgo/v2 v2.9.6 +# github.com/onsi/ginkgo/v2 v2.11.0 ## explicit; go 1.18 github.com/onsi/ginkgo/v2/config github.com/onsi/ginkgo/v2/formatter