Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pkg/oci/push_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ func extractFilesFromOCIArtifact(t *testing.T, ociLayoutDir, digest string) map[
tr := tar.NewReader(gzr)
for {
header, err := tr.Next()
if err == io.EOF {
if stderrors.Is(err, io.EOF) {
break
}
if err != nil {
Expand Down
6 changes: 3 additions & 3 deletions tools/coverage/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -171,14 +171,14 @@ func newRow(kind Kind, item string, harnesses map[Harness]bool, unwiredUAT bool)
func hardwareCadence(h map[Harness]bool, status Status) (hardware, cadence string) {
switch {
case status == StatusStubbed:
return "GPU (unwired)", "—"
return "GPU (unwired)", emDash
case h[HarnessUAT] || h[HarnessGPUNightly]:
return "GPU (H100, real)", "nightly"
case h[HarnessChainsaw] || h[HarnessKWOK]:
return "simulated / none", "per-PR"
case h[HarnessDemo]:
return "docs", "—"
return "docs", emDash
default:
return "—", "—"
return emDash, emDash
}
}
2 changes: 2 additions & 0 deletions tools/coverage/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ const (
// only the Azure UAT trees). Distinct from not-yet-covered: the assets are
// present but inert pending a revive-or-retire decision (DC6, #1280).
StatusStubbed Status = "stubbed"

emDash = "—"
)

// Harness identifies an execution mechanism that can exercise an item. The set
Expand Down
4 changes: 2 additions & 2 deletions tools/coverage/render.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ func renderTable(heading string, m Matrix, kind Kind) string {
}
note := r.Note
if note == "" {
note = "—"
note = emDash
}
fmt.Fprintf(&b, "| `%s` | %s | %s | %s | %s | %s |\n",
r.Item, exercisedBy(r.Harnesses), r.Hardware, r.Cadence, r.Status, note)
Expand All @@ -112,7 +112,7 @@ func exercisedBy(h map[Harness]bool) string {
}
}
if len(parts) == 0 {
return "—"
return emDash
}
return strings.Join(parts, ", ")
}
7 changes: 4 additions & 3 deletions validators/conformance/secure_access_check.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ const (
gpuClaimPrefix = "gpu-claim-"
// noAllocProbePrefix names the standalone probe pod that is granted no
// GPU at all (no ResourceClaims, no nvidia.com/gpu limits).
noAllocProbePrefix = "no-alloc-probe-"
noAllocProbePrefix = "no-alloc-probe-"
allocationModeExactCount = "ExactCount"

// cudaTestImage runs the in-container GPU visibility verification.
cudaTestImage = "nvidia/cuda:12.9.0-base-ubuntu24.04"
Expand Down Expand Up @@ -1587,12 +1588,12 @@ func buildResourceClaim(run *gpuTestRun, version string) *unstructured.Unstructu
}
if version == versionV1beta1 {
request["deviceClassName"] = draDriverGPU
request["allocationMode"] = "ExactCount"
request["allocationMode"] = allocationModeExactCount
request["count"] = int64(1)
} else {
request["exactly"] = map[string]interface{}{
"deviceClassName": draDriverGPU,
"allocationMode": "ExactCount",
"allocationMode": allocationModeExactCount,
"count": int64(1),
}
}
Expand Down
6 changes: 4 additions & 2 deletions validators/performance/nccl_all_reduce_bw_constraint.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@ const (
// ncclTrainingRuntimeName is the name of the TrainingRuntime resource.
// Must stay in sync with runtime.yaml.
ncclTrainingRuntimeName = "nccl-all-reduce-runtime"

skipMsgNCCLFewNodes = "skipped - requires at least 2 GPU nodes for EW fabric test"
)

// Package-level GVR definitions for Kubeflow Trainer CRDs used by both
Expand Down Expand Up @@ -371,9 +373,9 @@ func validateNcclAllReduceBw(ctx *validators.Context, constraint recipe.Constrai
// NCCL all-reduce tests EW (East-West) fabric between nodes and requires at least
// two GPU nodes. Skip gracefully rather than fail when only one node is available.
if gpuConfig.WorkerCount < 2 {
slog.Info("Skipping NCCL All Reduce bandwidth validation: requires at least 2 GPU nodes for EW fabric test",
slog.Info("Skipping NCCL All Reduce bandwidth validation: "+skipMsgNCCLFewNodes,
"nodes", gpuConfig.WorkerCount)
return "skipped - requires at least 2 GPU nodes for EW fabric test", true, nil
return skipMsgNCCLFewNodes, true, nil
}

// Preflight cluster-side prerequisites before spending TrainJob time.
Expand Down
2 changes: 1 addition & 1 deletion validators/performance/nccl_benchmark_profile_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@ func TestValidateNcclAllReduceBwProfileClusterPath(t *testing.T) {
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
want := "skipped - requires at least 2 GPU nodes for EW fabric test"
want := skipMsgNCCLFewNodes
if !passed || msg != want {
t.Errorf("got (%q, %v), want (%q, true)", msg, passed, want)
}
Expand Down
4 changes: 2 additions & 2 deletions validators/performance/nccl_benchmark_runtime_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ spec:
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
want := "skipped - requires at least 2 GPU nodes for EW fabric test"
want := skipMsgNCCLFewNodes
if !passed || msg != want {
t.Errorf("got (%q, %v), want (%q, true) — sizing must narrow by the runtime's own nodeSelector", msg, passed, want)
}
Expand Down Expand Up @@ -356,7 +356,7 @@ func TestValidateNcclAllReduceBwCustomRuntimeClusterPath(t *testing.T) {
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
want := "skipped - requires at least 2 GPU nodes for EW fabric test"
want := skipMsgNCCLFewNodes
if !passed || msg != want {
t.Errorf("got (%q, %v), want (%q, true)", msg, passed, want)
}
Expand Down