Paul Koning 7354aadbfc Allow expression (with constant value) in .RADIX
Also add a test file for it.
2022-06-28 09:32:34 -04:00

98 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
#
# Run some regression test cases.
#
# If there is a .lst.ok file, it compares the listing.
# If there is a .objd.ok file, it compares the result of dumpobj.
#
TESTS="test-asciz \
test-backpatch \
test-blkb \
test-bsl-mac-arg \
test-cis \
test-complex-reloc \
test-enabl-ama \
test-enabl-lcm \
test-endm \
test-float \
test-gbl \
test-if \
test-impword \
test-include \
test-jmp \
test-listing \
test-locals \
test-macro-comma \
test-mcall-file \
test-opcodes \
test-operands \
test-prec \
test-psect \
test-rad50 \
test-radix \
test-reg \
test-reloc \
test-rept \
test-syntax \
test-ua-pl \
test-undef \
test-word-comma"
status=0
assemble() {
fmt="$1"
t="$2"
../macro11 $fmt -l "$t".lst -o "$t".obj "$t".mac 2>/dev/null
# Ignore error status and messages from the assembler.
# We check the listing file to see what we expect.
if [ -e "$t".lst.ok ]
then
diff -u "$t".lst.ok "$t".lst
status=$((status + $?))
fi
if [ -e "$t".objd.ok ]
then
../dumpobj $fmt "$t".obj >"$t".objd
diff -u "$t".objd.ok "$t".objd
status=$((status + $?))
fi
}
assemble_both() {
t=$1
assemble -rsx "$t"
assemble -rt11 "$t"
}
for t in $TESTS
do
assemble_both "$t"
done
for t in 2.11BSD/m11/*.m11
do
fn=$( echo ${t%.m11} | sed 's;/;-;g' )
cat >${fn}.mac <<EOF
;;;; Wrapper for $t
.list
.list
.list
debug = 1
.include "2.11BSD/m11/at.sml"
.include "${t}"
EOF
assemble_both "$fn"
done
exit $status