参考所有分组:补 native numeric O-word source 覆盖,测试通过

This commit is contained in:
cnc
2026-06-03 10:17:10 +08:00
parent 6cc07c2950
commit e778a37fdb

View File

@@ -781,7 +781,10 @@ for case in "${oword_reader_error_cases[@]}"; do
done done
# Source basis: LinuxCNC src/emc/rs274ngc/interp_o_word.cc # Source basis: LinuxCNC src/emc/rs274ngc/interp_o_word.cc
# convert_control_functions() rejects unmatched, duplicate, and # convert_control_functions() rejects unmatched, duplicate, and
# out-of-context O-word control labels during execution. # out-of-context O-word control labels during execution. control_save_offset()
# rejects numbered subroutine definitions encountered again in the main file,
# and interp_read.cc read_text() reports EOF when a file ends without a percent
# sign or M2/M30 after returning to the main program.
oword_execution_error_cases=( oword_execution_error_cases=(
"linuxcnc_oword_endsub_without_sub_error|not in a subroutine definition" "linuxcnc_oword_endsub_without_sub_error|not in a subroutine definition"
"linuxcnc_oword_return_without_sub_error|not in a subroutine definition" "linuxcnc_oword_return_without_sub_error|not in a subroutine definition"
@@ -802,6 +805,8 @@ oword_execution_error_cases=(
"linuxcnc_oword_sub_requires_endsub_error|'O.... endsub' or 'O.... return' must follow 'O.... sub'" "linuxcnc_oword_sub_requires_endsub_error|'O.... endsub' or 'O.... return' must follow 'O.... sub'"
"linuxcnc_oword_too_many_call_levels_error|Too many subroutine levels" "linuxcnc_oword_too_many_call_levels_error|Too many subroutine levels"
"linuxcnc_nested_subroutine_definition_error|Nested subroutine definition" "linuxcnc_nested_subroutine_definition_error|Nested subroutine definition"
"linuxcnc_numeric_oword_main_eof_error|File ended with no percent sign"
"linuxcnc_numeric_oword_sub_illegal_location|found in illegal location"
) )
for case in "${oword_execution_error_cases[@]}"; do for case in "${oword_execution_error_cases[@]}"; do
fixture=${case%%|*} fixture=${case%%|*}