Import LinuxCNC source tree

This commit is contained in:
Wang Dequan
2026-08-20 06:17:39 +08:00
commit 2c814634c3
9429 changed files with 10556013 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
bitslice_test.comp
lincurve_test.comp
logic_test.comp

View File

@@ -0,0 +1,100 @@
bitslice_test u32 IN 0 bitslice-test.0.in
bitslice_test bit OUT FALSE bitslice-test.0.out-00
bitslice_test bit OUT FALSE bitslice-test.0.out-01
bitslice_test s32 OUT 0 bitslice-test.0.time
bitslice_test u32 IN 0 bitslice-test.1.in
bitslice_test bit OUT FALSE bitslice-test.1.out-00
bitslice_test bit OUT FALSE bitslice-test.1.out-01
bitslice_test bit OUT FALSE bitslice-test.1.out-02
bitslice_test s32 OUT 0 bitslice-test.1.time
bitslice_test u32 IN 0 bitslice-test.2.in
bitslice_test bit OUT FALSE bitslice-test.2.out-00
bitslice_test bit OUT FALSE bitslice-test.2.out-01
bitslice_test s32 OUT 0 bitslice-test.2.time
bitslice_test u32 IN 0 bitslice-test.3.in
bitslice_test bit OUT FALSE bitslice-test.3.out-00
bitslice_test bit OUT FALSE bitslice-test.3.out-01
bitslice_test bit OUT FALSE bitslice-test.3.out-02
bitslice_test s32 OUT 0 bitslice-test.3.time
lincurve_test float IN 0 lincurve-test.0.in
lincurve_test float OUT 0 lincurve-test.0.out
lincurve_test float I/O 0 lincurve-test.0.out-io
lincurve_test s32 OUT 0 lincurve-test.0.time
lincurve_test float IN 0 lincurve-test.1.in
lincurve_test float OUT 0 lincurve-test.1.out
lincurve_test float I/O 0 lincurve-test.1.out-io
lincurve_test s32 OUT 0 lincurve-test.1.time
lincurve_test float IN 0 lincurve-test.2.in
lincurve_test float OUT 0 lincurve-test.2.out
lincurve_test float I/O 0 lincurve-test.2.out-io
lincurve_test s32 OUT 0 lincurve-test.2.time
lincurve_test float IN 0 lincurve-test.3.in
lincurve_test float OUT 0 lincurve-test.3.out
lincurve_test float I/O 0 lincurve-test.3.out-io
lincurve_test s32 OUT 0 lincurve-test.3.time
logic_test bit OUT FALSE logic-test.0.and
logic_test bit IN FALSE logic-test.0.in-00
logic_test bit IN FALSE logic-test.0.in-01
logic_test s32 OUT 0 logic-test.0.time
logic_test bit IN FALSE logic-test.1.in-00
logic_test bit IN FALSE logic-test.1.in-01
logic_test bit IN FALSE logic-test.1.in-02
logic_test bit IN FALSE logic-test.1.in-03
logic_test bit OUT FALSE logic-test.1.or
logic_test s32 OUT 0 logic-test.1.time
logic_test bit OUT FALSE logic-test.2.and
logic_test bit IN FALSE logic-test.2.in-00
logic_test bit IN FALSE logic-test.2.in-01
logic_test s32 OUT 0 logic-test.2.time
logic_test bit IN FALSE logic-test.3.in-00
logic_test bit IN FALSE logic-test.3.in-01
logic_test bit IN FALSE logic-test.3.in-02
logic_test bit IN FALSE logic-test.3.in-03
logic_test bit OUT FALSE logic-test.3.or
logic_test s32 OUT 0 logic-test.3.time
bitslice_test s32 RW 0 bitslice-test.0.tmax
bitslice_test bit RO FALSE bitslice-test.0.tmax-increased
bitslice_test s32 RW 0 bitslice-test.1.tmax
bitslice_test bit RO FALSE bitslice-test.1.tmax-increased
bitslice_test s32 RW 0 bitslice-test.2.tmax
bitslice_test bit RO FALSE bitslice-test.2.tmax-increased
bitslice_test s32 RW 0 bitslice-test.3.tmax
bitslice_test bit RO FALSE bitslice-test.3.tmax-increased
lincurve_test s32 RW 0 lincurve-test.0.tmax
lincurve_test bit RO FALSE lincurve-test.0.tmax-increased
lincurve_test float RW 0 lincurve-test.0.x-val-00
lincurve_test float RW 0 lincurve-test.0.x-val-01
lincurve_test float RW 0 lincurve-test.0.y-val-00
lincurve_test float RW 0 lincurve-test.0.y-val-01
lincurve_test s32 RW 0 lincurve-test.1.tmax
lincurve_test bit RO FALSE lincurve-test.1.tmax-increased
lincurve_test float RW 0 lincurve-test.1.x-val-00
lincurve_test float RW 0 lincurve-test.1.x-val-01
lincurve_test float RW 0 lincurve-test.1.x-val-02
lincurve_test float RW 0 lincurve-test.1.y-val-00
lincurve_test float RW 0 lincurve-test.1.y-val-01
lincurve_test float RW 0 lincurve-test.1.y-val-02
lincurve_test s32 RW 0 lincurve-test.2.tmax
lincurve_test bit RO FALSE lincurve-test.2.tmax-increased
lincurve_test float RW 0 lincurve-test.2.x-val-00
lincurve_test float RW 0 lincurve-test.2.x-val-01
lincurve_test float RW 0 lincurve-test.2.y-val-00
lincurve_test float RW 0 lincurve-test.2.y-val-01
lincurve_test s32 RW 0 lincurve-test.3.tmax
lincurve_test bit RO FALSE lincurve-test.3.tmax-increased
lincurve_test float RW 0 lincurve-test.3.x-val-00
lincurve_test float RW 0 lincurve-test.3.x-val-01
lincurve_test float RW 0 lincurve-test.3.x-val-02
lincurve_test float RW 0 lincurve-test.3.y-val-00
lincurve_test float RW 0 lincurve-test.3.y-val-01
lincurve_test float RW 0 lincurve-test.3.y-val-02
logic_test s32 RW 0 logic-test.0.tmax
logic_test bit RO FALSE logic-test.0.tmax-increased
logic_test s32 RW 0 logic-test.1.tmax
logic_test bit RO FALSE logic-test.1.tmax-increased
logic_test s32 RW 0 logic-test.2.tmax
logic_test bit RO FALSE logic-test.2.tmax-increased
logic_test s32 RW 0 logic-test.3.tmax
logic_test bit RO FALSE logic-test.3.tmax-increased

