45 lines
1.4 KiB
Go
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)
|
|
}
|
|
}
|