diff --git a/core/wasm_shims/tooldata/tooldata_probe_main.cc b/core/wasm_shims/tooldata/tooldata_probe_main.cc index 9c8da76..d5a61b4 100644 --- a/core/wasm_shims/tooldata/tooldata_probe_main.cc +++ b/core/wasm_shims/tooldata/tooldata_probe_main.cc @@ -272,6 +272,23 @@ int main() { if (tooldata_put(tool, 12) != IDX_NEW) { return 2; } + CANON_TOOL_TABLE lower_index_tool = tooldata_entry_init(); + lower_index_tool.toolno = 3; + lower_index_tool.pocketno = 5; + // LinuxCNC src/emc/tooldata/tooldata_mmap.cc returns IDX_OK for writes at + // or below the current last_index and leaves last_index unchanged. + if (tooldata_put(lower_index_tool, 5) != IDX_OK) { + return 80; + } + if (tooldata_last_index_get() != 12) { + return 81; + } + CANON_TOOL_TABLE lower_index_loaded = tooldata_entry_init(); + if (tooldata_get(&lower_index_loaded, 5) != IDX_OK || + lower_index_loaded.toolno != 3 || + lower_index_loaded.pocketno != 5) { + return 82; + } CANON_TOOL_TABLE loaded = tooldata_entry_init(); if (tooldata_get(&loaded, 12) != IDX_OK) {