Skip to content

Commit 8198a26

Browse files
author
Eric Stroczynski
authored
test/integration: fix flaky test (#4849)
Signed-off-by: Eric Stroczynski <[email protected]>
1 parent d88acfd commit 8198a26

File tree

2 files changed

+51
-68
lines changed

2 files changed

+51
-68
lines changed

test/integration/packagemanifests_test.go

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import (
1919

2020
. "github.com/onsi/ginkgo"
2121
. "github.com/onsi/gomega"
22-
"github.com/operator-framework/api/pkg/operators/v1alpha1"
2322
)
2423

2524
var _ = Describe("run packagemanifests", func() {
@@ -29,41 +28,27 @@ var _ = Describe("run packagemanifests", func() {
2928
output string
3029
)
3130

32-
runPackageManifests := runPackageManifestsFor(&tc)
33-
cleanup := cleanupFor(&tc)
34-
isBundle := false
35-
readCSV, writeCSV := readCSVFor(&tc, isBundle), writeCSVFor(&tc, isBundle)
36-
3731
AfterEach(func() {
3832
By("cleaning up")
39-
_, err = cleanup()
33+
_, err = cleanup(&tc)
4034
Expect(err).NotTo(HaveOccurred())
4135
})
4236

4337
It("should handle existing operator deployments correctly", func() {
44-
output, err = cleanup()
38+
output, err = cleanup(&tc)
4539
Expect(err).NotTo(HaveOccurred())
4640
Expect(output).To(ContainSubstring(`package \"memcached-operator\" not found`))
47-
Expect(runPackageManifests("--version", "0.0.1")).To(Succeed())
48-
Expect(runPackageManifests("--version", "0.0.1")).NotTo(Succeed())
49-
_, err = cleanup()
41+
Expect(runPackageManifests(&tc, "--version", "0.0.1")).To(Succeed())
42+
Expect(runPackageManifests(&tc, "--version", "0.0.1")).NotTo(Succeed())
43+
_, err = cleanup(&tc)
5044
Expect(err).NotTo(HaveOccurred())
51-
output, err = cleanup()
45+
output, err = cleanup(&tc)
5246
Expect(err).NotTo(HaveOccurred())
5347
Expect(output).To(ContainSubstring(`package \"memcached-operator\" not found`))
5448
})
5549

5650
It("should succeed with a single operator version in OwnNamespace mode", func() {
57-
csv, err := readCSV("0.0.1")
58-
Expect(err).NotTo(HaveOccurred())
59-
for i, mode := range csv.Spec.InstallModes {
60-
if mode.Type == v1alpha1.InstallModeTypeOwnNamespace {
61-
csv.Spec.InstallModes[i].Supported = true
62-
break
63-
}
64-
}
65-
Expect(writeCSV(csv, "0.0.1")).To(Succeed())
66-
Expect(runPackageManifests("--install-mode", "OwnNamespace", "--version", "0.0.1")).To(Succeed())
51+
Expect(runPackageManifests(&tc, "--install-mode", "OwnNamespace", "--version", "0.0.1")).To(Succeed())
6752
})
6853

6954
It("should successfully deploy the second of two operator versions", func() {
@@ -82,6 +67,6 @@ var _ = Describe("run packagemanifests", func() {
8267
}
8368
Expect(tc.Make(makeArgs...)).To(Succeed())
8469
}
85-
Expect(runPackageManifests("--version", versions[len(versions)-1])).To(Succeed())
70+
Expect(runPackageManifests(&tc, "--version", versions[len(versions)-1])).To(Succeed())
8671
})
8772
})

test/integration/suite_test.go

Lines changed: 43 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,14 @@ var _ = BeforeSuite(func() {
8484
Expect(tc.LoadImageToKindCluster()).To(Succeed())
8585
}
8686

87-
By("generating the operator package manifests")
87+
By("generating the operator package manifests and enabling all InstallModes")
8888
Expect(tc.Make("packagemanifests", "IMG="+tc.ImageName)).To(Succeed())
89+
csv, err := readCSV(&tc, "0.0.1", false)
90+
Expect(err).NotTo(HaveOccurred())
91+
for i := range csv.Spec.InstallModes {
92+
csv.Spec.InstallModes[i].Supported = true
93+
}
94+
Expect(writeCSV(&tc, "0.0.1", csv, false)).To(Succeed())
8995

9096
// TODO(estroz): enable when bundles can be tested locally.
9197
//
@@ -122,60 +128,52 @@ func warn(output string, err error) {
122128
}
123129
}
124130

125-
func runPackageManifestsFor(tc *testutils.TestContext) func(...string) error {
126-
return func(args ...string) error {
127-
allArgs := []string{"run", "packagemanifests", "--timeout", "4m", "--namespace", tc.Kubectl.Namespace}
128-
output, err := tc.Run(exec.Command(tc.BinaryName, append(allArgs, args...)...))
129-
if err == nil {
130-
fmt.Fprintln(GinkgoWriter, string(output))
131-
}
132-
return err
131+
func runPackageManifests(tc *testutils.TestContext, args ...string) error {
132+
allArgs := []string{"run", "packagemanifests", "--timeout", "4m", "--namespace", tc.Kubectl.Namespace}
133+
output, err := tc.Run(exec.Command(tc.BinaryName, append(allArgs, args...)...))
134+
if err == nil {
135+
fmt.Fprintln(GinkgoWriter, string(output))
133136
}
137+
return err
134138
}
135139

136-
func cleanupFor(tc *testutils.TestContext) func() (string, error) {
137-
return func() (string, error) {
138-
allArgs := []string{"cleanup", tc.ProjectName, "--timeout", "4m", "--namespace", tc.Kubectl.Namespace}
139-
output, err := tc.Run(exec.Command(tc.BinaryName, allArgs...))
140-
if err == nil {
141-
fmt.Fprintln(GinkgoWriter, string(output))
142-
}
143-
return string(output), err
140+
func cleanup(tc *testutils.TestContext) (string, error) {
141+
allArgs := []string{"cleanup", tc.ProjectName, "--timeout", "4m", "--namespace", tc.Kubectl.Namespace}
142+
output, err := tc.Run(exec.Command(tc.BinaryName, allArgs...))
143+
if err == nil {
144+
fmt.Fprintln(GinkgoWriter, string(output))
144145
}
146+
return string(output), err
145147
}
146148

147-
func readCSVFor(tc *testutils.TestContext, isBundle bool) func(string) (*v1alpha1.ClusterServiceVersion, error) {
148-
return func(version string) (*v1alpha1.ClusterServiceVersion, error) {
149-
b, err := ioutil.ReadFile(csvPath(tc, version, isBundle))
150-
if err != nil {
151-
return nil, err
152-
}
153-
csv := &v1alpha1.ClusterServiceVersion{}
154-
if err := yaml.Unmarshal(b, csv); err != nil {
155-
return nil, err
156-
}
157-
return csv, nil
149+
func readCSV(tc *testutils.TestContext, version string, isBundle bool) (*v1alpha1.ClusterServiceVersion, error) {
150+
b, err := ioutil.ReadFile(csvPath(tc, version, isBundle))
151+
if err != nil {
152+
return nil, err
158153
}
154+
csv := &v1alpha1.ClusterServiceVersion{}
155+
if err := yaml.Unmarshal(b, csv); err != nil {
156+
return nil, err
157+
}
158+
return csv, nil
159159
}
160160

161-
func writeCSVFor(tc *testutils.TestContext, isBundle bool) func(*v1alpha1.ClusterServiceVersion, string) error {
162-
return func(csv *v1alpha1.ClusterServiceVersion, version string) error {
163-
b, err := yaml.Marshal(csv)
164-
if err != nil {
165-
return err
166-
}
167-
f, err := os.OpenFile(csvPath(tc, version, isBundle), os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)
168-
if err != nil {
169-
return err
170-
}
171-
if _, err := f.Write(b); err != nil {
172-
return err
173-
}
174-
if err := f.Sync(); err != nil {
175-
return err
176-
}
177-
return f.Close()
161+
func writeCSV(tc *testutils.TestContext, version string, csv *v1alpha1.ClusterServiceVersion, isBundle bool) error {
162+
b, err := yaml.Marshal(csv)
163+
if err != nil {
164+
return err
165+
}
166+
f, err := os.OpenFile(csvPath(tc, version, isBundle), os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)
167+
if err != nil {
168+
return err
169+
}
170+
if _, err := f.Write(b); err != nil {
171+
return err
172+
}
173+
if err := f.Sync(); err != nil {
174+
return err
178175
}
176+
return f.Close()
179177
}
180178

181179
func csvPath(tc *testutils.TestContext, version string, isBundle bool) string {

0 commit comments

Comments
 (0)