Blame test/pbmtext.test

Packit 78deda
#! /bin/bash
Packit 78deda
# This script tests: pbmtext
Packit 78deda
# Also requires: pamfile
Packit 78deda
Packit 78deda
tmpdir=${tmpdir:-/tmp}
Packit 78deda
Packit 78deda
# Test 1:
Packit 78deda
Packit 78deda
# Should print 3898818212 967 twice
Packit 78deda
Packit 78deda
pbmtext UNIX Philosophy: Do one thing and do it well. | cksum
Packit 78deda
echo -n "UNIX Philosophy: Do one thing and do it well." | pbmtext | cksum
Packit 78deda
Packit 78deda
# Should print 2506052117 1354 twice
Packit 78deda
Packit 78deda
pbmtext -builtin fixed \
Packit 78deda
    For truth is always strange. Stranger than fiction. Lord Byron | cksum
Packit 78deda
echo -n "For truth is always strange. Stranger than fiction. Lord Byron" | \
Packit 78deda
    pbmtext -builtin fixed | cksum
Packit 78deda
Packit 78deda
Packit 78deda
text="The quick brown fog jumps over the lazy docs."
Packit 78deda
Packit 78deda
# Test 2:
Packit 78deda
Packit 78deda
for flags in "" "-nomargins" "-builtin fixed"
Packit 78deda
do
Packit 78deda
echo ${text} | pbmtext ${flags} | cksum
Packit 78deda
done
Packit 78deda
Packit 78deda
temp_pbm=${tmpdir}/temp.pbm
Packit 78deda
Packit 78deda
Packit 78deda
# Test 3: Check if image is produced unaltered when -width is specified
Packit 78deda
# Should print 1028079028 967 twice, then 1305436978 1018 twice
Packit 78deda
Packit 78deda
for flags in "" "-builtin fixed"
Packit 78deda
do
Packit 78deda
pbmtext ${flags} ${text} | tee ${temp_pbm} | cksum
Packit 78deda
width1=`pamfile ${temp_pbm} | awk '$2=="PBM" && NR==1 {w=$4}; END {print w}' `
Packit 78deda
width2=`pbmtext ${flags} ${text} --dry-run | awk '{print $1}' `
Packit 78deda
Packit 78deda
if [ ${width1} -eq ${width2} ]; then
Packit 78deda
    pbmtext ${flags} -width=${width1} ${text} | cksum
Packit 78deda
else
Packit 78deda
    echo ${width1} ${width2}
