From 3eee17bf99d3bc2a5efc96856cbdf1bdee8e9804 Mon Sep 17 00:00:00 2001 From: shashidharatd Date: Tue, 8 Aug 2017 19:16:27 +0530 Subject: [PATCH] Refactor TestUpdateClusterRace and TestUpdateClusterStatusOK --- .../cluster/clustercontroller_test.go | 36 ++++--------------- 1 file changed, 6 insertions(+), 30 deletions(-) diff --git a/federation/pkg/federation-controller/cluster/clustercontroller_test.go b/federation/pkg/federation-controller/cluster/clustercontroller_test.go index e9334b06afc..8ae0acc029d 100644 --- a/federation/pkg/federation-controller/cluster/clustercontroller_test.go +++ b/federation/pkg/federation-controller/cluster/clustercontroller_test.go @@ -22,17 +22,15 @@ import ( "net/http" "net/http/httptest" "testing" + "time" "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/uuid" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" - clientcmdapi "k8s.io/client-go/tools/clientcmd/api" federationv1beta1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" - controllerutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" - "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/testapi" ) @@ -125,15 +123,8 @@ func TestUpdateClusterStatusOK(t *testing.T) { } federationClientSet := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, "cluster-controller")) - // Override KubeconfigGetterForSecret to avoid having to setup service accounts and mount files with secret tokens. - originalGetter := controllerutil.KubeconfigGetterForSecret - controllerutil.KubeconfigGetterForSecret = func(s *api.Secret) clientcmd.KubeconfigGetter { - return func() (*clientcmdapi.Config, error) { - return &clientcmdapi.Config{}, nil - } - } - manager := newClusterController(federationClientSet, 5) + manager.addToClusterSet(federationCluster) err = manager.updateClusterStatus() if err != nil { t.Errorf("Failed to Update Cluster Status: %v", err) @@ -146,9 +137,6 @@ func TestUpdateClusterStatusOK(t *testing.T) { t.Errorf("Failed to Update Cluster Status") } } - - // Reset KubeconfigGetterForSecret - controllerutil.KubeconfigGetterForSecret = originalGetter } // Test races between informer's updates and routine updates of cluster status @@ -170,21 +158,10 @@ func TestUpdateClusterRace(t *testing.T) { } federationClientSet := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, "cluster-controller")) - // Override KubeconfigGetterForSecret to avoid having to setup service accounts and mount files with secret tokens. - originalGetter := controllerutil.KubeconfigGetterForSecret - controllerutil.KubeconfigGetterForSecret = func(s *api.Secret) clientcmd.KubeconfigGetter { - return func() (*clientcmdapi.Config, error) { - return &clientcmdapi.Config{}, nil - } - } + manager := newClusterController(federationClientSet, 1*time.Millisecond) - manager := newClusterController(federationClientSet, 5) - - go func() { - for { - manager.UpdateClusterStatus() - } - }() + stop := make(chan struct{}) + manager.Run(stop) // try to trigger the race in UpdateClusterStatus for i := 0; i < 10; i++ { @@ -192,6 +169,5 @@ func TestUpdateClusterRace(t *testing.T) { manager.delFromClusterSet(federationCluster) } - // Reset KubeconfigGetterForSecret - controllerutil.KubeconfigGetterForSecret = originalGetter + close(stop) }