Change:
sort.Strings(entries) return strings.Join(entries, ", ") } <del> func makeBusyboxDeviceRequiringPod(resourceName, cmd string) *v1.Pod { podName := "device-manager-test-" + string(uuid.NewUUID()) rl := v1.ResourceList{ v1.ResourceName(resourceName): *resource.NewQuantity(2, resource.DecimalSI), } return &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: podName, }, Spec: v1.PodSpec{ RestartPolicy: v1.RestartPolicyNever, Containers: []v1.Container{{ Image: busyboxImage, Name:  podName, // Runs the specified command in the test pod. Command: []string{"sh", "-c", cmd}, Resources: v1.ResourceRequirements{ Limits:   rl, Requests: rl, }, }}, }, } } // BeReady verifies that a node is ready and devices have registered. func BeReady() types.GomegaMatcher { return gomega.And( // This additional matcher checks for the final error condition. gcustom.MakeMatcher(func(ready bool) (bool, error) { if !ready { return false, fmt.Errorf("Expected node to be ready=%t", ready) } return true, nil }), BeInReadyPhase(true), ) } // BeInReadyPhase matches if node is ready i.e. ready is true. func BeInReadyPhase(isReady bool) types.GomegaMatcher { return gcustom.MakeMatcher(func(ready bool) (bool, error) { return ready == isReady, nil }).WithTemplate("Expected Node Ready {{.To}} be in {{format .Data}}nGot instead:n{{.FormattedActual}}").WithTemplateData(isReady) } func isNodeReadyWithSampleResources(ctx context.Context, f *framework.Framework) (bool, error) { node, ready := getLocalTestNode(ctx, f) if !ready { return false, fmt.Errorf("Expected node to be ready=%t", ready) } if CountSampleDeviceCapacity(node) <= 0 { return false, fmt.Errorf("Expected devices to be advertised") } return true, nil } // HaveAllocatableDevices verifies that a node has allocatable devices. func HaveAllocatableDevices() types.GomegaMatcher { return gomega.And( // This additional matcher checks for the final error condition. gcustom.MakeMatcher(func(hasAllocatable bool) (bool, error) { if !hasAllocatable { return false, fmt.Errorf("Expected node to be have allocatable devices=%t", hasAllocatable) } return true, nil }), hasAllocatable(true), ) } // hasAllocatable matches if node is ready i.e. ready is true. func hasAllocatable(hasAllocatable bool) types.GomegaMatcher { return gcustom.MakeMatcher(func(hasAllocatableDevices bool) (bool, error) { return hasAllocatableDevices == hasAllocatable, nil }).WithTemplate("Expected Node with allocatable {{.To}} be in {{format .Data}}nGot instead:n{{.FormattedActual}}").WithTemplateData(hasAllocatable) } func isNodeReadyWithAllocatableSampleResources(ctx context.Context, f *framework.Framework, devCount int64) (bool, error) { node, ready := getLocalTestNode(ctx, f) if !ready { return false, fmt.Errorf("Expected node to be ready=%t", ready) } if CountSampleDeviceCapacity(node) != devCount { return false, fmt.Errorf("Expected devices capacity to be: %d", devCount) } if CountSampleDeviceAllocatable(node) != devCount { return false, fmt.Errorf("Expected devices allocatable to be: %d", devCount) } return true, nil } func isNodeReadyWithoutSampleResources(ctx context.Context, f *framework.Framework) (bool, error) { node, ready := getLocalTestNode(ctx, f) if !ready { return false, fmt.Errorf("Expected node to be ready=%t", ready) } if CountSampleDeviceCapacity(node) > 0 { return false, fmt.Errorf("Expected devices to be not present") } return true, nil } // HaveFailedWithAdmissionError verifies that a pod fails at admission. func HaveFailedWithAdmissionError() types.GomegaMatcher { return gomega.And( gcustom.MakeMatcher(func(hasFailed bool) (bool, error) { if !hasFailed { return false, fmt.Errorf("Expected pod to have failed=%t", hasFailed) } return true, nil }), hasFailed(true), ) } // hasFailed matches if pod has failed. func hasFailed(hasFailed bool) types.GomegaMatcher { return gcustom.MakeMatcher(func(hasPodFailed bool) (bool, error) { return hasPodFailed == hasFailed, nil }).WithTemplate("Expected Pod failed {{.To}} be in {{format .Data}}nGot instead:n{{.FormattedActual}}").WithTemplateData(hasFailed) } func getPod(ctx context.Context, f *framework.Framework, podName string) (bool, error) { pod, err := e2epod.NewPodClient(f).Get(ctx, podName, metav1.GetOptions{}) if err != nil { return false, fmt.Errorf("Expected node to get pod=%q got err=%q", pod.Name, err) } expectedStatusReason := "UnexpectedAdmissionError" expectedStatusMessage := "Allocate failed due to can't allocate unhealthy devices" // This additional matcher checks for the final error condition. if pod.Status.Phase != v1.PodFailed { return false, fmt.Errorf("Expected pod to reach phase %q, got final phase %q instead.", v1.PodFailed, pod.Status.Phase) } if pod.Status.Reason != expectedStatusReason { return false, fmt.Errorf("Expected pod status reason to be %q, got %q instead.", expectedStatusReason, pod.Status.Reason) } if !strings.Contains(pod.Status.Message, expectedStatusMessage) { return false, fmt.Errorf("Expected pod status reason to contain %q, got %q instead.", expectedStatusMessage, pod.Status.Message) } return true, nil } </del>

Discussion:
Failing: ` Failing since . Last passing: First failing:
The diff () shows that went in which looks related
/sig node
/kind regression /kind bug /triage accepted