package config import ( "testing" "time" ) func TestDefaultAgentConfig(t *testing.T) { cfg := DefaultAgentConfig() if cfg.CoreInterval != 15*time.Second { t.Fatalf("CoreInterval = %v, want 15s", cfg.CoreInterval) } if cfg.DiskInterval != 30*time.Second { t.Fatalf("DiskInterval = %v, want 30s", cfg.DiskInterval) } if cfg.NetworkInterval != 30*time.Second { t.Fatalf("NetworkInterval = %v, want 30s", cfg.NetworkInterval) } if cfg.ProcessInterval != 60*time.Second { t.Fatalf("ProcessInterval = %v, want 60s", cfg.ProcessInterval) } if cfg.BatchSize != 128 { t.Fatalf("BatchSize = %d, want 128", cfg.BatchSize) } if cfg.CheckpointDriver != "file" { t.Fatalf("CheckpointDriver = %q, want file", cfg.CheckpointDriver) } } func TestDefaultGatewayConfig(t *testing.T) { cfg := DefaultGatewayConfig() if cfg.Addr != "0.0.0.0:4318" { t.Fatalf("Addr = %q, want 0.0.0.0:4318", cfg.Addr) } if cfg.MaxMetricsPerHost != 20000 { t.Fatalf("MaxMetricsPerHost = %d, want 20000", cfg.MaxMetricsPerHost) } } func TestDurEnv(t *testing.T) { if got := durEnv("HMS_TEST_DUR_EMPTY", 3*time.Second); got != 3*time.Second { t.Fatalf("durEnv empty = %v, want 3s", got) } t.Setenv("HMS_TEST_DUR", "7s") if got := durEnv("HMS_TEST_DUR", 3*time.Second); got != 7*time.Second { t.Fatalf("durEnv set = %v, want 7s", got) } t.Setenv("HMS_TEST_DUR_BAD", "not-a-duration") if got := durEnv("HMS_TEST_DUR_BAD", 3*time.Second); got != 3*time.Second { t.Fatalf("durEnv bad = %v, want fallback 3s", got) } } func TestIntEnv(t *testing.T) { if got := intEnv("HMS_TEST_INT_EMPTY", 42); got != 42 { t.Fatalf("intEnv empty = %d, want 42", got) } t.Setenv("HMS_TEST_INT", "99") if got := intEnv("HMS_TEST_INT", 42); got != 99 { t.Fatalf("intEnv set = %d, want 99", got) } t.Setenv("HMS_TEST_INT_BAD", "bad") if got := intEnv("HMS_TEST_INT_BAD", 42); got != 42 { t.Fatalf("intEnv bad = %d, want fallback 42", got) } } func TestSplitCSV(t *testing.T) { got := splitCSV("") if got != nil { t.Fatalf("splitCSV(empty) = %v, want nil", got) } got = splitCSV("/var/log/a.log, /var/log/b.log ,") if len(got) != 2 || got[0] != "/var/log/a.log" || got[1] != "/var/log/b.log" { t.Fatalf("splitCSV = %v", got) } }