View File

@@ -0,0 +1,10 @@
# personalities are used modulo the number of
# halcompiled personalities
# 4 count, 2 personalities
loadrt logic_test count=4 personality=0x102,0x204
loadrt lincurve_test count=4 personality=2,3
loadrt bitslice_test count=4 personality=2,3
show pin
show parameter

View File

@@ -0,0 +1,100 @@
bitslice_test u32 IN 0 bs1.in
bitslice_test bit OUT FALSE bs1.out-00
bitslice_test bit OUT FALSE bs1.out-01
bitslice_test s32 OUT 0 bs1.time
bitslice_test u32 IN 0 bs2.in
bitslice_test bit OUT FALSE bs2.out-00
bitslice_test bit OUT FALSE bs2.out-01
bitslice_test bit OUT FALSE bs2.out-02
bitslice_test s32 OUT 0 bs2.time
bitslice_test u32 IN 0 bs3.in
bitslice_test bit OUT FALSE bs3.out-00
bitslice_test bit OUT FALSE bs3.out-01
bitslice_test s32 OUT 0 bs3.time
bitslice_test u32 IN 0 bs4.in
bitslice_test bit OUT FALSE bs4.out-00
bitslice_test bit OUT FALSE bs4.out-01
bitslice_test bit OUT FALSE bs4.out-02
bitslice_test s32 OUT 0 bs4.time
lincurve_test float IN 0 lc1.in
lincurve_test float OUT 0 lc1.out
lincurve_test float I/O 0 lc1.out-io
lincurve_test s32 OUT 0 lc1.time
lincurve_test float IN 0 lc2.in
lincurve_test float OUT 0 lc2.out
lincurve_test float I/O 0 lc2.out-io
lincurve_test s32 OUT 0 lc2.time
lincurve_test float IN 0 lc3.in
lincurve_test float OUT 0 lc3.out
lincurve_test float I/O 0 lc3.out-io
lincurve_test s32 OUT 0 lc3.time
lincurve_test float IN 0 lc4.in
lincurve_test float OUT 0 lc4.out
lincurve_test float I/O 0 lc4.out-io
lincurve_test s32 OUT 0 lc4.time
logic_test bit OUT FALSE lg1.and
logic_test bit IN FALSE lg1.in-00
logic_test bit IN FALSE lg1.in-01
logic_test s32 OUT 0 lg1.time
logic_test bit IN FALSE lg2.in-00
logic_test bit IN FALSE lg2.in-01
logic_test bit IN FALSE lg2.in-02
logic_test bit IN FALSE lg2.in-03
logic_test bit OUT FALSE lg2.or
logic_test s32 OUT 0 lg2.time
logic_test bit OUT FALSE lg3.and
logic_test bit IN FALSE lg3.in-00
logic_test bit IN FALSE lg3.in-01
logic_test s32 OUT 0 lg3.time
logic_test bit IN FALSE lg4.in-00
logic_test bit IN FALSE lg4.in-01
logic_test bit IN FALSE lg4.in-02
logic_test bit IN FALSE lg4.in-03
logic_test bit OUT FALSE lg4.or
logic_test s32 OUT 0 lg4.time
bitslice_test s32 RW 0 bs1.tmax
bitslice_test bit RO FALSE bs1.tmax-increased
bitslice_test s32 RW 0 bs2.tmax
bitslice_test bit RO FALSE bs2.tmax-increased
bitslice_test s32 RW 0 bs3.tmax
bitslice_test bit RO FALSE bs3.tmax-increased
bitslice_test s32 RW 0 bs4.tmax
bitslice_test bit RO FALSE bs4.tmax-increased
lincurve_test s32 RW 0 lc1.tmax
lincurve_test bit RO FALSE lc1.tmax-increased
lincurve_test float RW 0 lc1.x-val-00
lincurve_test float RW 0 lc1.x-val-01
lincurve_test float RW 0 lc1.y-val-00
lincurve_test float RW 0 lc1.y-val-01
lincurve_test s32 RW 0 lc2.tmax
lincurve_test bit RO FALSE lc2.tmax-increased
lincurve_test float RW 0 lc2.x-val-00
lincurve_test float RW 0 lc2.x-val-01
lincurve_test float RW 0 lc2.x-val-02
lincurve_test float RW 0 lc2.y-val-00
lincurve_test float RW 0 lc2.y-val-01
lincurve_test float RW 0 lc2.y-val-02
lincurve_test s32 RW 0 lc3.tmax
lincurve_test bit RO FALSE lc3.tmax-increased
lincurve_test float RW 0 lc3.x-val-00
lincurve_test float RW 0 lc3.x-val-01
lincurve_test float RW 0 lc3.y-val-00
lincurve_test float RW 0 lc3.y-val-01
lincurve_test s32 RW 0 lc4.tmax
lincurve_test bit RO FALSE lc4.tmax-increased
lincurve_test float RW 0 lc4.x-val-00
lincurve_test float RW 0 lc4.x-val-01
lincurve_test float RW 0 lc4.x-val-02
lincurve_test float RW 0 lc4.y-val-00
lincurve_test float RW 0 lc4.y-val-01
lincurve_test float RW 0 lc4.y-val-02
logic_test s32 RW 0 lg1.tmax
logic_test bit RO FALSE lg1.tmax-increased
logic_test s32 RW 0 lg2.tmax
logic_test bit RO FALSE lg2.tmax-increased
logic_test s32 RW 0 lg3.tmax
logic_test bit RO FALSE lg3.tmax-increased
logic_test s32 RW 0 lg4.tmax
logic_test bit RO FALSE lg4.tmax-increased

