... | ... |
@@ -189,6 +189,7 @@ func setupAdmissionPluginTestConfig(t *testing.T, value string) string { |
189 | 189 |
} |
190 | 190 |
|
191 | 191 |
func TestKubernetesAdmissionPluginOrderOverride(t *testing.T) { |
192 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
192 | 193 |
registerAdmissionPlugins(t, "plugin1", "plugin2", "plugin3") |
193 | 194 |
kubeClient, _ := setupAdmissionTest(t, func(config *configapi.MasterConfig) { |
194 | 195 |
config.KubernetesMasterConfig.AdmissionConfig.PluginOrderOverride = []string{"plugin1", "plugin2"} |
... | ... |
@@ -204,6 +205,7 @@ func TestKubernetesAdmissionPluginOrderOverride(t *testing.T) { |
204 | 204 |
} |
205 | 205 |
|
206 | 206 |
func TestKubernetesAdmissionPluginConfigFile(t *testing.T) { |
207 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
207 | 208 |
registerAdmissionPluginTestConfigType() |
208 | 209 |
configFile := setupAdmissionPluginTestConfig(t, "plugin1configvalue") |
209 | 210 |
registerAdmissionPlugins(t, "plugin1", "plugin2") |
... | ... |
@@ -222,6 +224,7 @@ func TestKubernetesAdmissionPluginConfigFile(t *testing.T) { |
222 | 222 |
} |
223 | 223 |
|
224 | 224 |
func TestKubernetesAdmissionPluginEmbeddedConfig(t *testing.T) { |
225 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
225 | 226 |
registerAdmissionPluginTestConfigType() |
226 | 227 |
registerAdmissionPlugins(t, "plugin1", "plugin2") |
227 | 228 |
kubeClient, _ := setupAdmissionTest(t, func(config *configapi.MasterConfig) { |
... | ... |
@@ -241,6 +244,7 @@ func TestKubernetesAdmissionPluginEmbeddedConfig(t *testing.T) { |
241 | 241 |
} |
242 | 242 |
|
243 | 243 |
func TestOpenshiftAdmissionPluginOrderOverride(t *testing.T) { |
244 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
244 | 245 |
registerAdmissionPlugins(t, "plugin1", "plugin2", "plugin3") |
245 | 246 |
_, openshiftClient := setupAdmissionTest(t, func(config *configapi.MasterConfig) { |
246 | 247 |
config.AdmissionConfig.PluginOrderOverride = []string{"plugin1", "plugin2"} |
... | ... |
@@ -256,6 +260,7 @@ func TestOpenshiftAdmissionPluginOrderOverride(t *testing.T) { |
256 | 256 |
} |
257 | 257 |
|
258 | 258 |
func TestOpenshiftAdmissionPluginConfigFile(t *testing.T) { |
259 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
259 | 260 |
registerAdmissionPluginTestConfigType() |
260 | 261 |
configFile := setupAdmissionPluginTestConfig(t, "plugin2configvalue") |
261 | 262 |
registerAdmissionPlugins(t, "plugin1", "plugin2") |
... | ... |
@@ -274,6 +279,7 @@ func TestOpenshiftAdmissionPluginConfigFile(t *testing.T) { |
274 | 274 |
} |
275 | 275 |
|
276 | 276 |
func TestOpenshiftAdmissionPluginEmbeddedConfig(t *testing.T) { |
277 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
277 | 278 |
registerAdmissionPluginTestConfigType() |
278 | 279 |
registerAdmissionPlugins(t, "plugin1", "plugin2") |
279 | 280 |
_, openshiftClient := setupAdmissionTest(t, func(config *configapi.MasterConfig) { |
... | ... |
@@ -294,6 +300,8 @@ func TestOpenshiftAdmissionPluginEmbeddedConfig(t *testing.T) { |
294 | 294 |
|
295 | 295 |
func TestAlwaysPullImagesOn(t *testing.T) { |
296 | 296 |
testutil.RequireEtcd(t) |
297 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
298 |
+ |
|
297 | 299 |
masterConfig, err := testserver.DefaultMasterOptions() |
298 | 300 |
if err != nil { |
299 | 301 |
t.Fatalf("error creating config: %v", err) |
... | ... |
@@ -343,6 +351,8 @@ func TestAlwaysPullImagesOn(t *testing.T) { |
343 | 343 |
|
344 | 344 |
func TestAlwaysPullImagesOff(t *testing.T) { |
345 | 345 |
testutil.RequireEtcd(t) |
346 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
347 |
+ |
|
346 | 348 |
_, kubeConfigFile, err := testserver.StartTestMaster() |
347 | 349 |
if err != nil { |
348 | 350 |
t.Fatalf("error starting server: %v", err) |
... | ... |
@@ -20,6 +20,8 @@ import ( |
20 | 20 |
|
21 | 21 |
func TestRootAPIPaths(t *testing.T) { |
22 | 22 |
testutil.RequireEtcd(t) |
23 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
24 |
+ |
|
23 | 25 |
masterConfig, adminConfigFile, err := testserver.StartTestMaster() |
24 | 26 |
if err != nil { |
25 | 27 |
t.Fatalf("unexpected error starting test master: %v", err) |
... | ... |
@@ -36,6 +36,7 @@ func setupAuditTest(t *testing.T) (*kclient.Client, *client.Client) { |
36 | 36 |
|
37 | 37 |
func TestBasicFunctionalityWithAudit(t *testing.T) { |
38 | 38 |
kubeClient, _ := setupAuditTest(t) |
39 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
39 | 40 |
|
40 | 41 |
if _, err := kubeClient.Pods(kapi.NamespaceDefault).Watch(kapi.ListOptions{}); err != nil { |
41 | 42 |
t.Errorf("Unexpected error watching pods: %v", err) |
... | ... |
@@ -30,6 +30,8 @@ import ( |
30 | 30 |
|
31 | 31 |
func TestClusterReaderCoverage(t *testing.T) { |
32 | 32 |
testutil.RequireEtcd(t) |
33 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
34 |
+ |
|
33 | 35 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
34 | 36 |
if err != nil { |
35 | 37 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -114,6 +116,8 @@ func TestClusterReaderCoverage(t *testing.T) { |
114 | 114 |
|
115 | 115 |
func TestAuthorizationRestrictedAccessForProjectAdmins(t *testing.T) { |
116 | 116 |
testutil.RequireEtcd(t) |
117 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
118 |
+ |
|
117 | 119 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
118 | 120 |
if err != nil { |
119 | 121 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -185,6 +189,8 @@ func waitForProject(t *testing.T, client client.Interface, projectName string, d |
185 | 185 |
|
186 | 186 |
func TestAuthorizationResolution(t *testing.T) { |
187 | 187 |
testutil.RequireEtcd(t) |
188 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
189 |
+ |
|
188 | 190 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
189 | 191 |
if err != nil { |
190 | 192 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -373,7 +379,7 @@ func (test localResourceAccessReviewTest) run(t *testing.T) { |
373 | 373 |
|
374 | 374 |
func TestAuthorizationResourceAccessReview(t *testing.T) { |
375 | 375 |
testutil.RequireEtcd(t) |
376 |
- defer testutil.DumpEtcdOnFailure(t, "TestAuthorizationResourceAccessReview") |
|
376 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
377 | 377 |
|
378 | 378 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
379 | 379 |
if err != nil { |
... | ... |
@@ -567,6 +573,7 @@ func (test subjectAccessReviewTest) run(t *testing.T) { |
567 | 567 |
|
568 | 568 |
func TestAuthorizationSubjectAccessReviewAPIGroup(t *testing.T) { |
569 | 569 |
testutil.RequireEtcd(t) |
570 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
570 | 571 |
|
571 | 572 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
572 | 573 |
if err != nil { |
... | ... |
@@ -695,6 +702,8 @@ func TestAuthorizationSubjectAccessReviewAPIGroup(t *testing.T) { |
695 | 695 |
|
696 | 696 |
func TestAuthorizationSubjectAccessReview(t *testing.T) { |
697 | 697 |
testutil.RequireEtcd(t) |
698 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
699 |
+ |
|
698 | 700 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
699 | 701 |
if err != nil { |
700 | 702 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -979,6 +988,8 @@ func TestAuthorizationSubjectAccessReview(t *testing.T) { |
979 | 979 |
// this is needed to support old docker registry images |
980 | 980 |
func TestOldLocalSubjectAccessReviewEndpoint(t *testing.T) { |
981 | 981 |
testutil.RequireEtcd(t) |
982 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
983 |
+ |
|
982 | 984 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
983 | 985 |
if err != nil { |
984 | 986 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -1106,6 +1117,8 @@ func TestOldLocalSubjectAccessReviewEndpoint(t *testing.T) { |
1106 | 1106 |
// this is needed to support old who-can client |
1107 | 1107 |
func TestOldLocalResourceAccessReviewEndpoint(t *testing.T) { |
1108 | 1108 |
testutil.RequireEtcd(t) |
1109 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
1110 |
+ |
|
1109 | 1111 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
1110 | 1112 |
if err != nil { |
1111 | 1113 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -23,6 +23,8 @@ import ( |
23 | 23 |
|
24 | 24 |
func TestBootstrapPolicyAuthenticatedUsersAgainstOpenshiftNamespace(t *testing.T) { |
25 | 25 |
testutil.RequireEtcd(t) |
26 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
27 |
+ |
|
26 | 28 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
27 | 29 |
if err != nil { |
28 | 30 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -79,6 +81,8 @@ func TestBootstrapPolicyAuthenticatedUsersAgainstOpenshiftNamespace(t *testing.T |
79 | 79 |
|
80 | 80 |
func TestBootstrapPolicyOverwritePolicyCommand(t *testing.T) { |
81 | 81 |
testutil.RequireEtcd(t) |
82 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
83 |
+ |
|
82 | 84 |
masterConfig, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
83 | 85 |
if err != nil { |
84 | 86 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -121,6 +125,8 @@ func TestBootstrapPolicyOverwritePolicyCommand(t *testing.T) { |
121 | 121 |
|
122 | 122 |
func TestBootstrapPolicySelfSubjectAccessReviews(t *testing.T) { |
123 | 123 |
testutil.RequireEtcd(t) |
124 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
125 |
+ |
|
124 | 126 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
125 | 127 |
if err != nil { |
126 | 128 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -180,6 +186,8 @@ func TestBootstrapPolicySelfSubjectAccessReviews(t *testing.T) { |
180 | 180 |
|
181 | 181 |
func TestSelfSubjectAccessReviewsNonExistingNamespace(t *testing.T) { |
182 | 182 |
testutil.RequireEtcd(t) |
183 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
184 |
+ |
|
183 | 185 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
184 | 186 |
if err != nil { |
185 | 187 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -19,6 +19,7 @@ import ( |
19 | 19 |
) |
20 | 20 |
|
21 | 21 |
func TestPolicyBasedRestrictionOfBuildCreateAndCloneByStrategy(t *testing.T) { |
22 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
22 | 23 |
clusterAdminClient, projectAdminClient, projectEditorClient := setupBuildStrategyTest(t, false) |
23 | 24 |
|
24 | 25 |
clients := map[string]*client.Client{"admin": projectAdminClient, "editor": projectEditorClient} |
... | ... |
@@ -74,6 +75,7 @@ func TestPolicyBasedRestrictionOfBuildCreateAndCloneByStrategy(t *testing.T) { |
74 | 74 |
} |
75 | 75 |
|
76 | 76 |
func TestPolicyBasedRestrictionOfBuildConfigCreateAndInstantiateByStrategy(t *testing.T) { |
77 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
77 | 78 |
clusterAdminClient, projectAdminClient, projectEditorClient := setupBuildStrategyTest(t, true) |
78 | 79 |
|
79 | 80 |
clients := map[string]*client.Client{"admin": projectAdminClient, "editor": projectEditorClient} |
... | ... |
@@ -81,6 +81,7 @@ func mockBuild() *buildapi.Build { |
81 | 81 |
// TestConcurrentBuildControllers tests the transition of a build from new to pending. Ensures that only a single New -> Pending |
82 | 82 |
// transition happens and that only a single pod is created during a set period of time. |
83 | 83 |
func TestConcurrentBuildControllers(t *testing.T) { |
84 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
84 | 85 |
// Start a master with multiple BuildControllers |
85 | 86 |
osClient, kClient := setupBuildControllerTest(controllerCount{BuildControllers: 5}, t) |
86 | 87 |
|
... | ... |
@@ -161,6 +162,7 @@ type buildControllerPodTest struct { |
161 | 161 |
|
162 | 162 |
// TestConcurrentBuildPodControllers tests the lifecycle of a build pod when running multiple controllers. |
163 | 163 |
func TestConcurrentBuildPodControllers(t *testing.T) { |
164 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
164 | 165 |
// Start a master with multiple BuildPodControllers |
165 | 166 |
osClient, kClient := setupBuildControllerTest(controllerCount{BuildPodControllers: 5}, t) |
166 | 167 |
|
... | ... |
@@ -309,6 +311,7 @@ func TestConcurrentBuildPodControllers(t *testing.T) { |
309 | 309 |
} |
310 | 310 |
|
311 | 311 |
func TestConcurrentBuildImageChangeTriggerControllers(t *testing.T) { |
312 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
312 | 313 |
// Start a master with multiple ImageChangeTrigger controllers |
313 | 314 |
osClient, _ := setupBuildControllerTest(controllerCount{ImageChangeControllers: 5}, t) |
314 | 315 |
tag := "latest" |
... | ... |
@@ -322,21 +325,25 @@ func TestConcurrentBuildImageChangeTriggerControllers(t *testing.T) { |
322 | 322 |
} |
323 | 323 |
|
324 | 324 |
func TestBuildDeleteController(t *testing.T) { |
325 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
325 | 326 |
osClient, kClient := setupBuildControllerTest(controllerCount{}, t) |
326 | 327 |
runBuildDeleteTest(t, osClient, kClient) |
327 | 328 |
} |
328 | 329 |
|
329 | 330 |
func TestBuildRunningPodDeleteController(t *testing.T) { |
331 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
330 | 332 |
osClient, kClient := setupBuildControllerTest(controllerCount{}, t) |
331 | 333 |
runBuildRunningPodDeleteTest(t, osClient, kClient) |
332 | 334 |
} |
333 | 335 |
|
334 | 336 |
func TestBuildCompletePodDeleteController(t *testing.T) { |
337 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
335 | 338 |
osClient, kClient := setupBuildControllerTest(controllerCount{}, t) |
336 | 339 |
runBuildCompletePodDeleteTest(t, osClient, kClient) |
337 | 340 |
} |
338 | 341 |
|
339 | 342 |
func TestConcurrentBuildConfigControllers(t *testing.T) { |
343 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
340 | 344 |
osClient, kClient := setupBuildControllerTest(controllerCount{ConfigChangeControllers: 5}, t) |
341 | 345 |
runBuildConfigChangeControllerTest(t, osClient, kClient) |
342 | 346 |
} |
... | ... |
@@ -26,6 +26,7 @@ import ( |
26 | 26 |
var buildPodAdmissionTestTimeout time.Duration = 10 * time.Second |
27 | 27 |
|
28 | 28 |
func TestBuildDefaultGitHTTPProxy(t *testing.T) { |
29 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
29 | 30 |
httpProxy := "http://my.test.proxy:12345" |
30 | 31 |
oclient, kclient := setupBuildDefaultsAdmissionTest(t, &defaultsapi.BuildDefaultsConfig{ |
31 | 32 |
GitHTTPProxy: httpProxy, |
... | ... |
@@ -37,6 +38,7 @@ func TestBuildDefaultGitHTTPProxy(t *testing.T) { |
37 | 37 |
} |
38 | 38 |
|
39 | 39 |
func TestBuildDefaultGitHTTPSProxy(t *testing.T) { |
40 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
40 | 41 |
httpsProxy := "https://my.test.proxy:12345" |
41 | 42 |
oclient, kclient := setupBuildDefaultsAdmissionTest(t, &defaultsapi.BuildDefaultsConfig{ |
42 | 43 |
GitHTTPSProxy: httpsProxy, |
... | ... |
@@ -48,6 +50,7 @@ func TestBuildDefaultGitHTTPSProxy(t *testing.T) { |
48 | 48 |
} |
49 | 49 |
|
50 | 50 |
func TestBuildDefaultEnvironment(t *testing.T) { |
51 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
51 | 52 |
env := []kapi.EnvVar{ |
52 | 53 |
{ |
53 | 54 |
Name: "VAR1", |
... | ... |
@@ -68,6 +71,7 @@ func TestBuildDefaultEnvironment(t *testing.T) { |
68 | 68 |
} |
69 | 69 |
|
70 | 70 |
func TestBuildOverrideForcePull(t *testing.T) { |
71 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
71 | 72 |
oclient, kclient := setupBuildOverridesAdmissionTest(t, &overridesapi.BuildOverridesConfig{ |
72 | 73 |
ForcePull: true, |
73 | 74 |
}) |
... | ... |
@@ -78,6 +82,7 @@ func TestBuildOverrideForcePull(t *testing.T) { |
78 | 78 |
} |
79 | 79 |
|
80 | 80 |
func TestBuildOverrideForcePullCustomStrategy(t *testing.T) { |
81 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
81 | 82 |
oclient, kclient := setupBuildOverridesAdmissionTest(t, &overridesapi.BuildOverridesConfig{ |
82 | 83 |
ForcePull: true, |
83 | 84 |
}) |
... | ... |
@@ -19,6 +19,7 @@ import ( |
19 | 19 |
) |
20 | 20 |
|
21 | 21 |
func TestClusterResourceOverridePluginWithNoLimits(t *testing.T) { |
22 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
22 | 23 |
config := &overrideapi.ClusterResourceOverrideConfig{ |
23 | 24 |
LimitCPUToMemoryPercent: 100, |
24 | 25 |
CPURequestToLimitPercent: 50, |
... | ... |
@@ -45,6 +46,7 @@ func TestClusterResourceOverridePluginWithNoLimits(t *testing.T) { |
45 | 45 |
} |
46 | 46 |
|
47 | 47 |
func TestClusterResourceOverridePluginWithLimits(t *testing.T) { |
48 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
48 | 49 |
config := &overrideapi.ClusterResourceOverrideConfig{ |
49 | 50 |
LimitCPUToMemoryPercent: 100, |
50 | 51 |
CPURequestToLimitPercent: 50, |
... | ... |
@@ -26,6 +26,7 @@ func TestTriggers_manual(t *testing.T) { |
26 | 26 |
const namespace = "test-triggers-manual" |
27 | 27 |
|
28 | 28 |
testutil.RequireEtcd(t) |
29 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
29 | 30 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
30 | 31 |
if err != nil { |
31 | 32 |
t.Fatal(err) |
... | ... |
@@ -103,6 +104,7 @@ func TestTriggers_manual(t *testing.T) { |
103 | 103 |
// will start a new deployment when an image change happens. |
104 | 104 |
func TestTriggers_imageChange(t *testing.T) { |
105 | 105 |
testutil.RequireEtcd(t) |
106 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
106 | 107 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
107 | 108 |
if err != nil { |
108 | 109 |
t.Fatalf("error starting master: %v", err) |
... | ... |
@@ -208,6 +210,7 @@ waitForNewConfig: |
208 | 208 |
// trigger will have its image updated without starting a new deployment. |
209 | 209 |
func TestTriggers_imageChange_nonAutomatic(t *testing.T) { |
210 | 210 |
testutil.RequireEtcd(t) |
211 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
211 | 212 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
212 | 213 |
if err != nil { |
213 | 214 |
t.Fatalf("error starting master: %v", err) |
... | ... |
@@ -353,6 +356,7 @@ out: |
353 | 353 |
// will start a new deployment iff all images are resolved. |
354 | 354 |
func TestTriggers_MultipleICTs(t *testing.T) { |
355 | 355 |
testutil.RequireEtcd(t) |
356 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
356 | 357 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
357 | 358 |
if err != nil { |
358 | 359 |
t.Fatalf("error starting master: %v", err) |
... | ... |
@@ -508,6 +512,7 @@ func TestTriggers_configChange(t *testing.T) { |
508 | 508 |
const namespace = "test-triggers-configchange" |
509 | 509 |
|
510 | 510 |
testutil.RequireEtcd(t) |
511 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
511 | 512 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
512 | 513 |
if err != nil { |
513 | 514 |
t.Fatal(err) |
... | ... |
@@ -16,6 +16,7 @@ import ( |
16 | 16 |
|
17 | 17 |
func TestDiscoveryGroupVersions(t *testing.T) { |
18 | 18 |
testutil.RequireEtcd(t) |
19 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
19 | 20 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
20 | 21 |
if err != nil { |
21 | 22 |
t.Fatalf("unexpected error starting test master: %v", err) |
... | ... |
@@ -55,6 +55,7 @@ func testOne(t *testing.T, client *kclient.Client, namespace, addrType string, s |
55 | 55 |
|
56 | 56 |
func TestEndpointAdmission(t *testing.T) { |
57 | 57 |
testutil.RequireEtcd(t) |
58 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
58 | 59 |
masterConfig, err := testserver.DefaultMasterOptions() |
59 | 60 |
if err != nil { |
60 | 61 |
t.Fatalf("error creating config: %v", err) |
... | ... |
@@ -21,6 +21,7 @@ func TestExtensionsAPIDeletion(t *testing.T) { |
21 | 21 |
const projName = "ext-deletion-proj" |
22 | 22 |
|
23 | 23 |
testutil.RequireEtcd(t) |
24 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
24 | 25 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
25 | 26 |
if err != nil { |
26 | 27 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -19,6 +19,7 @@ func TestExtensionsAPIDisabledAutoscaleBatchEnabled(t *testing.T) { |
19 | 19 |
const projName = "ext-disabled-batch-enabled-proj" |
20 | 20 |
|
21 | 21 |
testutil.RequireEtcd(t) |
22 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
22 | 23 |
masterConfig, err := testserver.DefaultMasterOptions() |
23 | 24 |
if err != nil { |
24 | 25 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -147,6 +148,7 @@ func TestExtensionsAPIDisabled(t *testing.T) { |
147 | 147 |
const projName = "ext-disabled-proj" |
148 | 148 |
|
149 | 149 |
testutil.RequireEtcd(t) |
150 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
150 | 151 |
masterConfig, err := testserver.DefaultMasterOptions() |
151 | 152 |
if err != nil { |
152 | 153 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -22,6 +22,7 @@ import ( |
22 | 22 |
|
23 | 23 |
func TestExternalKube(t *testing.T) { |
24 | 24 |
testutil.RequireEtcd(t) |
25 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
25 | 26 |
// Start one OpenShift master as "cluster1" to play the external kube server |
26 | 27 |
cluster1MasterConfig, cluster1AdminConfigFile, err := testserver.StartTestMasterAPI() |
27 | 28 |
if err != nil { |
... | ... |
@@ -19,6 +19,7 @@ import ( |
19 | 19 |
|
20 | 20 |
func TestBasicUserBasedGroupManipulation(t *testing.T) { |
21 | 21 |
testutil.RequireEtcd(t) |
22 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
22 | 23 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
23 | 24 |
if err != nil { |
24 | 25 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -107,6 +108,7 @@ func TestBasicUserBasedGroupManipulation(t *testing.T) { |
107 | 107 |
|
108 | 108 |
func TestBasicGroupManipulation(t *testing.T) { |
109 | 109 |
testutil.RequireEtcd(t) |
110 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
110 | 111 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
111 | 112 |
if err != nil { |
112 | 113 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -177,6 +179,7 @@ func TestBasicGroupManipulation(t *testing.T) { |
177 | 177 |
|
178 | 178 |
func TestGroupCommands(t *testing.T) { |
179 | 179 |
testutil.RequireEtcd(t) |
180 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
180 | 181 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
181 | 182 |
if err != nil { |
182 | 183 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -21,6 +21,7 @@ const ( |
21 | 21 |
) |
22 | 22 |
|
23 | 23 |
func TestSimpleImageChangeBuildTriggerFromImageStreamTagSTI(t *testing.T) { |
24 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
24 | 25 |
projectAdminClient := setup(t) |
25 | 26 |
imageStream := mockImageStream2(tag) |
26 | 27 |
imageStreamMapping := mockImageStreamMapping(imageStream.Name, "someimage", tag, "registry:8080/openshift/test-image-trigger:"+tag) |
... | ... |
@@ -30,6 +31,7 @@ func TestSimpleImageChangeBuildTriggerFromImageStreamTagSTI(t *testing.T) { |
30 | 30 |
} |
31 | 31 |
|
32 | 32 |
func TestSimpleImageChangeBuildTriggerFromImageStreamTagSTIWithConfigChange(t *testing.T) { |
33 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
33 | 34 |
projectAdminClient := setup(t) |
34 | 35 |
imageStream := mockImageStream2(tag) |
35 | 36 |
imageStreamMapping := mockImageStreamMapping(imageStream.Name, "someimage", tag, "registry:8080/openshift/test-image-trigger:"+tag) |
... | ... |
@@ -39,6 +41,7 @@ func TestSimpleImageChangeBuildTriggerFromImageStreamTagSTIWithConfigChange(t *t |
39 | 39 |
} |
40 | 40 |
|
41 | 41 |
func TestSimpleImageChangeBuildTriggerFromImageStreamTagDocker(t *testing.T) { |
42 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
42 | 43 |
projectAdminClient := setup(t) |
43 | 44 |
imageStream := mockImageStream2(tag) |
44 | 45 |
imageStreamMapping := mockImageStreamMapping(imageStream.Name, "someimage", tag, "registry:8080/openshift/test-image-trigger:"+tag) |
... | ... |
@@ -48,6 +51,7 @@ func TestSimpleImageChangeBuildTriggerFromImageStreamTagDocker(t *testing.T) { |
48 | 48 |
} |
49 | 49 |
|
50 | 50 |
func TestSimpleImageChangeBuildTriggerFromImageStreamTagDockerWithConfigChange(t *testing.T) { |
51 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
51 | 52 |
projectAdminClient := setup(t) |
52 | 53 |
imageStream := mockImageStream2(tag) |
53 | 54 |
imageStreamMapping := mockImageStreamMapping(imageStream.Name, "someimage", tag, "registry:8080/openshift/test-image-trigger:"+tag) |
... | ... |
@@ -57,6 +61,7 @@ func TestSimpleImageChangeBuildTriggerFromImageStreamTagDockerWithConfigChange(t |
57 | 57 |
} |
58 | 58 |
|
59 | 59 |
func TestSimpleImageChangeBuildTriggerFromImageStreamTagCustom(t *testing.T) { |
60 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
60 | 61 |
projectAdminClient := setup(t) |
61 | 62 |
imageStream := mockImageStream2(tag) |
62 | 63 |
imageStreamMapping := mockImageStreamMapping(imageStream.Name, "someimage", tag, "registry:8080/openshift/test-image-trigger:"+tag) |
... | ... |
@@ -66,6 +71,7 @@ func TestSimpleImageChangeBuildTriggerFromImageStreamTagCustom(t *testing.T) { |
66 | 66 |
} |
67 | 67 |
|
68 | 68 |
func TestSimpleImageChangeBuildTriggerFromImageStreamTagCustomWithConfigChange(t *testing.T) { |
69 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
69 | 70 |
projectAdminClient := setup(t) |
70 | 71 |
imageStream := mockImageStream2(tag) |
71 | 72 |
imageStreamMapping := mockImageStreamMapping(imageStream.Name, "someimage", tag, "registry:8080/openshift/test-image-trigger:"+tag) |
... | ... |
@@ -364,6 +370,7 @@ func runTest(t *testing.T, testname string, projectAdminClient *client.Client, i |
364 | 364 |
} |
365 | 365 |
|
366 | 366 |
func TestMultipleImageChangeBuildTriggers(t *testing.T) { |
367 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
367 | 368 |
mockImageStream := func(name, tag string) *imageapi.ImageStream { |
368 | 369 |
return &imageapi.ImageStream{ |
369 | 370 |
ObjectMeta: kapi.ObjectMeta{Name: name}, |
... | ... |
@@ -34,6 +34,7 @@ import ( |
34 | 34 |
|
35 | 35 |
func TestImageStreamImport(t *testing.T) { |
36 | 36 |
testutil.RequireEtcd(t) |
37 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
37 | 38 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
38 | 39 |
if err != nil { |
39 | 40 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -197,6 +198,7 @@ func TestImageStreamImportOfV1ImageFromV2Repository(t *testing.T) { |
197 | 197 |
} |
198 | 198 |
|
199 | 199 |
testutil.RequireEtcd(t) |
200 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
200 | 201 |
|
201 | 202 |
// start regular HTTP servers |
202 | 203 |
requireAuth := false |
... | ... |
@@ -318,6 +320,7 @@ func TestImageStreamImportOfV1ImageFromV2Repository(t *testing.T) { |
318 | 318 |
|
319 | 319 |
func TestImageStreamImportAuthenticated(t *testing.T) { |
320 | 320 |
testutil.RequireEtcd(t) |
321 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
321 | 322 |
// start regular HTTP servers |
322 | 323 |
count := 0 |
323 | 324 |
server := httptest.NewServer(mockRegistryHandler(t, true, &count)) |
... | ... |
@@ -484,6 +487,7 @@ func TestImageStreamImportAuthenticated(t *testing.T) { |
484 | 484 |
// repository. |
485 | 485 |
func TestImageStreamImportTagsFromRepository(t *testing.T) { |
486 | 486 |
testutil.RequireEtcd(t) |
487 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
487 | 488 |
// start regular HTTP servers |
488 | 489 |
count := 0 |
489 | 490 |
server := httptest.NewServer(mockRegistryHandler(t, false, &count)) |
... | ... |
@@ -584,6 +588,7 @@ func TestImageStreamImportTagsFromRepository(t *testing.T) { |
584 | 584 |
// error occurs writes the error only once (instead of every interval) |
585 | 585 |
func TestImageStreamImportScheduled(t *testing.T) { |
586 | 586 |
testutil.RequireEtcd(t) |
587 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
587 | 588 |
written := make(chan struct{}, 1) |
588 | 589 |
count := 0 |
589 | 590 |
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
... | ... |
@@ -21,6 +21,7 @@ import ( |
21 | 21 |
const limitRangeName = "limits" |
22 | 22 |
|
23 | 23 |
func TestImageStreamTagsAdmission(t *testing.T) { |
24 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
24 | 25 |
kClient, client := setupImageStreamAdmissionTest(t) |
25 | 26 |
|
26 | 27 |
for i, name := range []string{imagetest.BaseImageWith1LayerDigest, imagetest.BaseImageWith2LayersDigest, imagetest.MiscImageDigest} { |
... | ... |
@@ -216,6 +217,7 @@ func TestImageStreamTagsAdmission(t *testing.T) { |
216 | 216 |
} |
217 | 217 |
|
218 | 218 |
func TestImageStreamAdmitSpecUpdate(t *testing.T) { |
219 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
219 | 220 |
kClient, client := setupImageStreamAdmissionTest(t) |
220 | 221 |
|
221 | 222 |
for i, name := range []string{imagetest.BaseImageWith1LayerDigest, imagetest.BaseImageWith2LayersDigest} { |
... | ... |
@@ -354,6 +356,7 @@ func TestImageStreamAdmitSpecUpdate(t *testing.T) { |
354 | 354 |
} |
355 | 355 |
|
356 | 356 |
func TestImageStreamAdmitStatusUpdate(t *testing.T) { |
357 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
357 | 358 |
kClient, client := setupImageStreamAdmissionTest(t) |
358 | 359 |
images := []*imageapi.Image{} |
359 | 360 |
|
... | ... |
@@ -20,6 +20,7 @@ import ( |
20 | 20 |
|
21 | 21 |
func TestImageStreamList(t *testing.T) { |
22 | 22 |
testutil.RequireEtcd(t) |
23 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
23 | 24 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
24 | 25 |
if err != nil { |
25 | 26 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -49,6 +50,7 @@ func mockImageStream() *imageapi.ImageStream { |
49 | 49 |
|
50 | 50 |
func TestImageStreamCreate(t *testing.T) { |
51 | 51 |
testutil.RequireEtcd(t) |
52 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
52 | 53 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
53 | 54 |
if err != nil { |
54 | 55 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -96,6 +98,7 @@ func TestImageStreamCreate(t *testing.T) { |
96 | 96 |
|
97 | 97 |
func TestImageStreamMappingCreate(t *testing.T) { |
98 | 98 |
testutil.RequireEtcd(t) |
99 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
99 | 100 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
100 | 101 |
if err != nil { |
101 | 102 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -283,6 +286,7 @@ func TestImageStreamMappingCreate(t *testing.T) { |
283 | 283 |
|
284 | 284 |
func TestImageStreamTagLifecycleHook(t *testing.T) { |
285 | 285 |
testutil.RequireEtcd(t) |
286 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
286 | 287 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
287 | 288 |
if err != nil { |
288 | 289 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -15,6 +15,7 @@ import ( |
15 | 15 |
|
16 | 16 |
func TestLeaderLeaseAcquire(t *testing.T) { |
17 | 17 |
testutil.RequireEtcd(t) |
18 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
18 | 19 |
client := testutil.NewEtcdClient() |
19 | 20 |
|
20 | 21 |
key := "/random/key" |
... | ... |
@@ -52,6 +53,7 @@ func TestLeaderLeaseAcquire(t *testing.T) { |
52 | 52 |
|
53 | 53 |
func TestLeaderLeaseWait(t *testing.T) { |
54 | 54 |
testutil.RequireEtcd(t) |
55 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
55 | 56 |
client := testutil.NewEtcdClient() |
56 | 57 |
key := "/random/key" |
57 | 58 |
|
... | ... |
@@ -93,6 +95,7 @@ func TestLeaderLeaseWait(t *testing.T) { |
93 | 93 |
|
94 | 94 |
func TestLeaderLeaseSwapWhileWaiting(t *testing.T) { |
95 | 95 |
testutil.RequireEtcd(t) |
96 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
96 | 97 |
client := testutil.NewEtcdClient() |
97 | 98 |
key := "/random/key" |
98 | 99 |
|
... | ... |
@@ -124,6 +127,7 @@ func TestLeaderLeaseSwapWhileWaiting(t *testing.T) { |
124 | 124 |
|
125 | 125 |
func TestLeaderLeaseReacquire(t *testing.T) { |
126 | 126 |
testutil.RequireEtcd(t) |
127 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
127 | 128 |
client := testutil.NewEtcdClient() |
128 | 129 |
key := "/random/key" |
129 | 130 |
|
... | ... |
@@ -28,6 +28,7 @@ type testRequest struct { |
28 | 28 |
|
29 | 29 |
func TestNodeAuth(t *testing.T) { |
30 | 30 |
testutil.RequireEtcd(t) |
31 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
31 | 32 |
// Server config |
32 | 33 |
masterConfig, nodeConfig, adminKubeConfigFile, err := testserver.StartTestAllInOne() |
33 | 34 |
if err != nil { |
... | ... |
@@ -309,6 +309,7 @@ func TestOAuthBasicAuthPassword(t *testing.T) { |
309 | 309 |
|
310 | 310 |
// Build master config |
311 | 311 |
testutil.RequireEtcd(t) |
312 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
312 | 313 |
masterOptions, err := testserver.DefaultMasterOptions() |
313 | 314 |
if err != nil { |
314 | 315 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -24,6 +24,7 @@ func TestOAuthHTPasswd(t *testing.T) { |
24 | 24 |
defer os.Remove(htpasswdFile.Name()) |
25 | 25 |
|
26 | 26 |
testutil.RequireEtcd(t) |
27 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
27 | 28 |
masterOptions, err := testserver.DefaultMasterOptions() |
28 | 29 |
if err != nil { |
29 | 30 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -46,6 +46,7 @@ func TestOAuthRequestHeader(t *testing.T) { |
46 | 46 |
|
47 | 47 |
// Get master config |
48 | 48 |
testutil.RequireEtcd(t) |
49 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
49 | 50 |
masterOptions, err := testserver.DefaultMasterOptions() |
50 | 51 |
if err != nil { |
51 | 52 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -55,6 +55,7 @@ func (u *testUser) ConvertFromAccessToken(*api.OAuthAccessToken) (interface{}, e |
55 | 55 |
|
56 | 56 |
func TestOAuthStorage(t *testing.T) { |
57 | 57 |
testutil.RequireEtcd(t) |
58 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
58 | 59 |
|
59 | 60 |
masterOptions, err := testserver.DefaultMasterOptions() |
60 | 61 |
if err != nil { |
... | ... |
@@ -23,17 +23,20 @@ import ( |
23 | 23 |
) |
24 | 24 |
|
25 | 25 |
func TestPodNodeConstraintsAdmissionPluginSetNodeNameClusterAdmin(t *testing.T) { |
26 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
26 | 27 |
oclient, kclient := setupClusterAdminPodNodeConstraintsTest(t, &pluginapi.PodNodeConstraintsConfig{}) |
27 | 28 |
testPodNodeConstraintsObjectCreationWithPodTemplate(t, "set node name, cluster admin", kclient, oclient, "nodename.example.com", nil, false) |
28 | 29 |
} |
29 | 30 |
|
30 | 31 |
func TestPodNodeConstraintsAdmissionPluginSetNodeNameNonAdmin(t *testing.T) { |
32 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
31 | 33 |
config := &pluginapi.PodNodeConstraintsConfig{} |
32 | 34 |
oclient, kclient := setupUserPodNodeConstraintsTest(t, config, "derples") |
33 | 35 |
testPodNodeConstraintsObjectCreationWithPodTemplate(t, "set node name, regular user", kclient, oclient, "nodename.example.com", nil, true) |
34 | 36 |
} |
35 | 37 |
|
36 | 38 |
func TestPodNodeConstraintsAdmissionPluginSetNodeSelectorClusterAdmin(t *testing.T) { |
39 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
37 | 40 |
config := &pluginapi.PodNodeConstraintsConfig{ |
38 | 41 |
NodeSelectorLabelBlacklist: []string{"hostname"}, |
39 | 42 |
} |
... | ... |
@@ -42,6 +45,7 @@ func TestPodNodeConstraintsAdmissionPluginSetNodeSelectorClusterAdmin(t *testing |
42 | 42 |
} |
43 | 43 |
|
44 | 44 |
func TestPodNodeConstraintsAdmissionPluginSetNodeSelectorNonAdmin(t *testing.T) { |
45 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
45 | 46 |
config := &pluginapi.PodNodeConstraintsConfig{ |
46 | 47 |
NodeSelectorLabelBlacklist: []string{"hostname"}, |
47 | 48 |
} |
... | ... |
@@ -125,6 +125,7 @@ func projectRequestLimitUsers() map[string]labels.Set { |
125 | 125 |
} |
126 | 126 |
|
127 | 127 |
func TestProjectRequestLimitMultiLevelConfig(t *testing.T) { |
128 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
128 | 129 |
kclient, oclient, clientConfig := setupProjectRequestLimitTest(t, projectRequestLimitMultiLevelConfig()) |
129 | 130 |
setupProjectRequestLimitUsers(t, oclient, projectRequestLimitUsers()) |
130 | 131 |
setupProjectRequestLimitNamespaces(t, kclient, map[string]int{ |
... | ... |
@@ -140,6 +141,7 @@ func TestProjectRequestLimitMultiLevelConfig(t *testing.T) { |
140 | 140 |
} |
141 | 141 |
|
142 | 142 |
func TestProjectRequestLimitEmptyConfig(t *testing.T) { |
143 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
143 | 144 |
kclient, oclient, clientConfig := setupProjectRequestLimitTest(t, projectRequestLimitEmptyConfig()) |
144 | 145 |
setupProjectRequestLimitUsers(t, oclient, projectRequestLimitUsers()) |
145 | 146 |
setupProjectRequestLimitNamespaces(t, kclient, map[string]int{ |
... | ... |
@@ -155,6 +157,7 @@ func TestProjectRequestLimitEmptyConfig(t *testing.T) { |
155 | 155 |
} |
156 | 156 |
|
157 | 157 |
func TestProjectRequestLimitSingleConfig(t *testing.T) { |
158 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
158 | 159 |
kclient, oclient, clientConfig := setupProjectRequestLimitTest(t, projectRequestLimitSingleDefaultConfig()) |
159 | 160 |
setupProjectRequestLimitUsers(t, oclient, projectRequestLimitUsers()) |
160 | 161 |
setupProjectRequestLimitNamespaces(t, kclient, map[string]int{ |
... | ... |
@@ -172,6 +175,7 @@ func TestProjectRequestLimitSingleConfig(t *testing.T) { |
172 | 172 |
// we had a bug where this failed on ` uenxpected error: metadata.name: Invalid value: "system:admin": may not contain ":"` |
173 | 173 |
// make sure we never have that bug again and that project limits for them work |
174 | 174 |
func TestProjectRequestLimitAsSystemAdmin(t *testing.T) { |
175 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
175 | 176 |
_, oclient, _ := setupProjectRequestLimitTest(t, projectRequestLimitSingleDefaultConfig()) |
176 | 177 |
|
177 | 178 |
if _, err := oclient.ProjectRequests().Create(&projectapi.ProjectRequest{ |
... | ... |
@@ -20,6 +20,7 @@ import ( |
20 | 20 |
// TestProjectIsNamespace verifies that a project is a namespace, and a namespace is a project |
21 | 21 |
func TestProjectIsNamespace(t *testing.T) { |
22 | 22 |
testutil.RequireEtcd(t) |
23 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
23 | 24 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
24 | 25 |
if err != nil { |
25 | 26 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -86,6 +87,7 @@ func TestProjectIsNamespace(t *testing.T) { |
86 | 86 |
// TestProjectMustExist verifies that content cannot be added in a project that does not exist |
87 | 87 |
func TestProjectMustExist(t *testing.T) { |
88 | 88 |
testutil.RequireEtcd(t) |
89 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
89 | 90 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
90 | 91 |
if err != nil { |
91 | 92 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -156,6 +158,7 @@ func TestProjectMustExist(t *testing.T) { |
156 | 156 |
|
157 | 157 |
func TestProjectWatch(t *testing.T) { |
158 | 158 |
testutil.RequireEtcd(t) |
159 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
159 | 160 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
160 | 161 |
if err != nil { |
161 | 162 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -29,6 +29,7 @@ import ( |
29 | 29 |
// processed. Reload should similarly suppressed on subsequent |
30 | 30 |
// resyncs. |
31 | 31 |
func TestRouterReloadSuppressionOnSync(t *testing.T) { |
32 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
32 | 33 |
stressRouter( |
33 | 34 |
t, |
34 | 35 |
// Allow the test to be configured to enable experimentation |
... | ... |
@@ -46,6 +46,7 @@ func testPodDuration(t *testing.T, name string, kclient kclient.Interface, pod * |
46 | 46 |
} |
47 | 47 |
|
48 | 48 |
func TestRunOnceDurationAdmissionPlugin(t *testing.T) { |
49 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
49 | 50 |
var secs int64 = 3600 |
50 | 51 |
config := &pluginapi.RunOnceDurationConfig{ |
51 | 52 |
ActiveDeadlineSecondsLimit: &secs, |
... | ... |
@@ -58,6 +59,7 @@ func TestRunOnceDurationAdmissionPlugin(t *testing.T) { |
58 | 58 |
} |
59 | 59 |
|
60 | 60 |
func TestRunOnceDurationAdmissionPluginProjectLimit(t *testing.T) { |
61 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
61 | 62 |
var secs int64 = 3600 |
62 | 63 |
config := &pluginapi.RunOnceDurationConfig{ |
63 | 64 |
ActiveDeadlineSecondsLimit: &secs, |
... | ... |
@@ -14,6 +14,7 @@ import ( |
14 | 14 |
|
15 | 15 |
func TestPodUpdateSCCEnforcement(t *testing.T) { |
16 | 16 |
testutil.RequireEtcd(t) |
17 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
17 | 18 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
18 | 19 |
if err != nil { |
19 | 20 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -24,6 +24,7 @@ import ( |
24 | 24 |
|
25 | 25 |
func TestScopedTokens(t *testing.T) { |
26 | 26 |
testutil.RequireEtcd(t) |
27 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
27 | 28 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
28 | 29 |
if err != nil { |
29 | 30 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -100,6 +101,7 @@ func TestScopedTokens(t *testing.T) { |
100 | 100 |
|
101 | 101 |
func TestScopedImpersonation(t *testing.T) { |
102 | 102 |
testutil.RequireEtcd(t) |
103 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
103 | 104 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
104 | 105 |
if err != nil { |
105 | 106 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -144,6 +146,7 @@ func TestScopedImpersonation(t *testing.T) { |
144 | 144 |
|
145 | 145 |
func TestScopeEscalations(t *testing.T) { |
146 | 146 |
testutil.RequireEtcd(t) |
147 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
147 | 148 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
148 | 149 |
if err != nil { |
149 | 150 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -224,6 +227,7 @@ func TestScopeEscalations(t *testing.T) { |
224 | 224 |
|
225 | 225 |
func TestTokensWithIllegalScopes(t *testing.T) { |
226 | 226 |
testutil.RequireEtcd(t) |
227 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
227 | 228 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
228 | 229 |
if err != nil { |
229 | 230 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -28,6 +28,7 @@ import ( |
28 | 28 |
|
29 | 29 |
func TestServiceAccountAuthorization(t *testing.T) { |
30 | 30 |
testutil.RequireEtcd(t) |
31 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
31 | 32 |
saNamespace := api.NamespaceDefault |
32 | 33 |
saName := serviceaccountadmission.DefaultServiceAccountName |
33 | 34 |
saUsername := serviceaccount.MakeUsername(saNamespace, saName) |
... | ... |
@@ -248,6 +249,7 @@ func TestAutomaticCreationOfPullSecrets(t *testing.T) { |
248 | 248 |
saName := serviceaccountadmission.DefaultServiceAccountName |
249 | 249 |
|
250 | 250 |
testutil.RequireEtcd(t) |
251 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
251 | 252 |
_, clusterAdminConfig, err := testserver.StartTestMaster() |
252 | 253 |
if err != nil { |
253 | 254 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -305,6 +307,7 @@ func getServiceAccountPullSecret(client *kclient.Client, ns, name string) (strin |
305 | 305 |
|
306 | 306 |
func TestEnforcingServiceAccount(t *testing.T) { |
307 | 307 |
testutil.RequireEtcd(t) |
308 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
308 | 309 |
masterConfig, err := testserver.DefaultMasterOptions() |
309 | 310 |
masterConfig.ServiceAccountConfig.LimitSecretReferences = false |
310 | 311 |
if err != nil { |
... | ... |
@@ -30,6 +30,7 @@ const ( |
30 | 30 |
|
31 | 31 |
func TestSNI(t *testing.T) { |
32 | 32 |
testutil.RequireEtcd(t) |
33 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
33 | 34 |
// Create tempfiles with certs and keys we're going to use |
34 | 35 |
certNames := map[string]string{} |
35 | 36 |
for certName, certContents := range sniCerts { |
... | ... |
@@ -21,6 +21,7 @@ import ( |
21 | 21 |
|
22 | 22 |
func TestTemplate(t *testing.T) { |
23 | 23 |
testutil.RequireEtcd(t) |
24 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
24 | 25 |
_, path, err := testserver.StartTestMasterAPI() |
25 | 26 |
if err != nil { |
26 | 27 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -119,6 +120,7 @@ func walkJSONFiles(inDir string, fn func(name, path string, data []byte)) error |
119 | 119 |
|
120 | 120 |
func TestTemplateTransformationFromConfig(t *testing.T) { |
121 | 121 |
testutil.RequireEtcd(t) |
122 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
122 | 123 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
123 | 124 |
if err != nil { |
124 | 125 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -23,6 +23,7 @@ import ( |
23 | 23 |
|
24 | 24 |
func TestUnprivilegedNewProject(t *testing.T) { |
25 | 25 |
testutil.RequireEtcd(t) |
26 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
26 | 27 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
27 | 28 |
if err != nil { |
28 | 29 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -92,6 +93,7 @@ func TestUnprivilegedNewProject(t *testing.T) { |
92 | 92 |
} |
93 | 93 |
func TestUnprivilegedNewProjectFromTemplate(t *testing.T) { |
94 | 94 |
testutil.RequireEtcd(t) |
95 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
95 | 96 |
namespace := "foo" |
96 | 97 |
templateName := "bar" |
97 | 98 |
|
... | ... |
@@ -187,6 +189,7 @@ func TestUnprivilegedNewProjectFromTemplate(t *testing.T) { |
187 | 187 |
|
188 | 188 |
func TestUnprivilegedNewProjectDenied(t *testing.T) { |
189 | 189 |
testutil.RequireEtcd(t) |
190 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
190 | 191 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
191 | 192 |
if err != nil { |
192 | 193 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -67,6 +67,7 @@ func makeMapping(user, identity string) *api.UserIdentityMapping { |
67 | 67 |
|
68 | 68 |
func TestUserInitialization(t *testing.T) { |
69 | 69 |
testutil.RequireEtcd(t) |
70 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
70 | 71 |
masterConfig, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
71 | 72 |
if err != nil { |
72 | 73 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -72,6 +72,7 @@ func signedManifest(name string) ([]byte, digest.Digest, error) { |
72 | 72 |
|
73 | 73 |
func TestV2RegistryGetTags(t *testing.T) { |
74 | 74 |
testutil.RequireEtcd(t) |
75 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
75 | 76 |
_, clusterAdminKubeConfig, err := testserver.StartTestMasterAPI() |
76 | 77 |
if err != nil { |
77 | 78 |
t.Fatalf("error starting master: %v", err) |
... | ... |
@@ -85,6 +85,7 @@ func tryAccessURL(t *testing.T, url string, expectedStatus int, expectedRedirect |
85 | 85 |
|
86 | 86 |
func TestAccessOriginWebConsole(t *testing.T) { |
87 | 87 |
testutil.RequireEtcd(t) |
88 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
88 | 89 |
masterOptions, err := testserver.DefaultMasterOptions() |
89 | 90 |
if err != nil { |
90 | 91 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -112,6 +113,7 @@ func TestAccessOriginWebConsole(t *testing.T) { |
112 | 112 |
|
113 | 113 |
func TestAccessDisabledWebConsole(t *testing.T) { |
114 | 114 |
testutil.RequireEtcd(t) |
115 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
115 | 116 |
masterOptions, err := testserver.DefaultMasterOptions() |
116 | 117 |
if err != nil { |
117 | 118 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -150,6 +152,7 @@ func TestAccessDisabledWebConsole(t *testing.T) { |
150 | 150 |
|
151 | 151 |
func TestAccessOriginWebConsoleMultipleIdentityProviders(t *testing.T) { |
152 | 152 |
testutil.RequireEtcd(t) |
153 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
153 | 154 |
masterOptions, err := testserver.DefaultMasterOptions() |
154 | 155 |
if err != nil { |
155 | 156 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -55,6 +55,7 @@ func TestWebConsoleExtensions(t *testing.T) { |
55 | 55 |
|
56 | 56 |
// Build master config. |
57 | 57 |
testutil.RequireEtcd(t) |
58 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
58 | 59 |
masterOptions, err := testserver.DefaultMasterOptions() |
59 | 60 |
if err != nil { |
60 | 61 |
t.Fatalf("Failed creating master configuration: %v", err) |
... | ... |
@@ -21,6 +21,7 @@ import ( |
21 | 21 |
|
22 | 22 |
func TestWebhookGitHubPushWithImage(t *testing.T) { |
23 | 23 |
testutil.RequireEtcd(t) |
24 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
24 | 25 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
25 | 26 |
if err != nil { |
26 | 27 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -123,6 +124,7 @@ func TestWebhookGitHubPushWithImage(t *testing.T) { |
123 | 123 |
|
124 | 124 |
func TestWebhookGitHubPushWithImageStream(t *testing.T) { |
125 | 125 |
testutil.RequireEtcd(t) |
126 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
126 | 127 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
127 | 128 |
if err != nil { |
128 | 129 |
t.Fatalf("unexpected error: %v", err) |
... | ... |
@@ -223,6 +225,7 @@ func TestWebhookGitHubPushWithImageStream(t *testing.T) { |
223 | 223 |
|
224 | 224 |
func TestWebhookGitHubPing(t *testing.T) { |
225 | 225 |
testutil.RequireEtcd(t) |
226 |
+ defer testutil.DumpEtcdOnFailure(t) |
|
226 | 227 |
_, clusterAdminKubeConfig, err := testserver.StartTestMaster() |
227 | 228 |
if err != nil { |
228 | 229 |
t.Fatalf("unable to start master: %v", err) |
... | ... |
@@ -7,6 +7,8 @@ import ( |
7 | 7 |
"log" |
8 | 8 |
"math/rand" |
9 | 9 |
"os" |
10 |
+ goruntime "runtime" |
|
11 |
+ "strings" |
|
10 | 12 |
"testing" |
11 | 13 |
|
12 | 14 |
"github.com/coreos/pkg/capnslog" |
... | ... |
@@ -84,11 +86,16 @@ func withEtcdKey(f func(string)) { |
84 | 84 |
f(prefix) |
85 | 85 |
} |
86 | 86 |
|
87 |
-func DumpEtcdOnFailure(t *testing.T, name string) { |
|
87 |
+func DumpEtcdOnFailure(t *testing.T) { |
|
88 | 88 |
if !t.Failed() { |
89 | 89 |
return |
90 | 90 |
} |
91 | 91 |
|
92 |
+ pc := make([]uintptr, 10) |
|
93 |
+ goruntime.Callers(2, pc) |
|
94 |
+ f := goruntime.FuncForPC(pc[0]) |
|
95 |
+ name := f.Name()[strings.LastIndex(f.Name(), "Test"):] |
|
96 |
+ |
|
92 | 97 |
client := NewEtcdClient() |
93 | 98 |
etcdResponse, err := client.RawGet("/", false, true) |
94 | 99 |
if err != nil { |