const devicePath … type VolumeModeDowngradeTest … // Name returns the tracking name of the test. func (VolumeModeDowngradeTest) Name() string { … } // Skip returns true when this test can be skipped. func (t *VolumeModeDowngradeTest) Skip(upgCtx upgrades.UpgradeContext) bool { … } // Setup creates a block pv and then verifies that a pod can consume it. The pod writes data to the volume. func (t *VolumeModeDowngradeTest) Setup(ctx context.Context, f *framework.Framework) { … } // Test waits for the downgrade to complete, and then verifies that a pod can no // longer consume the pv as it is not mapped nor mounted into the pod func (t *VolumeModeDowngradeTest) Test(ctx context.Context, f *framework.Framework, done <-chan struct{ … } // Teardown cleans up any remaining resources. func (t *VolumeModeDowngradeTest) Teardown(ctx context.Context, f *framework.Framework) { … }