Files
gpu-turnstile/internal/config/sample_test.go
T

45 lines
1.4 KiB
Go

package config
import (
"strings"
"testing"
)
func TestSampleEnv(t *testing.T) {
sample := SampleEnv(`C:\ProgramData\gpu-turnstile\gpu-turnstile.log`)
// Every setting known to Load must appear.
for _, name := range []string{
"LISTEN_OLLAMA", "LISTEN_COMFY", "OLLAMA_URL", "COMFY_URL",
"WARM_MODEL", "UNLOAD_TIMEOUT", "JOB_TIMEOUT", "LLM_WAIT_TIMEOUT",
"LLM_BUSY_MODE", "LLM_BUSY_STATUS", "BUSY_RETRY_AFTER",
"LOGLEVEL", "LOG_FORMAT", "LOG_FILE",
"UNLOAD_POLL_INTERVAL", "HISTORY_POLL_INTERVAL", "PROBE_TIMEOUT",
"FREE_TIMEOUT", "WARM_TIMEOUT", "SHUTDOWN_TIMEOUT",
"BACKOFF_INITIAL", "BACKOFF_MAX", "PROMPT_CAPTURE_LIMIT",
"AUTO_UPDATE", "UPDATE_INTERVAL", "UPDATE_REPO", "UPDATE_ASSET",
} {
if !strings.Contains(sample, name+"=") {
t.Errorf("sample is missing %s", name)
}
}
// The sample must parse cleanly, and only LOG_FILE is active.
values, err := ParseEnvFile(strings.NewReader(sample))
if err != nil {
t.Fatalf("sample does not parse: %v", err)
}
if len(values) != 1 || values["LOG_FILE"] != `C:\ProgramData\gpu-turnstile\gpu-turnstile.log` {
t.Fatalf("active values = %v, want only LOG_FILE", values)
}
// Without a log path everything is commented out.
values, err = ParseEnvFile(strings.NewReader(SampleEnv("")))
if err != nil {
t.Fatalf("sample without log path does not parse: %v", err)
}
if len(values) != 0 {
t.Fatalf("active values = %v, want none", values)
}
}