参考所有分组,完成尽量多的内容。禁止顺手扩功能 smoke:锁定OPFS参数保存顺序
结论:按 LinuxCNC rs274ngc_pre.cc save_parameters() 的 .new、.bak、unlink/link/rename 顺序补强 OPFS/app/browser smoke 守卫,并验证临时参数文件不会残留在 OPFS。
This commit is contained in:
@@ -19,6 +19,12 @@ grep -F 'int Interp::save_parameters(const char *filename,' \
|
||||
"$linuxcnc_root/src/emc/rs274ngc/rs274ngc_pre.cc" >/dev/null
|
||||
grep -F 'std::string tempfile = std::string(filename) + ".new";' \
|
||||
"$linuxcnc_root/src/emc/rs274ngc/rs274ngc_pre.cc" >/dev/null
|
||||
grep -F 'unlink(bakfile.c_str());' \
|
||||
"$linuxcnc_root/src/emc/rs274ngc/rs274ngc_pre.cc" >/dev/null
|
||||
grep -F 'if(link(filename, bakfile.c_str()) < 0)' \
|
||||
"$linuxcnc_root/src/emc/rs274ngc/rs274ngc_pre.cc" >/dev/null
|
||||
grep -F 'if(rename(tempfile.c_str(), filename) < 0)' \
|
||||
"$linuxcnc_root/src/emc/rs274ngc/rs274ngc_pre.cc" >/dev/null
|
||||
grep -F 'read_text(command, _setup.file_pointer, _setup.linetext,' \
|
||||
"$linuxcnc_root/src/emc/rs274ngc/rs274ngc_pre.cc" >/dev/null
|
||||
grep -F 'int read_text(const char *command, FILE * inport, char *raw_line,' \
|
||||
@@ -51,6 +57,7 @@ grep -F 'must not expand the temporary smoke parser' docs/linuxcnc-wasm-smoke-so
|
||||
grep -F 'OPFS-only' docs/linuxcnc-wasm-smoke-source-map.md >/dev/null
|
||||
grep -F '`src/emc/rs274ngc/interp_convert.cc` provides `convert_m()` coverage' \
|
||||
docs/linuxcnc-wasm-smoke-source-map.md >/dev/null
|
||||
grep -F 'unlinking `filename + ".bak"`' docs/linuxcnc-wasm-smoke-source-map.md >/dev/null
|
||||
grep -F '`src/emc/kinematics/5axiskins.c`, `src/emc/kinematics/trtfuncs.c`' \
|
||||
docs/linuxcnc-wasm-smoke-source-map.md >/dev/null
|
||||
grep -F 'Generated switchkins config smoke cases must continue to come from' \
|
||||
@@ -102,6 +109,8 @@ grep -F 'app frame did not persist current program into OPFS' \
|
||||
web/test-browser-wasm-smoke-app-sections.js >/dev/null
|
||||
grep -F 'app frame did not persist LinuxCNC parameter backup into OPFS' \
|
||||
web/test-browser-wasm-smoke-app-sections.js >/dev/null
|
||||
grep -F 'app frame did not clean up LinuxCNC temporary parameter file in OPFS' \
|
||||
web/test-browser-wasm-smoke-app-sections.js >/dev/null
|
||||
|
||||
if grep -R -n -E 'localStorage|sessionStorage|indexedDB|showOpenFilePicker|showSaveFilePicker|showDirectoryPicker|webkitRequestFileSystem|FileReader' web/src; then
|
||||
echo "browser app/wasm code must not add filesystem persistence outside OPFS" >&2
|
||||
@@ -145,6 +154,7 @@ required_phrases = [
|
||||
"Node smoke must leave OPFS disabled",
|
||||
"Generated switchkins config smoke cases",
|
||||
"browser smoke shell guard also pins required section names",
|
||||
'unlinking `filename + ".bak"`',
|
||||
"./check-linuxcnc-wasm-smoke-source-map.sh",
|
||||
]
|
||||
for phrase in required_phrases:
|
||||
|
||||
Reference in New Issue
Block a user