mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-13 13:55:41 +00:00
kubelet/images: refactor image gc unit tests
Signed-off-by: Peter Hunt <pehunt@redhat.com>
This commit is contained in:
parent
e22ebf13a9
commit
28f335a339
@ -255,11 +255,8 @@ func TestDoNotDeletePinnedImage(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
spaceFreed, err := manager.freeSpace(ctx, 4096, time.Now())
|
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
require.NoError(t, err)
|
getImagesAndFreeSpace(ctx, t, assert, manager, fakeRuntime, 4096, 1024, 1, time.Now())
|
||||||
assert.EqualValues(1024, spaceFreed)
|
|
||||||
assert.Len(fakeRuntime.ImageList, 1)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDeleteUnPinnedImage(t *testing.T) {
|
func TestDeleteUnPinnedImage(t *testing.T) {
|
||||||
@ -280,11 +277,8 @@ func TestDeleteUnPinnedImage(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
spaceFreed, err := manager.freeSpace(ctx, 2048, time.Now())
|
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
require.NoError(t, err)
|
getImagesAndFreeSpace(ctx, t, assert, manager, fakeRuntime, 2048, 2048, 0, time.Now())
|
||||||
assert.EqualValues(2048, spaceFreed)
|
|
||||||
assert.Len(fakeRuntime.ImageList, 0)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAllPinnedImages(t *testing.T) {
|
func TestAllPinnedImages(t *testing.T) {
|
||||||
@ -306,11 +300,8 @@ func TestAllPinnedImages(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
spaceFreed, err := manager.freeSpace(ctx, 2048, time.Now())
|
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
require.NoError(t, err)
|
getImagesAndFreeSpace(ctx, t, assert, manager, fakeRuntime, 2048, 0, 2, time.Now())
|
||||||
assert.EqualValues(0, spaceFreed)
|
|
||||||
assert.Len(fakeRuntime.ImageList, 2)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDetectImagesContainerStopped(t *testing.T) {
|
func TestDetectImagesContainerStopped(t *testing.T) {
|
||||||
@ -404,11 +395,8 @@ func TestFreeSpaceImagesInUseContainersAreIgnored(t *testing.T) {
|
|||||||
}},
|
}},
|
||||||
}
|
}
|
||||||
|
|
||||||
spaceFreed, err := manager.freeSpace(ctx, 2048, time.Now())
|
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
require.NoError(t, err)
|
getImagesAndFreeSpace(ctx, t, assert, manager, fakeRuntime, 2048, 1024, 1, time.Now())
|
||||||
assert.EqualValues(1024, spaceFreed)
|
|
||||||
assert.Len(fakeRuntime.ImageList, 1)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDeleteUnusedImagesRemoveAllUnusedImages(t *testing.T) {
|
func TestDeleteUnusedImagesRemoveAllUnusedImages(t *testing.T) {
|
||||||
@ -487,11 +475,8 @@ func TestFreeSpaceRemoveByLeastRecentlyUsed(t *testing.T) {
|
|||||||
|
|
||||||
// We're setting the delete time one minute in the future, so the time the image
|
// We're setting the delete time one minute in the future, so the time the image
|
||||||
// was first detected and the delete time are different.
|
// was first detected and the delete time are different.
|
||||||
spaceFreed, err := manager.freeSpace(ctx, 1024, time.Now().Add(time.Minute))
|
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
require.NoError(t, err)
|
getImagesAndFreeSpace(ctx, t, assert, manager, fakeRuntime, 1024, 1024, 1, time.Now().Add(time.Minute))
|
||||||
assert.EqualValues(1024, spaceFreed)
|
|
||||||
assert.Len(fakeRuntime.ImageList, 1)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestFreeSpaceTiesBrokenByDetectedTime(t *testing.T) {
|
func TestFreeSpaceTiesBrokenByDetectedTime(t *testing.T) {
|
||||||
@ -526,11 +511,8 @@ func TestFreeSpaceTiesBrokenByDetectedTime(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, manager.imageRecordsLen(), 2)
|
require.Equal(t, manager.imageRecordsLen(), 2)
|
||||||
|
|
||||||
spaceFreed, err := manager.freeSpace(ctx, 1024, time.Now())
|
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
require.NoError(t, err)
|
getImagesAndFreeSpace(ctx, t, assert, manager, fakeRuntime, 1024, 2048, 1, time.Now())
|
||||||
assert.EqualValues(2048, spaceFreed)
|
|
||||||
assert.Len(fakeRuntime.ImageList, 1)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGarbageCollectBelowLowThreshold(t *testing.T) {
|
func TestGarbageCollectBelowLowThreshold(t *testing.T) {
|
||||||
@ -653,18 +635,21 @@ func TestGarbageCollectImageNotOldEnough(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, manager.imageRecordsLen(), 2)
|
require.Equal(t, manager.imageRecordsLen(), 2)
|
||||||
// no space freed since one image is in used, and another one is not old enough
|
// no space freed since one image is in used, and another one is not old enough
|
||||||
spaceFreed, err := manager.freeSpace(ctx, 1024, fakeClock.Now())
|
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
require.NoError(t, err)
|
getImagesAndFreeSpace(ctx, t, assert, manager, fakeRuntime, 1024, 0, 2, fakeClock.Now())
|
||||||
assert.EqualValues(0, spaceFreed)
|
|
||||||
assert.Len(fakeRuntime.ImageList, 2)
|
|
||||||
|
|
||||||
// move clock by minAge duration, then 1 image will be garbage collected
|
// move clock by minAge duration, then 1 image will be garbage collected
|
||||||
fakeClock.Step(policy.MinAge)
|
fakeClock.Step(policy.MinAge)
|
||||||
spaceFreed, err = manager.freeSpace(ctx, 1024, fakeClock.Now())
|
getImagesAndFreeSpace(ctx, t, assert, manager, fakeRuntime, 1024, 1024, 1, fakeClock.Now())
|
||||||
|
}
|
||||||
|
|
||||||
|
func getImagesAndFreeSpace(ctx context.Context, t *testing.T, assert *assert.Assertions, im *realImageGCManager, fakeRuntime *containertest.FakeRuntime, spaceToFree, expectedSpaceFreed int64, imagesLen int, freeTime time.Time) {
|
||||||
|
images, err := im.imagesInEvictionOrder(ctx, freeTime)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.EqualValues(1024, spaceFreed)
|
spaceFreed, err := im.freeSpace(ctx, spaceToFree, freeTime, images)
|
||||||
assert.Len(fakeRuntime.ImageList, 1)
|
require.NoError(t, err)
|
||||||
|
assert.EqualValues(expectedSpaceFreed, spaceFreed)
|
||||||
|
assert.Len(fakeRuntime.ImageList, imagesLen)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestValidateImageGCPolicy(t *testing.T) {
|
func TestValidateImageGCPolicy(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user