@@ -18,8 +18,10 @@ limitations under the License.
18
18
package gceGCEDriver
19
19
20
20
import (
21
+ "context"
21
22
"fmt"
22
23
"testing"
24
+ "time"
23
25
24
26
csi "github.com/container-storage-interface/spec/lib/go/csi"
25
27
"github.com/google/go-cmp/cmp"
@@ -857,3 +859,54 @@ func TestGetHyperdiskAccessModeFromCapabilities(t *testing.T) {
857
859
}
858
860
}
859
861
}
862
+
863
+ func TestIsDataCacheEnabledNodePool (t * testing.T ) {
864
+ for _ , tc := range []struct {
865
+ name string
866
+ nodeName string
867
+ wantDataCacheEnabled bool
868
+ dataCacheFlag bool
869
+ wantErr bool
870
+ }{
871
+ {
872
+ // Valid nod ename tries to fetch the data cache count from node labels resulting in an error
873
+ name : "node name is provided" ,
874
+ nodeName : "gke-node-some-name" ,
875
+ dataCacheFlag : true ,
876
+ wantDataCacheEnabled : true ,
877
+ wantErr : true ,
878
+ },
879
+ {
880
+ name : "no node name provided" ,
881
+ nodeName : "" ,
882
+ dataCacheFlag : true ,
883
+ wantDataCacheEnabled : false ,
884
+ },
885
+ {
886
+ name : "test node" ,
887
+ nodeName : common .TestNode ,
888
+ dataCacheFlag : true ,
889
+ wantDataCacheEnabled : true ,
890
+ },
891
+ {
892
+ name : "node name provided but data cache feature disabled" ,
893
+ nodeName : "" ,
894
+ dataCacheFlag : false ,
895
+ wantDataCacheEnabled : false ,
896
+ },
897
+ } {
898
+ t .Logf ("Running test: %v" , tc .name )
899
+ ctx , cancel := context .WithTimeout (context .Background (), 10 * time .Second )
900
+ defer cancel ()
901
+ gotDataCacheEnabled , err := IsDataCacheEnabledNodePool (ctx , tc .nodeName , tc .dataCacheFlag )
902
+ if err != nil {
903
+ if ! tc .wantErr {
904
+ t .Errorf ("unexpected error, got %v" , err )
905
+ }
906
+ continue
907
+ }
908
+ if gotDataCacheEnabled != tc .wantDataCacheEnabled {
909
+ t .Errorf ("want %t, got %t" , tc .wantDataCacheEnabled , gotDataCacheEnabled )
910
+ }
911
+ }
912
+ }
0 commit comments