From 9acc15f4d2aa62158789f3bdee904fb751b69b88 Mon Sep 17 00:00:00 2001 From: opsx Date: Wed, 28 Oct 2026 15:00:30 +0000 Subject: [PATCH] =?UTF-8?q?test(loki):=20=E4=BF=AE=E6=AD=A3=20delete=5Freq?= =?UTF-8?q?uest=5Fstore=20=E6=96=AD=E8=A8=80=E2=80=94=E2=80=94=E4=B8=A4?= =?UTF-8?q?=E4=B8=AA=E6=B5=8B=E8=AF=95=E4=BA=92=E7=9B=B8=E7=9F=9B=E7=9B=BE?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=20go=20test=20=E5=BF=85=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 现象:`go test ./services/` 在 HEAD(3a8eb52)上稳定失败 --- FAIL: TestGeneratedLokiConfigKeepsRequiredSettingsWithoutDefaults deployment_config_test.go:68: required setting "delete_request_store: s3" missing 根因不是代码 bug,而是**两个测试对同一件事的期望相反**: backend/services/deployment_config_test.go:66 断言 delete_request_store: s3 backend/services/loki_object_store_test.go:44 断言 delete_request_store: filesystem 而 loki_config.go 对 s3/oss/minio/cos/obs 是**刻意**用 filesystem 的 (commit 9f7c522 引入,注释:「删除请求存本地盘,避免各云 S3 兼容实现差异 导致 compactor 启动失败」)。 即:代码是有意的,loki_object_store_test 也是对的,只有 deployment_config_test 是历史遗留的过时断言。本次把它改成 filesystem,并加注释说明为什么不能再改回 s3, 避免以后有人"顺手修回去"。 运行时行为完全没有变化(只改测试文件),但修复后 `go test ./...` 才能全绿, 否则每次发版预检都会被这个假失败挡住。 验证:go test ./... 全部通过(services/models/repositories/pkg 均 ok)。 --- backend/services/deployment_config_test.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend/services/deployment_config_test.go b/backend/services/deployment_config_test.go index c8073e7..6211e19 100644 --- a/backend/services/deployment_config_test.go +++ b/backend/services/deployment_config_test.go @@ -63,7 +63,11 @@ func TestGeneratedLokiConfigKeepsRequiredSettingsWithoutDefaults(t *testing.T) { if err := yaml.Unmarshal([]byte(config), &parsed); err != nil { t.Fatalf("invalid Loki YAML: %v", err) } - for _, required := range []string{"retention_period: 2160h", "retention_enabled: true", "delete_request_store: s3", "bucketnames: logs", "store: tsdb", "schema: v13"} { + // 注意 delete_request_store 用的是 filesystem 而不是 s3: + // loki_config.go 里对 s3/oss/minio/cos/obs 刻意把 compactor 的删除请求存到 + // 本地盘(见该处注释),避免各云 S3 兼容实现差异导致 compactor 启动失败。 + // loki_object_store_test.go 断言的也是 filesystem —— 两处必须一致。 + for _, required := range []string{"retention_period: 2160h", "retention_enabled: true", "delete_request_store: filesystem", "bucketnames: logs", "store: tsdb", "schema: v13"} { if !strings.Contains(config, required) { t.Fatalf("required setting %q missing", required) }