Expand LinuxCNC interpreter regression coverage

This commit is contained in:
2026-06-09 14:54:54 +08:00
parent 50757e45ba
commit 5bd8f12872
143 changed files with 10895 additions and 219 deletions

View File

@@ -0,0 +1,168 @@
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SET_FEED_REFERENCE(CANON_XYZ)
N..... ON_RESET()
N..... COMMENT("G21 metric, G54 coordinate system 1, G18 ZX plane, G54 coordinate system")
N..... SELECT_PLANE(CANON_PLANE_XZ)
N..... USE_LENGTH_UNITS(CANON_UNITS_MM)
N..... COMMENT("interpreter: continuing to use same coordinate system")
N..... COMMENT("G49 cancel tool length offset")
N..... USE_TOOL_LENGTH_OFFSET(0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000, 0.0000 0.0000 0.0000)
N..... COMMENT("G90 abs dist mode, G92.1 Reset coord sys offset")
N..... SET_G92_OFFSET(0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... COMMENT("G94 Feed Mode=Units per Minute, G64p Best Possible Speed p=Motion Blend Tolerance")
N..... COMMENT("interpreter: feed mode set to units per minute")
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... SET_MOTION_CONTROL_MODE(CANON_CONTINUOUS, 0.001000)
N..... SET_NAIVECAM_TOLERANCE(0.0010)
N..... COMMENT("Diameter Mode = 7, Radius Mode = 8")
N..... COMMENT("G91.1 = Relative Arc Offset Distance")
N..... SET_FEED_RATE(225.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(15.0000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(16.0000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(16.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(14.5000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.5000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.5000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(14.0000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(13.5000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.5000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.5000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(13.0000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.0000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(14.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(12.5000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.5000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.5000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(12.0000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.0000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(13.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(11.5000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.5000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.5000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(11.0000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.0000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(12.0000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.5000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.5000, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.5000, 0.0000, -1.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.5000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.0400, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0400, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0400, 0.0000, -14.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0400, 0.0000, -14.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(15.0000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(15.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.0400, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0400, 0.0000, -14.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.0400, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(11.0400, 0.0000, -15.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(10.0400, 0.0000, -14.0000, 0.0000, 0.0000, 0.0000)
N..... ARC_FEED(-14.0400, 10.0000, -14.0000, 10.0000, 1, 0.0000, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.5400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.5400, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.5400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.0400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.0400, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(10.0400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(9.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.5400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.5400, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.5400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.0400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.0400, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(9.0400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(8.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.5400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(8.5400, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(8.5400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.0400, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(8.0400, 0.0000, -20.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(8.0400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.5400, 0.0000, -20.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.5400, 0.0000, -19.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.5400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.0400, 0.0000, -19.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.0400, 0.0000, -18.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(7.0400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(6.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.5400, 0.0000, -18.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.5400, 0.0000, -17.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.5400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.0400, 0.0000, -17.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.0400, 0.0000, -16.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(6.0400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(5.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.5400, 0.0000, -16.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(5.5400, 0.0000, -15.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(5.5400, 0.0000, -15.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.0400, 0.0000, -15.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(5.0153, 0.0000, -15.0153, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(5.0153, 0.0000, -15.0153, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(4.0400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.5400, 0.0000, -14.9906, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(4.0153, 0.0000, -14.5153, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_TRAVERSE(4.0153, 0.0000, -14.5153, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.5400, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(3.0647, 0.0000, -14.0400, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(7.0247, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... STRAIGHT_FEED(15.0000, 0.0000, -21.9600, 0.0000, 0.0000, 0.0000)
N..... SET_G5X_OFFSET(1, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000)
N..... SET_XY_ROTATION(0.0000)
N..... SELECT_PLANE(CANON_PLANE_XY)
N..... SET_FEED_MODE(0, 0)
N..... SET_FEED_RATE(0.0000)
N..... STOP_SPINDLE_TURNING(0)
N..... SET_SPINDLE_MODE(0 0.0000)
N..... PROGRAM_END()
N..... ON_RESET()
N..... ON_RESET()

View File

@@ -0,0 +1,19 @@
G21 G18 G54 (G21 metric, G54 coordinate system 1, G18 ZX plane, G54 coordinate system)
G49 (G49 cancel tool length offset)
G90 G92.1 (G90 abs dist mode, G92.1 Reset coord sys offset)
G94 G64 p0.001 (G94 Feed Mode=Units per Minute, G64p Best Possible Speed p=Motion Blend Tolerance)
G8 (Diameter Mode = 7, Radius Mode = 8)
G91.1 (G91.1 = Relative Arc Offset Distance)
O200 SUB
;Change the next line from G01 X10 Z0 to G01 X5 Z0 and Axis works fine but this isn't the part profile I need.
G01 X10 Z0
G01 X10 Z-14
G01 X3
G01 X7 Z-22
O200 ENDSUB
F225
G71.1 Q200 X15.0 Z0 D0.04 I0.5 R1
G71.2 Q200 X15.0 Z0 D0.04 I0.5 R1
M2

View File

@@ -0,0 +1,24 @@
#!/bin/bash
#
# Demonstrate endless loop when encountering incorrect parameters in
# G71 call. Note, the expected output is not verified. No idea what
# it should look like on a successful termination of this endless
# loop.
rs274 -g g71-endless-loop.ngc | awk '{$1=""; print}' > result &
pid=$!
# Give it 10 seconds to complete
count=10
while [ 0 -lt $count ] && kill -0 $pid > /dev/null 2>&1 ; do
sleep 1
count=$((count - 1))
done
if kill -0 $pid > /dev/null 2>&1; then
kill -9 $pid
echo "E: g71-endless-loop.ngc program seem to be stuck, killing"
exit 1
fi
exit 0