mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Merge pull request #81961 from pohly/ephemeral-unit-tests
storage: enhance test for ValidateCSIDriverUpdate
This commit is contained in:
commit
b1b1fc8034
@ -1800,7 +1800,7 @@ func TestCSIDriverValidation(t *testing.T) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// AttachRequired not set
|
// PodInfoOnMount not set
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: driverName},
|
ObjectMeta: metav1.ObjectMeta{Name: driverName},
|
||||||
Spec: storage.CSIDriverSpec{
|
Spec: storage.CSIDriverSpec{
|
||||||
AttachRequired: &attachNotRequired,
|
AttachRequired: &attachNotRequired,
|
||||||
@ -1856,64 +1856,86 @@ func TestCSIDriverValidationUpdate(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
errorCases := []storage.CSIDriver{
|
// Each test case changes exactly one field. None of that is valid.
|
||||||
|
errorCases := []struct {
|
||||||
|
name string
|
||||||
|
modify func(new *storage.CSIDriver)
|
||||||
|
}{
|
||||||
{
|
{
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: invalidName},
|
name: "invalid name",
|
||||||
Spec: storage.CSIDriverSpec{
|
modify: func(new *storage.CSIDriver) {
|
||||||
AttachRequired: &attachRequired,
|
new.Name = invalidName
|
||||||
PodInfoOnMount: &podInfoOnMount,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: longName},
|
name: "long name",
|
||||||
Spec: storage.CSIDriverSpec{
|
modify: func(new *storage.CSIDriver) {
|
||||||
AttachRequired: &attachNotRequired,
|
new.Name = longName
|
||||||
PodInfoOnMount: ¬PodInfoOnMount,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// AttachRequired not set
|
name: "AttachRequired not set",
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: driverName},
|
modify: func(new *storage.CSIDriver) {
|
||||||
Spec: storage.CSIDriverSpec{
|
new.Spec.AttachRequired = nil
|
||||||
AttachRequired: nil,
|
|
||||||
PodInfoOnMount: &podInfoOnMount,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// AttachRequired not set
|
name: "PodInfoOnMount not set",
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: driverName},
|
modify: func(new *storage.CSIDriver) {
|
||||||
Spec: storage.CSIDriverSpec{
|
new.Spec.PodInfoOnMount = nil
|
||||||
AttachRequired: &attachNotRequired,
|
|
||||||
PodInfoOnMount: nil,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// invalid mode
|
name: "AttachRequired changed",
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: driverName},
|
modify: func(new *storage.CSIDriver) {
|
||||||
Spec: storage.CSIDriverSpec{
|
new.Spec.AttachRequired = &attachRequired
|
||||||
AttachRequired: &attachNotRequired,
|
},
|
||||||
PodInfoOnMount: ¬PodInfoOnMount,
|
},
|
||||||
VolumeLifecycleModes: []storage.VolumeLifecycleMode{
|
{
|
||||||
|
name: "PodInfoOnMount changed",
|
||||||
|
modify: func(new *storage.CSIDriver) {
|
||||||
|
new.Spec.PodInfoOnMount = &podInfoOnMount
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "invalid volume lifecycle mode",
|
||||||
|
modify: func(new *storage.CSIDriver) {
|
||||||
|
new.Spec.VolumeLifecycleModes = []storage.VolumeLifecycleMode{
|
||||||
"no-such-mode",
|
"no-such-mode",
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// different modes
|
name: "volume lifecycle modes not set",
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: driverName},
|
modify: func(new *storage.CSIDriver) {
|
||||||
Spec: storage.CSIDriverSpec{
|
new.Spec.VolumeLifecycleModes = nil
|
||||||
AttachRequired: &attachNotRequired,
|
},
|
||||||
PodInfoOnMount: ¬PodInfoOnMount,
|
},
|
||||||
VolumeLifecycleModes: []storage.VolumeLifecycleMode{
|
{
|
||||||
|
name: "VolumeLifecyclePersistent removed",
|
||||||
|
modify: func(new *storage.CSIDriver) {
|
||||||
|
new.Spec.VolumeLifecycleModes = []storage.VolumeLifecycleMode{
|
||||||
storage.VolumeLifecycleEphemeral,
|
storage.VolumeLifecycleEphemeral,
|
||||||
},
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "VolumeLifecycleEphemeral removed",
|
||||||
|
modify: func(new *storage.CSIDriver) {
|
||||||
|
new.Spec.VolumeLifecycleModes = []storage.VolumeLifecycleMode{
|
||||||
|
storage.VolumeLifecyclePersistent,
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, csiDriver := range errorCases {
|
for _, test := range errorCases {
|
||||||
if errs := ValidateCSIDriverUpdate(&csiDriver, &old); len(errs) == 0 {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
t.Errorf("Expected failure for test: %v", csiDriver)
|
new := old.DeepCopy()
|
||||||
}
|
test.modify(new)
|
||||||
|
if errs := ValidateCSIDriverUpdate(new, &old); len(errs) == 0 {
|
||||||
|
t.Errorf("Expected failure for test: %v", new)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user