执行 AGENTS align-linuxcnc 加速规则

结论:补强 WASM PythonPlugin 可执行探针,依据 LinuxCNC src/emc/pythonplugin/python_plugin.cc 中 configure() 对 INI_FILE_NAME 缺失和环境变量 INI 文件的分支。验证通过:./test-linuxcnc-wasm-python-plugin-link.sh、./test-native.sh、./test-linuxcnc-source-link.sh。
This commit is contained in:
cnc
2026-06-05 10:06:39 +08:00
parent 60745adeef
commit a144576e90

View File

@@ -1,5 +1,6 @@
#include "pythonplugin/python_plugin.hh" #include "pythonplugin/python_plugin.hh"
#include <cstdlib>
#include <cstdio> #include <cstdio>
// LinuxCNC source basis: src/emc/pythonplugin/python_plugin.cc and // LinuxCNC source basis: src/emc/pythonplugin/python_plugin.cc and
@@ -28,6 +29,10 @@ int main() {
if (plugin->run_string("noop", retval, false) != PLUGIN_OK) { if (plugin->run_string("noop", retval, false) != PLUGIN_OK) {
return 3; return 3;
} }
unsetenv("INI_FILE_NAME");
if (plugin->configure(nullptr, "PYTHON") != PLUGIN_NO_INIFILE) {
return 21;
}
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");
@@ -37,6 +42,12 @@ int main() {
std::fputs("[PYTHON]\n", file); std::fputs("[PYTHON]\n", file);
std::fclose(file); std::fclose(file);
} }
setenv("INI_FILE_NAME", ini, 1);
if (plugin->configure(nullptr, "PYTHON") != PLUGIN_PYTHON_NOT_INITIALIZED) {
std::remove(ini);
return 22;
}
unsetenv("INI_FILE_NAME");
if (plugin->configure(ini, "PYTHON") != PLUGIN_PYTHON_NOT_INITIALIZED) { if (plugin->configure(ini, "PYTHON") != PLUGIN_PYTHON_NOT_INITIALIZED) {
std::remove(ini); std::remove(ini);
return 17; return 17;