补齐 OPFS 镜像冲突覆盖

This commit is contained in:
cnc
2026-06-05 23:20:06 +08:00
parent 36763c6bcd
commit e928b32e69

View File

@@ -84,6 +84,34 @@ export async function runBrowserOpfsMirrorSections(context, simulator) {
() => simulator.fs.module.FS.stat(movedTemporaryWasmPath),
"OPFS moveFile left the WASM mirror source behind",
);
await simulator.fs.opfs.writeFile("parameters/mirror-conflict-source.var", "5161\t3.000000\n");
const copyConflictPath = simulator.fs.opfs.resolvePath("parameters/mirror-conflict-copy.var");
simulator.fs.module.FS.mkdir(copyConflictPath);
await simulator.fs.opfs.copyFile("parameters/mirror-conflict-source.var", "parameters/mirror-conflict-copy.var");
const copyConflictMode = simulator.fs.module.FS.stat(copyConflictPath).mode;
if (!simulator.fs.module.FS.isFile(copyConflictMode)) {
throw new Error("OPFS copyFile did not replace a WASM mirror directory with a file");
}
expectText(
new TextDecoder().decode(simulator.fs.module.FS.readFile(copyConflictPath)),
"5161\t3.000000\n",
"OPFS copyFile did not write copied contents over a WASM mirror directory",
);
await simulator.fs.opfs.writeFile("parameters/mirror-conflict-move.var.new", "5161\t4.000000\n");
const moveConflictPath = simulator.fs.opfs.resolvePath("parameters/mirror-conflict-move.var");
simulator.fs.module.FS.mkdir(moveConflictPath);
await simulator.fs.opfs.moveFile("parameters/mirror-conflict-move.var.new", "parameters/mirror-conflict-move.var");
const moveConflictMode = simulator.fs.module.FS.stat(moveConflictPath).mode;
if (!simulator.fs.module.FS.isFile(moveConflictMode)) {
throw new Error("OPFS moveFile did not replace a WASM mirror directory with a file");
}
expectText(
new TextDecoder().decode(simulator.fs.module.FS.readFile(moveConflictPath)),
"5161\t4.000000\n",
"OPFS moveFile did not write moved contents over a WASM mirror directory",
);
});
await runSection("opfs write truncates wasm mirror", async () => {