video backend CLI flag
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
||||
|
||||
"mxl-pattern-generator/internal/audio"
|
||||
"mxl-pattern-generator/internal/flowdef"
|
||||
"mxl-pattern-generator/internal/video"
|
||||
)
|
||||
|
||||
func TestParseArgsHelpStopsBeforeValidation(t *testing.T) {
|
||||
@@ -112,6 +113,46 @@ func TestValidateVideoArgsSkipsDisabledVideo(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseVideoBackend(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
value string
|
||||
want video.Backend
|
||||
wantErr bool
|
||||
}{
|
||||
{name: "zero value defaults to auto", want: video.BackendAuto},
|
||||
{name: "auto", value: "auto", want: video.BackendAuto},
|
||||
{name: "gpu", value: "gpu", want: video.BackendGPU},
|
||||
{name: "cpu", value: "cpu", want: video.BackendCPU},
|
||||
{name: "unknown", value: "other", wantErr: true},
|
||||
}
|
||||
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
got, err := parseVideoBackend(tc.value)
|
||||
if tc.wantErr {
|
||||
if err == nil || !strings.Contains(err.Error(), "unsupported video backend") {
|
||||
t.Fatalf("error = %v, want unsupported backend error", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
t.Fatalf("parseVideoBackend: %v", err)
|
||||
}
|
||||
if got != tc.want {
|
||||
t.Fatalf("backend = %q, want %q", got, tc.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateVideoArgsRejectsUnknownBackend(t *testing.T) {
|
||||
args := appArgs{videoBackend: "other"}
|
||||
if err := validateVideoArgs(&args); err == nil || !strings.Contains(err.Error(), "unsupported video backend") {
|
||||
t.Fatalf("error = %v, want unsupported backend error", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateMediaSelection(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -187,6 +228,30 @@ func TestBuildVideoConfigFromArgs(t *testing.T) {
|
||||
if cfg.Rate().Num != 30000 || cfg.Rate().Den != 1001 {
|
||||
t.Fatalf("rate = %d/%d, want 30000/1001", cfg.Rate().Num, cfg.Rate().Den)
|
||||
}
|
||||
if cfg.Backend != video.BackendAuto {
|
||||
t.Fatalf("backend = %q, want %q", cfg.Backend, video.BackendAuto)
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildVideoConfigBackends(t *testing.T) {
|
||||
for _, backend := range []video.Backend{video.BackendGPU, video.BackendCPU} {
|
||||
t.Run(string(backend), func(t *testing.T) {
|
||||
cfg, err := buildVideoConfig(appArgs{
|
||||
videoUUID: "5fbec3b1-1b0f-417d-9059-8b94a47197ed",
|
||||
videoWidth: 1920,
|
||||
videoHeight: 1080,
|
||||
videoFPS: "25",
|
||||
pattern: "ebu75",
|
||||
videoBackend: string(backend),
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("buildVideoConfig: %v", err)
|
||||
}
|
||||
if cfg.Backend != backend {
|
||||
t.Fatalf("backend = %q, want %q", cfg.Backend, backend)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildVideoConfigDisabled(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user