使用刚更新的 AGENTS.md 和 align-linuxcnc 加速规则执行

结论:按 align-linuxcnc 先确认干净基线,避免 source-map-only 和 smoke 扩展;增强 WASM PythonPlugin link probe,锁定 LinuxCNC src/emc/pythonplugin/python_plugin.cc / python_plugin.hh 暴露的 last_errmsg()/last_exception() 状态面,在 Python 禁用边界下仍保持插件 API 诊断一致。\n\n测试结论:./test-linuxcnc-wasm-python-plugin-link.sh、./test-native.sh、./test-linuxcnc-source-link.sh 均通过。
This commit is contained in:
cnc
2026-06-05 15:11:32 +08:00
parent 428fc46f4e
commit 284afa1c64

View File

@@ -16,6 +16,9 @@ int main() {
if (plugin->configure(nullptr, nullptr) != PLUGIN_NO_SECTION) { if (plugin->configure(nullptr, nullptr) != PLUGIN_NO_SECTION) {
return 6; return 6;
} }
if (plugin->last_errmsg() != "no section") {
return 23;
}
if (plugin->configure("/tmp/cnc_sim_missing_python_plugin_probe.ini", "PYTHON") != PLUGIN_BAD_INIFILE) { if (plugin->configure("/tmp/cnc_sim_missing_python_plugin_probe.ini", "PYTHON") != PLUGIN_BAD_INIFILE) {
return 7; return 7;
} }
@@ -33,6 +36,9 @@ int main() {
if (plugin->configure(nullptr, "PYTHON") != PLUGIN_NO_INIFILE) { if (plugin->configure(nullptr, "PYTHON") != PLUGIN_NO_INIFILE) {
return 21; return 21;
} }
if (plugin->last_errmsg() != "no inifile") {
return 24;
}
const char *ini = "/tmp/cnc_sim_python_plugin_probe.ini"; const char *ini = "/tmp/cnc_sim_python_plugin_probe.ini";
{ {
FILE *file = std::fopen(ini, "w"); FILE *file = std::fopen(ini, "w");
@@ -77,6 +83,9 @@ int main() {
if (plugin->last_exception().empty()) { if (plugin->last_exception().empty()) {
return 12; return 12;
} }
if (plugin->last_exception() != handle_pyerror()) {
return 25;
}
if (plugin->run_string("noop", retval, false) != PLUGIN_OK) { if (plugin->run_string("noop", retval, false) != PLUGIN_OK) {
return 13; return 13;
} }