test: record remote App catalog inheritance acceptance

This commit is contained in:
2026-09-24 15:45:54 +08:00
parent a2a07a39ea
commit eb69260586
4 changed files with 112 additions and 1 deletions

View File

@@ -24,4 +24,16 @@
本轮仅本地测试及独立生成消费者,没有修改 eTax/ePay 业务代码,没有访问业务服务器;未重跑外部 Redis/MySQL、Linux soak 或完整业务迁移。 本轮仅本地测试及独立生成消费者,没有修改 eTax/ePay 业务代码,没有访问业务服务器;未重跑外部 Redis/MySQL、Linux soak 或完整业务迁移。
远程固定版本验收在发布后追加,标签保持不可变。 ## 远程固定版本验收
`v0.11.1-preview` 标签指向 `a2a07a39ea045a08a99545b40e4de74b55b98422`;发布后从独立、干净的模块缓存安装 CLI,并生成项目执行 race 验收。三个消费者均使用远程固定版本,无本地 replace,校验和一致:
`h1:Hz3snXK074stsQno6KUWf1ngAcQI+QNON/pjH0JbwUk=`
| 验收 | 用时 | 结果 |
| --- | --- | --- |
| [App 错误目录继承](errorInheritanceRemote.json) | 19.41s | 通过;Go 单处注册、普通/生成路由、提前返回中间件、参数提示、未知兜底、独立路由目录及路由请求体限制 |
| [错误模板参数](errorInheritanceParamsRemote.json) | 19.76s | 通过;类型参数、并发隔离、缺参/错参兜底、原因不外泄、HTTP 200 业务失败及 OpenAPI 示例 |
| [业务迁移兼容性](errorInheritanceCompatibilityRemote.json) | 20.16s | 通过;动态 JSON、原始体验签、multipart 清理、下载不包装及手写文件保护 |
各报告记录对应验收脚本与消费者源码的 SHA-256,追加记录时已核对一致。临时项目及缓存已清理;远程模块在本机运行验收,未对业务服务器进行负载测试。报告单独提交至 main,已发布标签保持不可变。

View File

@@ -0,0 +1,31 @@
{
"passed": true,
"frameworkVersion": "v0.11.1-preview",
"frameworkSum": "h1:Hz3snXK074stsQno6KUWf1ngAcQI+QNON/pjH0JbwUk=",
"freshModuleCache": true,
"noLocalReplace": true,
"durationSeconds": 20.16,
"checks": [
"remoteCLIInstall",
"scalarContractValidation",
"manualProjectGeneration",
"int64MaxValueOnWire",
"dynamicJSON",
"rawBodySignature",
"routeBodyLimits",
"multipartTempCleanup",
"unwrappedDownloads",
"handwrittenFilesPreserved",
"generatedConsumerRaceTests",
"fixedRemoteModuleChecksum"
],
"sourceHashes": {
"scripts/verifyCompatibilityRelease.py": "90e487d3203ed4eb4bc721da8086356413345b3e05193e473250a834aeb8d293",
"cmd/go-omni/apigen/compatibility_test.go": "98cf5fbe6cb6413c12f709806d385726f3dec1468575f76967786de4707667ba",
"examples/contracts/compatibility.api": "3ede909e7f60386012e55c916a8e4887dd08562e7f023665f663288c809873d4",
"cmd/go-omni/apigen/testdata/compatibility/consumer_test.go": "0a99ffd6a5cc16d47ae8208d9140c8d6afd9c19106fac8e5e61096cb90d8c463",
"cmd/go-omni/apigen/testdata/compatibility/hooks.go": "435baf37c7f8adffd18d4be0353a791124e0bc5dcb79abdcc345276b6f9867f4",
"cmd/go-omni/apigen/testdata/compatibility/echo.go": "9e13cb18a0951974e723a1fd915c0f4610d823c95eadb752c3d1cd75c44fa293",
"cmd/go-omni/apigen/testdata/compatibility/download.go": "e7f4bcdb34c90ec63fdab1f3c4e524964ac153944352d8a9053a9f19b74030fd"
}
}

View File