View File

@@ -0,0 +1,10 @@
# personalities are used modulo the number of
# halcompiled personalities
# 4 names, 2 personalities
loadrt logic_test names=lg1,lg2,lg3,lg4 personality=0x102,0x204
loadrt lincurve_test names=lc1,lc2,lc3,lc4 personality=2,3
loadrt bitslice_test names=bs1,bs2,bs3,bs4 personality=2,3
show pin
show parameter

View File

@@ -0,0 +1,8 @@
Verify that personalities are used modulo 2 when
using halcompile --personalities=2
Test in-tree components:
lincurve
logic
bitslice

View File

@@ -0,0 +1,10 @@
#!/bin/bash
cd "$(dirname "$1")" || exit
RETVAL=0
for EXPECTED in *.expected ; do
BASE=$(basename "$EXPECTED" .expected)
RESULT=$BASE.result
diff -u "$EXPECTED" "$RESULT" || RETVAL=1
done
exit $RETVAL

View File

@@ -0,0 +1 @@
Restrictions: sudo

View File

@@ -0,0 +1,35 @@
#!/bin/bash
set -e
${SUDO} halcompile --personalities=2 --install lincurve_test.comp
${SUDO} halcompile --personalities=2 --install logic_test.comp
${SUDO} halcompile --personalities=2 --install bitslice_test.comp
# This tells us the expected filename extension ${MODULE_EXT} of realtime
# modules.
if [[ -f "${EMC2_HOME}/scripts/rtapi.conf" ]]; then
source "${EMC2_HOME}/scripts/rtapi.conf"
else
source "/etc/linuxcnc/rtapi.conf"
fi
for INSTALLED_FILE in "${RTLIB_DIR}"/{lincurve_test,logic_test,bitslice_test}"${MODULE_EXT}"; do
if [[ ! -f "${INSTALLED_FILE}" ]]; then
echo "'halcompile --install' did not install '${INSTALLED_FILE}'"
exit 1
fi
MODE=$(stat --printf '%#03a\n' "${INSTALLED_FILE}")
if [[ $((MODE & 0111)) != '0' ]]; then
echo "installed file '${INSTALLED_FILE}' has incorrect permissions"
echo "expected no execute bits, got ${MODE}"
exit 1
fi
done
for HAL in *.hal; do
echo "testing '$HAL'"
BASE=$(basename "$HAL" .hal)
# use -s to avoid different user assignments in show output
halrun -s "$HAL" >| "$BASE".result
done