继续按 align-linuxcnc 约束:补 convert_m 参数错误源码覆盖,测试通过
This commit is contained in:
@@ -199,6 +199,35 @@ CNC_SIM_RS274_VAR="$var_file" \
|
||||
CNC_SIM_RS274_VAR="$var_file" \
|
||||
"$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_io_controls.ngc \
|
||||
>"$output_dir/cnc_sim_linuxcnc_source_io_controls.json"
|
||||
# Source basis: LinuxCNC src/emc/rs274ngc/interp_convert.cc convert_m()
|
||||
# validates M62-M68 input/output words, M61 Q tool numbers, and M19 Q wait
|
||||
# values before issuing Canon output/input, tool, or spindle-orient calls.
|
||||
convert_m_error_cases=(
|
||||
"linuxcnc_m62_missing_p_word_error|No valid P word with M62"
|
||||
"linuxcnc_m63_missing_p_word_error|No valid P word with M63"
|
||||
"linuxcnc_m64_missing_p_word_error|No valid P word with M64"
|
||||
"linuxcnc_m65_missing_p_word_error|No valid P word with M65"
|
||||
"linuxcnc_m66_missing_input_error|Need to have either a valid P or a valid E word with M66"
|
||||
"linuxcnc_m66_both_inputs_error|Invalid to select both a digital and an analog input with M66"
|
||||
"linuxcnc_m66_zero_timeout_error|Zero timeout with wait type != immediate return"
|
||||
"linuxcnc_m66_analog_wait_error|Can't select analog input with wait type != immediate return"
|
||||
"linuxcnc_m67_missing_e_word_error|Invalid analog index with M67"
|
||||
"linuxcnc_m68_missing_e_word_error|Invalid analog index with M68"
|
||||
"linuxcnc_m19_zero_q_error|Q word with M19 requires a value > 0"
|
||||
"linuxcnc_m61_negative_q_error|Need non-negative Q-word to specify tool number with M61"
|
||||
)
|
||||
for case in "${convert_m_error_cases[@]}"; do
|
||||
fixture=${case%%|*}
|
||||
expected=${case#*|}
|
||||
if CNC_SIM_RS274_VAR="$var_file" \
|
||||
"$build_dir/linuxcnc_rs274_source_dump" "tests/gcode/$fixture.ngc" \
|
||||
>"$output_dir/cnc_sim_linuxcnc_source_$fixture.json" \
|
||||
2>"$output_dir/cnc_sim_linuxcnc_source_$fixture.err"; then
|
||||
echo "expected $fixture.ngc to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
done
|
||||
CNC_SIM_RS274_VAR="$var_file" \
|
||||
"$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_override_controls.ngc \
|
||||
>"$output_dir/cnc_sim_linuxcnc_source_override_controls.json"
|
||||
|
||||
Reference in New Issue
Block a user