forked from openshift/origin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
e2e.go
173 lines (166 loc) · 5.53 KB
/
e2e.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
package main
import (
"strings"
"time"
"k8s.io/kubectl/pkg/util/templates"
"github.com/openshift/origin/pkg/test/ginkgo"
_ "github.com/openshift/origin/test/extended"
_ "github.com/openshift/origin/test/extended/util/annotate/generated"
)
// staticSuites are all known test suites this binary should run
var staticSuites = []*ginkgo.TestSuite{
{
Name: "openshift/conformance",
Description: templates.LongDesc(`
Tests that ensure an OpenShift cluster and components are working properly.
`),
Matches: func(name string) bool {
return strings.Contains(name, "[Suite:openshift/conformance/")
},
Parallelism: 30,
},
{
Name: "openshift/conformance/parallel",
Description: templates.LongDesc(`
Only the portion of the openshift/conformance test suite that run in parallel.
`),
Matches: func(name string) bool {
return strings.Contains(name, "[Suite:openshift/conformance/parallel")
},
Parallelism: 30,
MaximumAllowedFlakes: 15,
},
{
Name: "openshift/conformance/serial",
Description: templates.LongDesc(`
Only the portion of the openshift/conformance test suite that run serially.
`),
Matches: func(name string) bool {
return strings.Contains(name, "[Suite:openshift/conformance/serial")
},
},
{
Name: "openshift/disruptive",
Description: templates.LongDesc(`
The disruptive test suite.
`),
Matches: func(name string) bool {
return strings.Contains(name, "[Disruptive]") && strings.Contains(name, "[Feature:EtcdRecovery]")
},
TestTimeout: 60 * time.Minute,
},
{
Name: "kubernetes/conformance",
Description: templates.LongDesc(`
The default Kubernetes conformance suite.
`),
Matches: func(name string) bool {
return strings.Contains(name, "[Suite:k8s]") && strings.Contains(name, "[Conformance]")
},
Parallelism: 30,
},
{
Name: "openshift/build",
Description: templates.LongDesc(`
Tests that exercise the OpenShift build functionality.
`),
Matches: func(name string) bool {
return !strings.Contains(name, "[Disabled") && strings.Contains(name, "[Feature:Builds]")
},
Parallelism: 7,
// TODO: Builds are really flaky right now, remove when we land perf updates and fix io on workers
MaximumAllowedFlakes: 3,
// Jenkins tests can take a really long time
TestTimeout: 60 * time.Minute,
},
{
Name: "openshift/image-registry",
Description: templates.LongDesc(`
Tests that exercise the OpenShift image-registry functionality.
`),
Matches: func(name string) bool {
return strings.Contains(name, "[sig-imageregistry]") && !strings.Contains(name, "[Local]")
},
},
{
Name: "openshift/image-ecosystem",
Description: templates.LongDesc(`
Tests that exercise language and tooling images shipped as part of OpenShift.
`),
Matches: func(name string) bool {
return strings.Contains(name, "[Feature:ImageEcosystem]") && !strings.Contains(name, "[Local]")
},
Parallelism: 7,
TestTimeout: 20 * time.Minute,
},
{
Name: "openshift/jenkins-e2e",
Description: templates.LongDesc(`
Tests that exercise the OpenShift / Jenkins integrations provided by the OpenShift Jenkins image/plugins and the Pipeline Build Strategy.
`),
Matches: func(name string) bool {
return strings.Contains(name, "[Feature:Jenkins]")
},
Parallelism: 4,
TestTimeout: 20 * time.Minute,
},
{
Name: "openshift/scalability",
Description: templates.LongDesc(`
Tests that verify the scalability characteristics of the cluster. Currently this is focused on core performance behaviors and preventing regressions.
`),
Matches: func(name string) bool {
return strings.Contains(name, "[Suite:openshift/scalability]")
},
Parallelism: 1,
TestTimeout: 20 * time.Minute,
},
{
Name: "openshift/conformance-excluded",
Description: templates.LongDesc(`
Run only tests that are excluded from conformance. Makes identifying omitted tests easier.
`),
Matches: func(name string) bool { return !strings.Contains(name, "[Suite:openshift/conformance/") },
},
{
Name: "openshift/test-cmd",
Description: templates.LongDesc(`
Run only tests for test-cmd.
`),
Matches: func(name string) bool { return strings.Contains(name, "[Feature:LegacyCommandTests]") },
},
{
Name: "openshift/csi",
Description: templates.LongDesc(`
Run tests for an CSI driver. Set the TEST_INSTALL_CSI_DRIVERS environment variable to the name of the driver to load.
For example, TEST_INSTALL_CSI_DRIVERS=aws-ebs will test the AWS EBS CSI driver. To change the location of the images,
specify IMAGE_FORMAT=myregistry.com/myrepository/${component}:4.5 where ${component} will be substituted with the
names of required CSI component images:
csi-external-attacher, csi-external-provisioner, csi-external-resizer,
csi-external-snapshotter, csi-node-driver-registrar, csi-livenessprobe
See https://github.com/kubernetes/kubernetes/blob/master/test/e2e/storage/external/README.md for required format of the files.
`),
Matches: func(name string) bool {
return strings.Contains(name, "External Storage [Driver:") && !strings.Contains(name, "[Disruptive]")
},
},
{
Name: "openshift/network/stress",
Description: templates.LongDesc(`
This test suite repeatedly verifies the networking function of the cluster in parallel to find flakes.
`),
Matches: func(name string) bool {
return strings.Contains(name, "[Suite:openshift/conformance/") && strings.Contains(name, "[sig-network]")
},
Parallelism: 30,
Count: 15,
TestTimeout: 20 * time.Minute,
},
{
Name: "all",
Description: templates.LongDesc(`
Run all tests.
`),
Matches: func(name string) bool { return true },
},
}