Packit 78deda
fi
Packit 78deda
rm ${temp_pbm}
Packit 78deda
done
Packit 78deda
Packit 78deda
Packit 78deda
# Test 4: Should print 1647614653 2027 three times
Packit 78deda
# Note: backslashes inserted in 3 locations in the rectange to make
Packit 78deda
# possible input as a here document.
Packit 78deda
Packit 78deda
fontRectangle_txt=${tmpdir}/fontRectangle.txt
Packit 78deda
font_pbm=${tmpdir}/font.pbm
Packit 78deda
Packit 78deda
cat > ${fontRectangle_txt} << EOF
Packit 78deda
M ",/^_[\`jpqy| M
Packit 78deda
Packit 78deda
/  !"#$%&'()*+ /
Packit 78deda
< ,-./01234567 <
Packit 78deda
> 89:;<=>?@ABC >
Packit 78deda
@ DEFGHIJKLMNO @
Packit 78deda
_ PQRSTUVWXYZ[ _
Packit 78deda
{ \\]^_\`abcdefg {
Packit 78deda
} hijklmnopqrs }
Packit 78deda
~ tuvwxyz{|}~  ~
Packit 78deda
Packit 78deda
M ",/^_[\`jpqy| M
Packit 78deda
EOF
Packit 78deda
Packit 78deda
pbmtext -dump-sheet -builtin fixed | tee ${font_pbm}      | cksum
Packit 78deda
cat ${fontRectangle_txt} | pbmtext -nom -builtin fixed    | cksum
Packit 78deda
cat ${fontRectangle_txt} | pbmtext -nom -font ${font_pbm} | cksum
Packit 78deda
rm ${fontRectangle_txt} ${font_pbm}
Packit 78deda
Packit 78deda
Packit 78deda
# Test 5: Print all characters defined in the built-in bdf font
Packit 78deda
Packit 78deda
# One long row
Packit 78deda
# Should print 3233136020 4535
Packit 78deda
LC_CTYPE=C \
Packit 78deda
awk 'BEGIN { for (i=32; i<=125;++i) printf("%c",i);
Packit 78deda
             for (i=160;i<=255;++i) printf("%c",i); }' | \
Packit 78deda
    pbmtext -builtin bdf | cksum
Packit 78deda
Packit 78deda
# One tall column
Packit 78deda
# Should print 1216262214 5711
Packit 78deda
LC_CTYPE=C \
Packit 78deda
awk 'BEGIN { for (i=32; i<=125;++i) printf("%c\n",i);
Packit 78deda
             for (i=160;i<=255;++i) printf("%c\n",i); }' | \
Packit 78deda
    pbmtext -nomargins -builtin bdf | cksum
Packit 78deda
Packit 78deda
Packit 78deda
# Test 6:
Packit 78deda
# Test corruptions in BDF font file.
Packit 78deda
Packit 78deda
font_bdf=${tmpdir}/font.bdf
Packit 78deda
font_corrupt_bdf=${tmpdir}/fontcorrupt.bdf
Packit 78deda
Packit 78deda
# Though this BDF font file defines only three letters, it is valid.
Packit 78deda
Packit 78deda
cat > ${font_bdf} << EOF
Packit 78deda
STARTFONT 2.1
Packit 78deda
COMMENT $XFree86: xc/fonts/bdf/misc/micro.bdf,v 1.1 1999/09/25 14:36:34 dawes Exp $  - Modified for test
Packit 78deda
FONT micro
Packit 78deda
SIZE 4 75 75
Packit 78deda
FONTBOUNDINGBOX 4 5 0 0
Packit 78deda
STARTPROPERTIES 3
Packit 78deda
FONT_DESCENT 0
Packit 78deda
FONT_ASCENT 5
Packit 78deda
CHARSET_REGISTRY "ISO88591"
Packit 78deda
CHARSET_ENCODING "1"
Packit 78deda
COPYRIGHT "Public domain font.  Share and enjoy."
Packit 78deda
ENDPROPERTIES
Packit 78deda
CHARS 3
Packit 78deda
STARTCHAR A
Packit 78deda
ENCODING 65
Packit 78deda
SWIDTH 1000 0
Packit 78deda
DWIDTH 4 0
Packit 78deda
BBX 4 5 0 0
Packit 78deda
BITMAP
Packit 78deda
e0
Packit 78deda
a0
Packit 78deda
e0
Packit 78deda
a0
Packit 78deda
a0
Packit 78deda
ENDCHAR
Packit 78deda
STARTCHAR B
Packit 78deda
ENCODING 66
Packit 78deda
SWIDTH 1000 0
Packit 78deda
DWIDTH 4 0
Packit 78deda
BBX 4 5 0 0
Packit 78deda
BITMAP
Packit 78deda
e0
Packit 78deda
a0
Packit 78deda
c0
Packit 78deda
a0
Packit 78deda
e0
Packit 78deda
ENDCHAR
Packit 78deda
STARTCHAR C
Packit 78deda
ENCODING 67
Packit 78deda
SWIDTH 1000 0
Packit 78deda
DWIDTH 4 0
Packit 78deda
BBX 4 5 0 0
Packit 78deda
BITMAP
Packit 78deda
e0
Packit 78deda
80
Packit 78deda
80
Packit 78deda
80
Packit 78deda
e0
Packit 78deda
ENDCHAR
Packit 78deda
ENDFONT
Packit 78deda
EOF
Packit 78deda
Packit 78deda
# This should succeed and produce 386826492 35
Packit 78deda
pbmtext -font ${font_bdf} ABC | cksum
Packit 78deda
Packit 78deda
# The rest should all fail.  Writes 1 seven times.
Packit 78deda
pbmtext -font ${font_bdf} BCD
Packit 78deda
echo $?
Packit 78deda
Packit 78deda
sed 's/FONTBOUNDINGBOX 4 5 0 0/FONTBOUNDINGBOX 4 4 0 0/' \
Packit 78deda
  ${font_bdf} >  ${font_corrupt_bdf}
Packit 78deda
pbmtext -font ${font_corrupt_bdf} ABC > /dev/null
Packit 78deda
echo $?
Packit 78deda
rm ${font_corrupt_bdf}
Packit 78deda
Packit 78deda
sed 's/BBX 4 5 0 0/BBX 4 6 0 0/' \
Packit 78deda
  ${font_bdf} >  ${font_corrupt_bdf}
Packit 78deda
pbmtext -font ${font_corrupt_bdf} ABC > /dev/null
Packit 78deda
echo $?
Packit 78deda
rm ${font_corrupt_bdf}
Packit 78deda
Packit 78deda
for delete_line in 14 16 18 20
Packit 78deda
  do
Packit 78deda
  sed "${delete_line}"d ${font_bdf} >  ${font_corrupt_bdf}
Packit 78deda
  pbmtext -font ${font_corrupt_bdf} ABC > /dev/null
Packit 78deda
  echo $?
Packit 78deda
  rm ${font_corrupt_bdf}
Packit 78deda
  done