执行 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:
@@ -1,5 +1,6 @@
|
||||
#include "pythonplugin/python_plugin.hh"
|
||||
|
||||
#include <cstdlib>
|
||||
#include <cstdio>
|
||||
|
||||
// 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) {
|
||||
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";
|
||||
{
|
||||
FILE *file = std::fopen(ini, "w");
|
||||
@@ -37,6 +42,12 @@ int main() {
|
||||
std::fputs("[PYTHON]\n", 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) {
|
||||
std::remove(ini);
|
||||
return 17;
|
||||
|
||||
Reference in New Issue
Block a user