fix(scripts): clamp package download timers · openclaw/openclaw@c310f8c
vincentkoc
·
2026-06-22
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -1115,6 +1115,36 @@ describe("resolve-openclaw-package-candidate", () => {
|
1115 | 1115 | await expect(missing(`${target}.tmp`)).resolves.toBe(true); |
1116 | 1116 | }); |
1117 | 1117 | |
| 1118 | +it("clamps oversized package_url download timers before scheduling", async () => { |
| 1119 | +const dir = await mkdtemp(path.join(tmpdir(), "openclaw-package-download-")); |
| 1120 | +tempDirs.push(dir); |
| 1121 | +const target = path.join(dir, "openclaw.tgz"); |
| 1122 | + |
| 1123 | +await downloadUrl("https://packages.example/openclaw.tgz", target, { |
| 1124 | +fetchImpl: async () => |
| 1125 | +new Response( |
| 1126 | +new ReadableStream({ |
| 1127 | +start(controller) { |
| 1128 | +setTimeout(() => { |
| 1129 | +controller.enqueue(new Uint8Array([1, 2, 3])); |
| 1130 | +controller.close(); |
| 1131 | +}, 25); |
| 1132 | +}, |
| 1133 | +}), |
| 1134 | +{ |
| 1135 | +headers: { "content-length": "3" }, |
| 1136 | +status: 200, |
| 1137 | +}, |
| 1138 | +), |
| 1139 | +lookupHost: lookupAddresses([{ address: "93.184.216.34", family: 4 }]), |
| 1140 | +maxBytes: 3, |
| 1141 | +timeoutMs: MAX_TIMER_TIMEOUT_MS + 1, |
| 1142 | +}); |
| 1143 | + |
| 1144 | +await expect(readFile(target)).resolves.toEqual(Buffer.from([1, 2, 3])); |
| 1145 | +await expect(missing(`${target}.tmp`)).resolves.toBe(true); |
| 1146 | +}); |
| 1147 | + |
1118 | 1148 | it("times out stalled package_url response bodies", async () => { |
1119 | 1149 | const dir = await mkdtemp(path.join(tmpdir(), "openclaw-package-download-timeout-")); |
1120 | 1150 | tempDirs.push(dir); |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。