继续按 align-linuxcnc 约束:补 reader 裸项错误源码覆盖,测试通过
This commit is contained in:
@@ -564,6 +564,7 @@ fi
|
||||
# read_real_value() requires a real value after '='.
|
||||
parameter_setting_error_cases=(
|
||||
"linuxcnc_parameter_missing_equal_error|Equal sign missing in parameter setting"
|
||||
"linuxcnc_midline_parameter_missing_equal_error|Equal sign missing in parameter setting"
|
||||
"linuxcnc_parameter_missing_value_error|No characters found in reading real value"
|
||||
)
|
||||
for case in "${parameter_setting_error_cases[@]}"; do
|
||||
@@ -575,7 +576,7 @@ for case in "${parameter_setting_error_cases[@]}"; do
|
||||
echo "expected $fixture.ngc to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -q "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
done
|
||||
# Source basis: LinuxCNC src/emc/rs274ngc/interp_read.cc
|
||||
# read_parameter(), read_parameter_setting(), read_integer_value(),
|
||||
@@ -598,7 +599,7 @@ for case in "${parameter_reader_error_cases[@]}"; do
|
||||
echo "expected $fixture.ngc to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -q "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
done
|
||||
if CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" \
|
||||
"$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_negative_sqrt_error.ngc \
|
||||
@@ -670,6 +671,8 @@ unary_unknown_word_error_cases=(
|
||||
"linuxcnc_unary_unknown_s_word_error|Unknown word starting with s"
|
||||
"linuxcnc_unary_unknown_t_word_error|Unknown word starting with t"
|
||||
"linuxcnc_unary_unknown_default_word_error|Unknown word where unary operation could be"
|
||||
"linuxcnc_top_level_bare_unary_error|Unknown word where unary operation could be"
|
||||
"linuxcnc_midline_bare_unary_error|Unknown word where unary operation could be"
|
||||
)
|
||||
for case in "${unary_unknown_word_error_cases[@]}"; do
|
||||
fixture=${case%%|*}
|
||||
@@ -680,7 +683,7 @@ for case in "${unary_unknown_word_error_cases[@]}"; do
|
||||
echo "expected $fixture.ngc to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -q "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
done
|
||||
# Source basis: LinuxCNC src/emc/rs274ngc/interp_read.cc
|
||||
# read_operation() rejects unknown binary operation names by prefix,
|
||||
@@ -707,7 +710,7 @@ for case in "${binary_operation_error_cases[@]}"; do
|
||||
echo "expected $fixture.ngc to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -q "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
done
|
||||
# Source basis: LinuxCNC src/emc/rs274ngc/interp_read.cc
|
||||
# read_f()/read_g()/read_h()/read_l()/read_m()/read_s()/read_t()
|
||||
@@ -730,7 +733,7 @@ for case in "${negative_word_error_cases[@]}"; do
|
||||
echo "expected $fixture.ngc to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -q "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
done
|
||||
# Source basis: LinuxCNC src/emc/rs274ngc/interp_read.cc
|
||||
# read_g()/read_m() validate numeric range, known code tables from
|
||||
@@ -752,7 +755,7 @@ for case in "${gm_reader_error_cases[@]}"; do
|
||||
echo "expected $fixture.ngc to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -q "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
done
|
||||
# Source basis: LinuxCNC src/emc/rs274ngc/interp_read.cc
|
||||
# read_dollar() rejects repeated spindle-choice words while filling a block.
|
||||
@@ -768,12 +771,20 @@ grep -Fq "Multiple spindle choice (\$) words on one line" \
|
||||
# read_items() only consumes a leading N word before item dispatch;
|
||||
# read_one_item() then uses the default reader table from interp_array.cc
|
||||
# and rejects unknown item-start characters, including middle-of-line or
|
||||
# comment-prefixed N/O words.
|
||||
# comment-prefixed N/O words, bracket expressions, naked numbers, and
|
||||
# non-leading ATAN argument slashes.
|
||||
bad_character_error_cases=(
|
||||
"linuxcnc_bad_character_bang_error|Bad character '!' used"
|
||||
"linuxcnc_bad_character_middle_n_word_error|Bad character 'n' used"
|
||||
"linuxcnc_comment_prefixed_n_word_error|Bad character 'n' used"
|
||||
"linuxcnc_comment_prefixed_oword_error|Bad character 'o' used"
|
||||
"linuxcnc_bad_character_top_left_bracket_error|Bad character '[' used"
|
||||
"linuxcnc_bad_character_top_right_bracket_error|Bad character ']' used"
|
||||
"linuxcnc_bad_character_midline_left_bracket_error|Bad character '[' used"
|
||||
"linuxcnc_bad_character_midline_right_bracket_error|Bad character ']' used"
|
||||
"linuxcnc_bad_character_top_number_error|Bad character '1' used"
|
||||
"linuxcnc_top_level_bare_atan_error|Bad character '/' used"
|
||||
"linuxcnc_midline_bare_atan_error|Bad character '/' used"
|
||||
)
|
||||
for case in "${bad_character_error_cases[@]}"; do
|
||||
fixture=${case%%|*}
|
||||
@@ -784,7 +795,7 @@ for case in "${bad_character_error_cases[@]}"; do
|
||||
echo "expected $fixture.ngc to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -q "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
done
|
||||
# Source basis: LinuxCNC src/emc/rs274ngc/interp_check.cc
|
||||
# check_m_codes() rejects blocks with more than MAX_EMS M-codes.
|
||||
@@ -832,7 +843,7 @@ for case in "${multiple_word_error_cases[@]}"; do
|
||||
echo "expected $fixture.ngc to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -q "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
done
|
||||
CNC_SIM_RS274_FILE_MODE=1 CNC_SIM_RS274_VAR="$var_file" \
|
||||
"$build_dir/linuxcnc_rs274_source_dump" tests/gcode/linuxcnc_value_returned.ngc \
|
||||
@@ -898,7 +909,7 @@ for case in "${oword_reader_error_cases[@]}"; do
|
||||
echo "expected $fixture.ngc to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -q "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
done
|
||||
# Source basis: LinuxCNC src/emc/rs274ngc/interp_o_word.cc
|
||||
# convert_control_functions() rejects unmatched, duplicate, and
|
||||
@@ -932,7 +943,7 @@ for case in "${oword_execution_error_cases[@]}"; do
|
||||
echo "expected $fixture.ngc to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -q "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
done
|
||||
# Source basis: LinuxCNC src/emc/rs274ngc/interp_read.cc read_text()
|
||||
# rejects EOF without the matching percent/program end and overlong file
|
||||
@@ -952,7 +963,7 @@ for case in "${read_text_error_cases[@]}"; do
|
||||
echo "expected $fixture.ngc to fail" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -q "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
grep -Fq "$expected" "$output_dir/cnc_sim_linuxcnc_source_$fixture.err"
|
||||
done
|
||||
long_line_fixture="$output_dir/linuxcnc_command_too_long_error.ngc"
|
||||
printf 'G1 X' > "$long_line_fixture"
|
||||
|
||||
Reference in New Issue
Block a user