pkg/kubelet: skip long test on short mode
When adding functionality to the kubelet package and a test file, is kind of painful to run unit tests today locally. We usually can't run specifying the test file, as if xx_test.go and xx.go use the same package, we need to specify all the dependencies. As soon as xx.go uses the Kuebelet type (we need to do that to fake a kubelet in the unit tests), this is completely impossible to do in practice. So the other option is to run the unit tests for the whole package or run only a specific funtion. Running a single function can work in some cases, but it is painful when we want to test all the functions we wrote. On the other hand, running the test for the whole package is very slow. Today some unit tests try to connect to the API server (with retries) create and list lot of pods/volumes, etc. This makes running the unit test for the kubelet package slow. This patch tries to make running the unit test for the whole package more palatable. This patch adds a skip if the short version was requested (go test -short ...), so we don't try to connect to the API server or skip other slow tests. Before this patch running the unit tests took in my computer (I've run it several times so the compilation is already done): $ time go test -v real 0m21.303s user 0m9.033s sys 0m2.052s With this patch it takes ~1/3 of the time: $ time go test -short -v real 0m7.825s user 0m9.588s sys 0m1.723s Around 8 seconds is something I can wait to run the tests :) Signed-off-by: Rodrigo Campos <rodrigoca@microsoft.com>
This commit is contained in:
parent
42fec42586
commit
466c4d24a9
@ -503,6 +503,10 @@ func TestUpdateExistingNodeStatus(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestUpdateExistingNodeStatusTimeout(t *testing.T) {
|
func TestUpdateExistingNodeStatusTimeout(t *testing.T) {
|
||||||
|
if testing.Short() {
|
||||||
|
t.Skip("skipping test in short mode.")
|
||||||
|
}
|
||||||
|
|
||||||
attempts := int64(0)
|
attempts := int64(0)
|
||||||
failureCallbacks := int64(0)
|
failureCallbacks := int64(0)
|
||||||
|
|
||||||
|
@ -661,6 +661,10 @@ func TestHandlePodCleanups(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestHandlePodRemovesWhenSourcesAreReady(t *testing.T) {
|
func TestHandlePodRemovesWhenSourcesAreReady(t *testing.T) {
|
||||||
|
if testing.Short() {
|
||||||
|
t.Skip("skipping test in short mode.")
|
||||||
|
}
|
||||||
|
|
||||||
ready := false
|
ready := false
|
||||||
|
|
||||||
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
|
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
|
||||||
|
@ -54,6 +54,10 @@ func validateDirNotExists(dir string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestCleanupOrphanedPodDirs(t *testing.T) {
|
func TestCleanupOrphanedPodDirs(t *testing.T) {
|
||||||
|
if testing.Short() {
|
||||||
|
t.Skip("skipping test in short mode.")
|
||||||
|
}
|
||||||
|
|
||||||
testCases := map[string]struct {
|
testCases := map[string]struct {
|
||||||
pods []*v1.Pod
|
pods []*v1.Pod
|
||||||
prepareFunc func(kubelet *Kubelet) error
|
prepareFunc func(kubelet *Kubelet) error
|
||||||
|
@ -35,6 +35,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestListVolumesForPod(t *testing.T) {
|
func TestListVolumesForPod(t *testing.T) {
|
||||||
|
if testing.Short() {
|
||||||
|
t.Skip("skipping test in short mode.")
|
||||||
|
}
|
||||||
|
|
||||||
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
|
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
|
||||||
defer testKubelet.Cleanup()
|
defer testKubelet.Cleanup()
|
||||||
kubelet := testKubelet.kubelet
|
kubelet := testKubelet.kubelet
|
||||||
@ -95,6 +99,10 @@ func TestListVolumesForPod(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestPodVolumesExist(t *testing.T) {
|
func TestPodVolumesExist(t *testing.T) {
|
||||||
|
if testing.Short() {
|
||||||
|
t.Skip("skipping test in short mode.")
|
||||||
|
}
|
||||||
|
|
||||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
|
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
|
||||||
|
|
||||||
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
|
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
|
||||||
@ -207,6 +215,10 @@ func TestPodVolumesExist(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestVolumeAttachAndMountControllerDisabled(t *testing.T) {
|
func TestVolumeAttachAndMountControllerDisabled(t *testing.T) {
|
||||||
|
if testing.Short() {
|
||||||
|
t.Skip("skipping test in short mode.")
|
||||||
|
}
|
||||||
|
|
||||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
|
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
|
||||||
|
|
||||||
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
|
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
|
||||||
@ -264,6 +276,10 @@ func TestVolumeAttachAndMountControllerDisabled(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestVolumeUnmountAndDetachControllerDisabled(t *testing.T) {
|
func TestVolumeUnmountAndDetachControllerDisabled(t *testing.T) {
|
||||||
|
if testing.Short() {
|
||||||
|
t.Skip("skipping test in short mode.")
|
||||||
|
}
|
||||||
|
|
||||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
|
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
|
||||||
|
|
||||||
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
|
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
|
||||||
@ -351,6 +367,10 @@ func TestVolumeUnmountAndDetachControllerDisabled(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestVolumeAttachAndMountControllerEnabled(t *testing.T) {
|
func TestVolumeAttachAndMountControllerEnabled(t *testing.T) {
|
||||||
|
if testing.Short() {
|
||||||
|
t.Skip("skipping test in short mode.")
|
||||||
|
}
|
||||||
|
|
||||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
|
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
|
||||||
|
|
||||||
testKubelet := newTestKubelet(t, true /* controllerAttachDetachEnabled */)
|
testKubelet := newTestKubelet(t, true /* controllerAttachDetachEnabled */)
|
||||||
@ -433,6 +453,10 @@ func TestVolumeAttachAndMountControllerEnabled(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestVolumeUnmountAndDetachControllerEnabled(t *testing.T) {
|
func TestVolumeUnmountAndDetachControllerEnabled(t *testing.T) {
|
||||||
|
if testing.Short() {
|
||||||
|
t.Skip("skipping test in short mode.")
|
||||||
|
}
|
||||||
|
|
||||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
|
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.CSIMigrationGCE, false)()
|
||||||
|
|
||||||
testKubelet := newTestKubelet(t, true /* controllerAttachDetachEnabled */)
|
testKubelet := newTestKubelet(t, true /* controllerAttachDetachEnabled */)
|
||||||
|
@ -614,6 +614,10 @@ func TestTerminalPhaseTransition(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestStaticPodExclusion(t *testing.T) {
|
func TestStaticPodExclusion(t *testing.T) {
|
||||||
|
if testing.Short() {
|
||||||
|
t.Skip("skipping test in short mode.")
|
||||||
|
}
|
||||||
|
|
||||||
podWorkers, processed := createPodWorkers()
|
podWorkers, processed := createPodWorkers()
|
||||||
var channels WorkChannel
|
var channels WorkChannel
|
||||||
podWorkers.workerChannelFn = channels.Intercept
|
podWorkers.workerChannelFn = channels.Intercept
|
||||||
|
Loading…
Reference in New Issue
Block a user