Files
NetMesh/electron/bridges/transferLimits.test.cjs

26 lines
1.2 KiB
JavaScript
Raw Permalink Normal View History

const test = require("node:test");
const assert = require("node:assert/strict");
const {
FAST_DOWNLOAD_CHANNELS_PER_SESSION,
DOWNLOAD_TRANSFER_CONCURRENCY,
UPLOAD_TRANSFER_CONCURRENCY,
TRANSFER_CHUNK_SIZE,
} = require("./transferLimits.cjs");
test("SFTP transfer limits preserve upload safety and the pre-regression download window", () => {
assert.equal(UPLOAD_TRANSFER_CONCURRENCY, 64);
assert.equal(DOWNLOAD_TRANSFER_CONCURRENCY, 64);
assert.equal(FAST_DOWNLOAD_CHANNELS_PER_SESSION, 1);
// Keep ssh2's default chunk size — larger packets can corrupt uploads on
// servers that do not honour non-default WRITE sizes (#2022).
assert.equal(TRANSFER_CHUNK_SIZE, 32 * 1024);
// #2449 / Electerm-class: upload window is 2MB (64 × 32KB). Raising only
// concurrency keeps the safe packet size while matching ssh2/Electerm defaults.
assert.equal(UPLOAD_TRANSFER_CONCURRENCY * TRANSFER_CHUNK_SIZE, 2 * 1024 * 1024);
// #2030 reduced the shared chunk size from 512KB to 32KB. Downloads need
// enough parallel reads to preserve the 2MB in-flight window that existed
// after #1533, otherwise high-latency proxy paths collapse to KB/s speeds.
assert.equal(DOWNLOAD_TRANSFER_CONCURRENCY * TRANSFER_CHUNK_SIZE, 2 * 1024 * 1024);
});