|
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
|