执行 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 "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;
|
||||||
|
|||||||
Reference in New Issue
Block a user