@@ -0,0 +1,35 @@
{
"passed": true,
"frameworkVersion": "v0.11.1-preview",
"frameworkSum": "h1:Hz3snXK074stsQno6KUWf1ngAcQI+QNON/pjH0JbwUk=",
"freshModuleCache": true,
"noLocalReplace": true,
"durationSeconds": 19.76,
"checks": [
"remoteCLIInstall",
"errorCatalogValidation",
"generatedErrorConstructors",
"http200BusinessFailure",
"openAPIConcreteExampleAndParameters",
"typedParameterOrder",
"companyAndRemarkMessages",
"runtimeAndGeneratedAgreement",
"missingAndWrongParameterFallback",
"concurrentIsolation",
"fixedErrorCompatibility",
"perErrorHTTPStatus",
"causeNotExposed",
"rawSuccessAndWrappedFailure",
"earlyMiddlewareCatalog",
"handwrittenFilesPreserved",
"generatedConsumerRaceTests",
"fixedRemoteModuleChecksum"
],
"sourceHashes": {
"scripts/verifyErrorParamsRelease.py": "4e9ed06a1e86a701da4eaed813ef5a2456ccfb6e8bdf88f657cb7abfede9d3c3",
"cmd/go-omni/apigen/errorParams_test.go": "0e6f79d3dec842c07cdac9d1e247f5593f189a0984ed25be7b0f9b6da6cba47d",
"cmd/go-omni/apigen/errorCatalog_test.go": "7a2774133b35d24f353128ddfc8cf2bd4b778c1d8ccaf497356728da0ef90ef2",
"examples/contracts/errorParams.api": "d6d09d60eb8079283e6622983e62a8a8c2ad2e070843e99bae6f8c8da491a44c",
"cmd/go-omni/apigen/testdata/errorParams/consumer_test.go": "01d0826cbf85126ad3c6d25e45d881655385931c6f97f242818f4d49c3416f4a"
}
}

View File

@@ -0,0 +1,33 @@
{
"passed": true,
"frameworkVersion": "v0.11.1-preview",
"frameworkSum": "h1:Hz3snXK074stsQno6KUWf1ngAcQI+QNON/pjH0JbwUk=",
"freshModuleCache": true,
"noLocalReplace": true,
"durationSeconds": 19.41,
"checks": [
"remoteCLIInstall",
"noAPICatalogRequired",
"ordinaryAndGeneratedResponseEquality",
"typedMessageParameters",
"configuredUnknownFallback",
"independentRouteCatalog",
"rawSuccess",
"dataNull",
"earlyMiddlewareInheritance",
"routeBodyLimit",
"handwrittenServicesPreserved",
"generatedConsumerRaceTests",
"fixedRemoteModuleChecksum"
],
"sourceHashes": {
"scripts/verifyErrorInheritanceRelease.py": "2039f70484d9c6740b8d11818773502593994d38d13ec3bac83a19393429a63d",
"cmd/go-omni/apigen/errorInheritance_test.go": "91048a43a733f6cadce799b12c6b19d66a37aef0641d233e08c58da674f1a21c",
"cmd/go-omni/apigen/errorCatalog_test.go": "7a2774133b35d24f353128ddfc8cf2bd4b778c1d8ccaf497356728da0ef90ef2",
"examples/contracts/errorInheritance.api": "05939e149e95dd5c3b37aa3837768f88b7aefeca5d05f76703190d6cd6873dfd",
"cmd/go-omni/apigen/testdata/errorInheritance/consumer_test.go": "c000f24a17bbc2e888ea0c5269f217c36f47cc94e7efe644ac5c97029a85fb49",
"cmd/go-omni/apigen/testdata/errorInheritance/service.go": "61afe51545b0484b12d6c60910e0069f690f228789845f00cd2521a7b4b1f896",
"cmd/go-omni/apigen/testdata/errorInheritance/emptyService.go": "c7fc3fda7b082bf72329b2505fd9fea781aad43964783c147311b2f327a9df13",
"cmd/go-omni/apigen/testdata/errorInheritance/bounded.go": "8ec48e5baae15dd60f983b9bbd7292246e8bae696027f53e85e5ce48173cf627"
}
}