参考所有分组:补执行错误 native 覆盖,测试通过
This commit is contained in:
@@ -553,6 +553,14 @@ for case in "${canned_cycle_error_cases[@]}"; do
|
||||
fi
|
||||
grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_$fixture.err"
|
||||
done
|
||||
if CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" \
|
||||
"$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_canned_cycle_reject_rotary_followup.ngc \
|
||||
>"$output_dir/cnc_sim_linuxcnc_canned_cycle_reject_rotary_followup.json" 2>"$output_dir/cnc_sim_linuxcnc_canned_cycle_reject_rotary_followup.err"; then
|
||||
echo "expected linuxcnc_canned_cycle_reject_rotary_followup.ngc to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -Fq "Cannot put an a in canned cycle" \
|
||||
"$output_dir/cnc_sim_linuxcnc_canned_cycle_reject_rotary_followup.err"
|
||||
CNC_SIM_RS274_VAR="$var_file" "$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_canned_cycles_extended.ngc >"$output_dir/cnc_sim_linuxcnc_canned_cycles_extended.json"
|
||||
CNC_SIM_RS274_VAR="$var_file" "$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_canned_cycle_planes.ngc >"$output_dir/cnc_sim_linuxcnc_canned_cycle_planes.json"
|
||||
CNC_SIM_RS274_VAR="$var_file" "$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_arc_planes.ngc >"$output_dir/cnc_sim_linuxcnc_arc_planes.json"
|
||||
@@ -618,7 +626,40 @@ done
|
||||
CNC_SIM_RS274_VAR="$var_file" "$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_predefined_positions.ngc >"$output_dir/cnc_sim_linuxcnc_predefined_positions.json"
|
||||
CNC_SIM_RS274_VAR="$var_file" "$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_machine_coordinates.ngc >"$output_dir/cnc_sim_linuxcnc_machine_coordinates.json"
|
||||
CNC_SIM_RS274_VAR="$var_file" "$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_cutter_comp.ngc >"$output_dir/cnc_sim_linuxcnc_cutter_comp.json"
|
||||
# Source basis: LinuxCNC src/emc/rs274ngc/interp_convert.cc rejects
|
||||
# M6, M66, G71.0, and G98/G99 while cutter compensation is active;
|
||||
# compensated corner and G40 exit checks also reject gouging/arc exits.
|
||||
cutter_comp_execution_error_cases=(
|
||||
"linuxcnc_cutter_comp_tool_change_error|Cannot change tools with cutter radius compensation on"
|
||||
"linuxcnc_cutter_comp_wait_input_error|Cannot wait for digital input with cutter radius compensation on"
|
||||
"linuxcnc_cutter_comp_g71_error|G71.0 cannot be used with cutter compensation enabled"
|
||||
"linuxcnc_canned_cycle_g98_retract_error|Cannot change retract mode with cutter radius compensation on"
|
||||
"linuxcnc_ccomp_arcexit_error|The move just after exiting cutter compensation mode must be straight, not an arc"
|
||||
"linuxcnc_ccomp_gouging_error|Straight feed in concave corner cannot be reached by the tool without gouging"
|
||||
)
|
||||
for case in "${cutter_comp_execution_error_cases[@]}"; do
|
||||
fixture=${case%%|*}
|
||||
expected=${case#*|}
|
||||
if CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" \
|
||||
"$build_dir/linuxcnc_rs274_dump" "tests/gcode/$fixture.ngc" \
|
||||
>"$output_dir/cnc_sim_linuxcnc_$fixture.json" 2>"$output_dir/cnc_sim_linuxcnc_$fixture.err"; then
|
||||
echo "expected $fixture.ngc to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_$fixture.err"
|
||||
done
|
||||
CNC_SIM_RS274_VAR="$var_file" "$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_comments.ngc >"$output_dir/cnc_sim_linuxcnc_comments.json"
|
||||
# Source basis: LinuxCNC src/emc/rs274ngc/interp_convert.cc
|
||||
# convert_comment() recognizes hot comments, expands parameters, and makes
|
||||
# (abort,...) an interpreter error.
|
||||
if CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" \
|
||||
"$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_abort_hot_comment.ngc \
|
||||
>"$output_dir/cnc_sim_linuxcnc_abort_hot_comment.json" 2>"$output_dir/cnc_sim_linuxcnc_abort_hot_comment.err"; then
|
||||
echo "expected linuxcnc_abort_hot_comment.ngc to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -Fq "MixedCase param42=20.000000 named=4711.000000" \
|
||||
"$output_dir/cnc_sim_linuxcnc_abort_hot_comment.err"
|
||||
CNC_SIM_RS274_VAR="$var_file" "$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_probe_no_error.ngc >"$output_dir/cnc_sim_linuxcnc_probe_no_error.json"
|
||||
CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" "$build_dir/linuxcnc_rs274_dump" tests/gcode/smoke_oword_subprogram.ngc >"$output_dir/cnc_sim_linuxcnc_oword_subprogram.json"
|
||||
CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" "$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_named_oword_subprogram.ngc >"$output_dir/cnc_sim_linuxcnc_named_oword_subprogram.json"
|
||||
@@ -676,6 +717,7 @@ oword_execution_error_cases=(
|
||||
"linuxcnc_oword_fanuc_requires_m99_error|Fanuc 'O....' subroutine definition must end with 'M99'"
|
||||
"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_nested_subroutine_definition_error|Nested subroutine definition"
|
||||
)
|
||||
for case in "${oword_execution_error_cases[@]}"; do
|
||||
fixture=${case%%|*}
|
||||
|
||||
Reference in New Issue
Block a user