Change:
dInfo := driver.GetDriverInfo() var isSupported bool <del> // 1. Check if Whether SnapshotType is supported by driver from its interface // if isSupported, we still execute the driver and suite tests if len(pattern.SnapshotType) > 0 { switch pattern.SnapshotType { case testpatterns.DynamicCreatedSnapshot: _, isSupported = driver.(SnapshottableTestDriver) default: isSupported = false } if !isSupported { e2eskipper.Skipf("Driver %s doesn't support snapshot type %v -- skipping", dInfo.Name, pattern.SnapshotType) } } else { // 2. Check if Whether volType is supported by driver from its interface switch pattern.VolType { case testpatterns.InlineVolume: _, isSupported = driver.(InlineVolumeTestDriver) case testpatterns.PreprovisionedPV: _, isSupported = driver.(PreprovisionedPVTestDriver) case testpatterns.DynamicPV, testpatterns.GenericEphemeralVolume: _, isSupported = driver.(DynamicPVTestDriver) case testpatterns.CSIInlineVolume: _, isSupported = driver.(EphemeralTestDriver) default: isSupported = false } </del> <ins> // 1. Check if Whether volType is supported by driver from its interface switch pattern.VolType { case testpatterns.InlineVolume: _, isSupported = driver.(InlineVolumeTestDriver) case testpatterns.PreprovisionedPV: _, isSupported = driver.(PreprovisionedPVTestDriver) case testpatterns.DynamicPV, testpatterns.GenericEphemeralVolume: _, isSupported = driver.(DynamicPVTestDriver) case testpatterns.CSIInlineVolume: _, isSupported = driver.(EphemeralTestDriver) default: isSupported = false } </ins> <del> if !isSupported { e2eskipper.Skipf("Driver %s doesn't support %v -- skipping", dInfo.Name, pattern.VolType) } </del> <ins> if !isSupported { e2eskipper.Skipf("Driver %s doesn't support %v -- skipping", dInfo.Name, pattern.VolType) } </ins> <del> // 3. Check if fsType is supported if !dInfo.SupportedFsType.Has(pattern.FsType) { e2eskipper.Skipf("Driver %s doesn't support %v -- skipping", dInfo.Name, pattern.FsType) } if pattern.FsType == "xfs" && framework.NodeOSDistroIs("gci", "cos", "windows") { e2eskipper.Skipf("Distro doesn't support xfs -- skipping") } if pattern.FsType == "ntfs" && !framework.NodeOSDistroIs("windows") { e2eskipper.Skipf("Distro %s doesn't support ntfs -- skipping", framework.TestContext.NodeOSDistro) } </del> <ins> // 2. Check if fsType is supported if !dInfo.SupportedFsType.Has(pattern.FsType) { e2eskipper.Skipf("Driver %s doesn't support %v -- skipping", dInfo.Name, pattern.FsType) } if pattern.FsType == "xfs" && framework.NodeOSDistroIs("gci", "cos", "windows") { e2eskipper.Skipf("Distro doesn't support xfs -- skipping") } if pattern.FsType == "ntfs" && !framework.NodeOSDistroIs("windows") { e2eskipper.Skipf("Distro %s doesn't support ntfs -- skipping", framework.TestContext.NodeOSDistro) </ins> } <del> // 4. Check with driver specific logic </del> <ins> // 3. Check with driver specific logic </ins> driver.SkipUnsupportedTest(pattern) }

Discussion:
<!-- Please use this template while reporting a bug and provide as much info as possible. Not doing so may result in your bug not being addressed in a timely manner. Thanks! If the matter is security related, please disclose it privately via --What happened: In 1.19 we a "dynamic snapshot" option to the default TestPattern. But it is causing tests to skip for the drivers that don't support snapshots. Even though the test is not actually testing snapshot functionality. Like So it seems we should not add snapshots to default options. And instead we should have an explicit snapshots testpattern for snapshot tests. How to reproduce it (as minimally and precisely as possible): /sig storage /kind bug /cc
/assign could you help take a look at this?