Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add testing files and unit test coverage for unity #206

Merged
merged 3 commits into from
Apr 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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

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

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