From e928b32e69a51be1414fe3668132da745acbf9c4 Mon Sep 17 00:00:00 2001 From: cnc Date: Fri, 5 Jun 2026 23:20:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E9=BD=90=20OPFS=20=E9=95=9C=E5=83=8F?= =?UTF-8?q?=E5=86=B2=E7=AA=81=E8=A6=86=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...browser-wasm-smoke-opfs-mirror-sections.js | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/web/test-browser-wasm-smoke-opfs-mirror-sections.js b/web/test-browser-wasm-smoke-opfs-mirror-sections.js index a52a05c..803faa9 100644 --- a/web/test-browser-wasm-smoke-opfs-mirror-sections.js +++ b/web/test-browser-wasm-smoke-opfs-mirror-sections.js @@ -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 () => {