Report failing file names in comparisons

The files being diffed (especially for  variants) are temp files, so their
names are pretty nondescript. This improve error output, using ANSI escape
sequences to make those lines stand out.
This commit is contained in:
ISSOtm
2020-01-13 15:22:10 +01:00
parent 1bd41bf79a
commit cdf6000618

View File

@@ -8,6 +8,14 @@ output=$(mktemp)
errput=$(mktemp) errput=$(mktemp)
rc=0 rc=0
tryDiff () {
diff -u --strip-trailing-cr $1 $2 || (echo -e "\033[1;31m${i%.asm}.$3$variant mismatch!\033[0;0m"; false)
}
tryCmp () {
cmp $1 $2 || (echo -e "\033[1;31m${i%.asm}.bin$variant mismatch!\033[0;0m"; false)
}
for i in *.asm; do for i in *.asm; do
for variant in '' '.pipe'; do for variant in '' '.pipe'; do
if [ -z "$variant" ]; then if [ -z "$variant" ]; then
@@ -37,9 +45,9 @@ for i in *.asm; do
sed "s/$subst/-/g" ${i%.asm}.err > $desired_errput sed "s/$subst/-/g" ${i%.asm}.err > $desired_errput
fi fi
diff -u --strip-trailing-cr $desired_output $output tryDiff $desired_output $output out
our_rc=$? our_rc=$?
diff -u --strip-trailing-cr $desired_errput $errput tryDiff $desired_errput $errput err
our_rc=$(($? || $our_rc)) our_rc=$(($? || $our_rc))
bin=${i%.asm}.out.bin bin=${i%.asm}.out.bin
@@ -48,7 +56,7 @@ for i in *.asm; do
dd if=$gb count=1 bs=$(printf %s $(wc -c < $bin)) > $output 2>/dev/null dd if=$gb count=1 bs=$(printf %s $(wc -c < $bin)) > $output 2>/dev/null
hexdump -C $output > $input && mv $input $output hexdump -C $output > $input && mv $input $output
hexdump -C $bin > $input hexdump -C $bin > $input
cmp $input $output tryCmp $input $output
our_rc=$(($? || $our_rc)) our_rc=$(($? || $our_rc))
fi fi