已关闭
test(system): Label 生命周期名称超过 API 50 字符上限 #489
aflyingto创建于  8月1日关闭于  8月1日
aflyingto成员
8月1日 创建

问题

在 origin/main 上执行完整写入型系统测试:

GC_SYSTEM_WRITE=1 GC_SYSTEM_ASSIGNEE=aflyingto go test -tags=system -count=1 -v ./tests/system

label-lifecycle.txtar 调用 unique-name LABEL_NAME system-test-label 后生成的名称超过 GitCode Label API 的 50 字符上限,导致真实命令失败:

HTTP 400: 'name': label name must be at the most 50 characters long

Issue 生命周期和负责人读写场景通过,测试创建的 Issue 已全部清理;Label 创建在服务端校验阶段失败,没有遗留 Label。

根因

uniqueName 固定拼接 prefix、test name、PID 和 32 位十六进制随机串,没有资源长度上限参数。Label 场景复用了该通用名称后超过平台约束。

需求

  • 为系统测试唯一名称生成器增加可选最大长度约束。
  • 截断时必须保留足够随机熵,避免并发系统测试资源冲突。
  • Label 生命周期明确使用 50 字符上限。
  • 补充默认行为、限长行为和非法参数的测试。
  • 更新 tests/system/README.md。
  • 在 infra-test/gctest1 上重新执行完整写入型系统测试并确认清理成功。

验收标准

likedislike
Aaflyingto成员
8月1日 将 aflyingto 设为负责人
Aaflyingto成员
8月1日 添加了label:bugpriority:highrisk/medium
Aaflyingto成员
8月1日 关联了pull request:[WIP]test(system): 约束测试资源名称长度
Aaflyingto成员
8月1日 添加了label:status/in-progress
aflyingto成员
8月1日 评论:

阶段记录

  • 阶段: in-progress / self-checked
  • 结论: 修复已提交并创建 draft PR 424,正在执行四角色独立评审和双端 CI。
  • 提交: edbfb27c713dcfd52f72057e0a98c11502d1c2f4
  • 本地证据: 全量 UT、integration、system read、WSL race、go vet、pre-commit/pre-push 均通过。
  • 真实命令证据: infra-test/gctest1 的 Issue 生命周期、负责人创建/编辑读回、Label 创建/列表/删除全部通过。
  • 清理证据: 测试 Label 已删除;测试 Issue 72、73、74 均为 closed。
  • CI: GitCode Actions run 29,head SHA 与提交一致,当前运行中。
  • 下一步: 收集代码、安全、测试、文档四角色评审;如无问题则推进 ready-for-review,并同步 GitHub 镜像 CI。
likedislike
Aaflyingto成员
8月1日 添加了label:status/ready-for-review;删除了label:status/in-progress
Aaflyingto成员
8月1日 关闭了 issue
Aaflyingto成员
8月1日 添加了label:status/merged;删除了label:status/ready-for-review
Aaflyingto成员
8月11日 关联了pull request:fix(browse): address Round 1 review — --no-interactive + PathEscape + error wrapping