diff --git a/test-linuxcnc-rs274-native.sh b/test-linuxcnc-rs274-native.sh index 6b6ec7c..f8c8e94 100755 --- a/test-linuxcnc-rs274-native.sh +++ b/test-linuxcnc-rs274-native.sh @@ -591,9 +591,10 @@ done CNC_SIM_RS274_VAR="$var_file" "$build_dir/linuxcnc_rs274_dump" tests/gcode/linuxcnc_canned_cycle.ngc >"$output_dir/cnc_sim_linuxcnc_canned_cycle.json" # Source basis: LinuxCNC src/emc/rs274ngc/interp_cycles.cc # convert_cycle() and the G73/G74/G82-G89 helpers validate canned-cycle -# repeat counts, plane-specific axis/R words, Q/P requirements, and spindle -# state before expanding cycles to Canon motion. +# feed mode, repeat counts, plane-specific axis/R words, Q/P requirements, +# and spindle state before expanding cycles to Canon motion. canned_cycle_error_cases=( + "linuxcnc_canned_cycle_inverse_time_error|Cannot use inverse time feed with canned cycles" "linuxcnc_canned_cycle_l0_error|Cannot do zero repeats of cycle" "linuxcnc_canned_cycle_missing_r_error|R clearance plane unspecified in cycle" "linuxcnc_canned_cycle_missing_z_error|Z value unspecified in xy plane canned cycle" diff --git a/test-linuxcnc-source-link.sh b/test-linuxcnc-source-link.sh index bf7e434..fb969af 100755 --- a/test-linuxcnc-source-link.sh +++ b/test-linuxcnc-source-link.sh @@ -366,6 +366,17 @@ done CNC_SIM_RS274_VAR="$var_file" \ "$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_canned_cycle.ngc \ >"$output_dir/cnc_sim_linuxcnc_source_canned_cycle.json" +# Source basis: LinuxCNC src/emc/rs274ngc/interp_cycles.cc +# convert_cycle() rejects inverse-time feed mode before expanding canned +# cycles through convert_cycle_xy()/yz()/zx(). +if CNC_SIM_RS274_VAR="$var_file" \ + "$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_canned_cycle_inverse_time_error.ngc \ + >"$output_dir/cnc_sim_linuxcnc_source_canned_cycle_inverse_time_error.json" \ + 2>"$output_dir/cnc_sim_linuxcnc_source_canned_cycle_inverse_time_error.err"; then + echo "expected linuxcnc_canned_cycle_inverse_time_error.ngc to fail" >&2 + exit 1 +fi +grep -q "Cannot use inverse time feed with canned cycles" "$output_dir/cnc_sim_linuxcnc_source_canned_cycle_inverse_time_error.err" if CNC_SIM_RS274_VAR="$var_file" \ "$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_canned_cycle_l0_error.ngc \ >"$output_dir/cnc_sim_linuxcnc_source_canned_cycle_l0_error.json" \ diff --git a/tests/gcode/linuxcnc_canned_cycle_inverse_time_error.ngc b/tests/gcode/linuxcnc_canned_cycle_inverse_time_error.ngc new file mode 100644 index 0000000..c02d6b7 --- /dev/null +++ b/tests/gcode/linuxcnc_canned_cycle_inverse_time_error.ngc @@ -0,0 +1,4 @@ +G21 G90 G17 +F100 +G93 +G81 X1 Z-1 R1