test(loki): 修正 delete_request_store 断言——两个测试互相矛盾导致 go test 必失败
现象:`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)。
This commit is contained in:
1 parent
3a8eb521e2
commit
9acc15f4d2
1 file changed
+5
-1
@@ -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)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user