Skip to content

Commit

Permalink
Add testing files and unit test coverage for unity (#206)
Browse files Browse the repository at this point in the history
* adding back badDriver files

* add unit tests for unity

* ran gofmt
  • Loading branch information
ChristianAtDell committed Oct 15, 2024
1 parent fd61129 commit 3097ea6
Show file tree
Hide file tree
Showing 13 changed files with 77 additions and 10 deletions.
21 changes: 15 additions & 6 deletions pkg/drivers/common_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,10 @@ func csmWithTolerations(driver csmv1.DriverType, version string) csmv1.Container
res.Spec.Driver.Node.NodeSelector = map[string]string{"thisIs": "NodeSelector"}
res.Spec.Driver.Controller.NodeSelector = map[string]string{"thisIs": "NodeSelector"}

// Add log level to cover some code in GetConfigMap
envVarLogLevel := corev1.EnvVar{Name: "CSI_LOG_LEVEL"}
res.Spec.Driver.Common.Envs = []corev1.EnvVar{envVarLogLevel}
// Add CSI_LOG_LEVEL environment variables
envVar := corev1.EnvVar{Name: "CSI_LOG_LEVEL"}
res.Spec.Driver.Common.Envs = []corev1.EnvVar{envVar}

// Add sidecars to trigger code in controller
sideCarObjEnabledNil := csmv1.ContainerTemplate{
Name: "driver",
Expand Down Expand Up @@ -192,20 +193,28 @@ func csmWithUnity(driver csmv1.DriverType, version string) csmv1.ContainerStorag
// Add image name
res.Spec.Driver.Common.Image = "thisIsAnImage"

// Add pstore driver version
// Add unity driver version
res.Spec.Driver.ConfigVersion = version

// Add pstore driver type
// Add unity driver type
res.Spec.Driver.CSIDriverType = driver

// Add NodeSelector to node and controller
res.Spec.Driver.Node.NodeSelector = map[string]string{"thisIs": "NodeSelector"}
res.Spec.Driver.Controller.NodeSelector = map[string]string{"thisIs": "NodeSelector"}

// Add environment variables
envVar1 := corev1.EnvVar{Name: "X_CSI_UNITY_ALLOW_MULTI_POD_ACCESS", Value: "false"}
envVar2 := corev1.EnvVar{Name: "MAX_UNITY_VOLUMES_PER_NODE", Value: "0"}
envVar3 := corev1.EnvVar{Name: "X_CSI_UNITY_SYNC_NODEINFO_INTERVAL", Value: "15"}
envVar4 := corev1.EnvVar{Name: "TENANT_NAME", Value: ""}
envVar5 := corev1.EnvVar{Name: "CSI_LOG_LEVEL", Value: "debug"}
res.Spec.Driver.Common.Envs = []corev1.EnvVar{envVar1, envVar2, envVar3, envVar4, envVar5}

// Add node name prefix to cover some code in GetNode
// nodeNamePrefix := corev1.EnvVar{Name: "X_CSI_UNITY_NODENAME_PREFIX"}

// Add node fields specific to powerstore
// Add node fields specific to unity
healthMonitor := corev1.EnvVar{Name: "X_CSI_HEALTH_MONITOR_ENABLED", Value: "true"}
res.Spec.Driver.Node.Envs = []corev1.EnvVar{healthMonitor}

Expand Down
20 changes: 18 additions & 2 deletions pkg/drivers/unity_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import (
var (
csmUnity = csmForUnity("csm")
unityCSMBadVersion = csmForUnityBadVersion()
unityCSMBadConfig = csmForUnityBadConfig()
unityClient = crclient.NewFakeClientNoInjector(objects)
configJSONFileGoodUnity = fmt.Sprintf("%s/driverconfig/%s/config.json", config.ConfigDirectory, csmv1.Unity)
unitySecret = shared.MakeSecretWithJSON("csm-creds", "driver-test", configJSONFileGoodUnity)
Expand All @@ -48,6 +49,7 @@ var (

{"happy path", csmUnity, unityClient, unitySecret, ""},
{"bad version", unityCSMBadVersion, unityClient, unitySecret, "not supported"},
{"bad config", unityCSMBadConfig, unityClient, unitySecret, "failed to find secret"},
}

unityPrecheckTests = []struct {
Expand Down Expand Up @@ -96,19 +98,33 @@ func TestPrecheckUnity(t *testing.T) {
func csmForUnityBadVersion() csmv1.ContainerStorageModule {
res := shared.MakeCSM("csm", "driver-test", shared.UnityConfigVersion)

// Add pstore driver version
// Add unity driver version
res.Spec.Driver.ConfigVersion = shared.BadConfigVersion
res.Spec.Driver.CSIDriverType = csmv1.Unity

return res
}

// makes a csm object with a bad auth secret
func csmForUnityBadConfig() csmv1.ContainerStorageModule {
res := shared.MakeCSM("csm", "driver-test", shared.UnityConfigVersion)

// Add unity driver version
res.Spec.Driver.ConfigVersion = shared.UnityConfigVersion
res.Spec.Driver.CSIDriverType = csmv1.Unity

// Add bad auth secret name
res.Spec.Driver.AuthSecret = "notARealSecret"

return res
}

// makes a csm object
func csmForUnity(customCSMName string) csmv1.ContainerStorageModule {
res := shared.MakeCSM(customCSMName, "driver-test", shared.UnityConfigVersion)
res.Spec.Driver.AuthSecret = "csm-creds"

// Add pstore driver version
// Add unity driver version
res.Spec.Driver.ConfigVersion = shared.UnityConfigVersion
res.Spec.Driver.CSIDriverType = csmv1.Unity

Expand Down
4 changes: 4 additions & 0 deletions tests/config/driverconfig/badDriver/v2.4.0/bad.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
this snfoiasga
is

843*&(*(% invalid YAml
4 changes: 4 additions & 0 deletions tests/config/driverconfig/badDriver/v2.4.0/controller.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
this snfoiasga
is

843*&(*(% invalid YAml
4 changes: 4 additions & 0 deletions tests/config/driverconfig/badDriver/v2.4.0/csidriver.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
this snfoiasga
is

843*&(*(% invalid YAml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
this snfoiasga
is

843*&(*(% invalid YAml

4 changes: 4 additions & 0 deletions tests/config/driverconfig/badDriver/v2.4.0/upgrade-path.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
this snfoiasga
is

843*&(*(% invalid YAml
4 changes: 4 additions & 0 deletions tests/config/driverconfig/badDriver/v2.5.0/bad.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
this snfoiasga
is

843*&(*(% invalid YAml
4 changes: 4 additions & 0 deletions tests/config/driverconfig/badDriver/v2.5.0/controller.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
this snfoiasga
is

843*&(*(% invalid YAml
4 changes: 4 additions & 0 deletions tests/config/driverconfig/badDriver/v2.5.0/csidriver.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
this snfoiasga
is

843*&(*(% invalid YAml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
this snfoiasga
is

843*&(*(% invalid YAml

4 changes: 4 additions & 0 deletions tests/config/driverconfig/badDriver/v2.5.0/upgrade-path.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
this snfoiasga
is

843*&(*(% invalid YAml
4 changes: 2 additions & 2 deletions tests/shared/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ import (
// ConfigVersions used for all unit tests
const (
PFlexConfigVersion string = "v2.6.0"
ConfigVersion string = "v2.6.0"
UpgradeConfigVersion string = "v2.6.0"
ConfigVersion string = "v2.4.0"
UpgradeConfigVersion string = "v2.5.0"
JumpUpgradeConfigVersion string = "v2.6.0"
OldConfigVersion string = "v2.2.0"
BadConfigVersion string = "v0"
Expand Down

0 comments on commit 3097ea6

Please sign in to comment.