mirror of https://github.com/k3s-io/k3s
Add unit test coverage for nvidiaGPUManager initialization
Part of #47750 ```release-note NONE ```pull/6/head
parent
33fc75e223
commit
fee83f65d4
|
@ -44,6 +44,7 @@ go_test(
|
|||
library = ":go_default_library",
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//pkg/kubelet/dockershim/libdocker:go_default_library",
|
||||
"//vendor/github.com/stretchr/testify/assert:go_default_library",
|
||||
"//vendor/k8s.io/api/core/v1:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library",
|
||||
|
|
|
@ -17,6 +17,8 @@ limitations under the License.
|
|||
package nvidia
|
||||
|
||||
import (
|
||||
"os"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
@ -26,6 +28,7 @@ import (
|
|||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/apimachinery/pkg/util/uuid"
|
||||
"k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker"
|
||||
)
|
||||
|
||||
type testActivePodsLister struct {
|
||||
|
@ -60,6 +63,34 @@ func makeTestPod(numContainers, gpusPerContainer int) *v1.Pod {
|
|||
return pod
|
||||
}
|
||||
|
||||
func TestNewNvidiaGPUManager(t *testing.T) {
|
||||
podLister := &testActivePodsLister{}
|
||||
|
||||
// Expects nil GPUManager and an error with nil dockerClient.
|
||||
testGpuManager1, err := NewNvidiaGPUManager(podLister, nil)
|
||||
as := assert.New(t)
|
||||
as.Nil(testGpuManager1)
|
||||
as.NotNil(err)
|
||||
|
||||
// Expects a GPUManager to be created with non-nil dockerClient.
|
||||
fakeDocker := libdocker.NewFakeDockerClient()
|
||||
testGpuManager2, err := NewNvidiaGPUManager(podLister, fakeDocker)
|
||||
as.NotNil(testGpuManager2)
|
||||
as.Nil(err)
|
||||
|
||||
// Expects zero capacity without any GPUs.
|
||||
gpuCapacity := testGpuManager2.Capacity()
|
||||
as.Equal(len(gpuCapacity), 1)
|
||||
rgpu := gpuCapacity[v1.ResourceNvidiaGPU]
|
||||
as.Equal(rgpu.Value(), int64(0))
|
||||
|
||||
err2 := testGpuManager2.Start()
|
||||
if !os.IsNotExist(err2) {
|
||||
gpus := reflect.ValueOf(testGpuManager2).Elem().FieldByName("allGPUs").Len()
|
||||
as.NotZero(gpus)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMultiContainerPodGPUAllocation(t *testing.T) {
|
||||
podLister := &testActivePodsLister{}
|
||||
|
||||
|
|
Loading…
Reference in New Issue