From 0acda5efc6e0a8e4a0d4004405540493e67a1923 Mon Sep 17 00:00:00 2001 From: Andrew McDermott Date: Tue, 22 Aug 2017 08:10:54 +0100 Subject: [PATCH] Print root cause failure message in StartTestServerOrDie() If the server cannot be started then print the underling root cause as opposed to the generic 'Failed to create server chain'. --- cmd/kube-apiserver/app/testing/testserver.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cmd/kube-apiserver/app/testing/testserver.go b/cmd/kube-apiserver/app/testing/testserver.go index 5638a0e0afe..abbbb979435 100644 --- a/cmd/kube-apiserver/app/testing/testserver.go +++ b/cmd/kube-apiserver/app/testing/testserver.go @@ -128,8 +128,14 @@ func StartTestServerOrDie(t *testing.T) (*restclient.Config, TearDownFunc) { // retry test because the bind might fail due to a race with another process // binding to the port. We cannot listen to :0 (then the kernel would give us // a port which is free for sure), so we need this workaround. + + var err error + for retry := 0; retry < 5 && !t.Failed(); retry++ { - config, td, err := StartTestServer(t) + var config *restclient.Config + var td TearDownFunc + + config, td, err = StartTestServer(t) if err == nil { return config, td } @@ -139,7 +145,7 @@ func StartTestServerOrDie(t *testing.T) (*restclient.Config, TearDownFunc) { t.Logf("Bind error, retrying...") } - t.Fatalf("Failed to launch server") + t.Fatalf("Failed to launch server: %v", err) return nil, nil }