|
Packit Service |
21b5d1 |
#!/bin/bash
|
|
Packit Service |
21b5d1 |
# Test driver for EPS files
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
source ./functions.source
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
( cd "$testdir"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
##
|
|
Packit Service |
21b5d1 |
# what version of exiv2 are we using?
|
|
Packit Service |
21b5d1 |
exiv2version="`$bin/exiv2 -V | sed -n '1 s,^exiv2 [^ ]* \([^ ]*\).*,\1,p'`"
|
|
Packit Service |
21b5d1 |
if [ -z "$exiv2version" ]; then
|
|
Packit Service |
21b5d1 |
echo "Error: Unable to determine Exiv2 version"
|
|
Packit Service |
21b5d1 |
exit 1
|
|
Packit Service |
21b5d1 |
fi
|
|
Packit Service |
21b5d1 |
if [ ! -d $datadir/eps/ ]; then
|
|
Packit Service |
21b5d1 |
echo "Error: $datadir/eps/ does not exist"
|
|
Packit Service |
21b5d1 |
exit 1
|
|
Packit Service |
21b5d1 |
fi
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
##
|
|
Packit Service |
21b5d1 |
# ensure that no data file is already stamped with the current version
|
|
Packit Service |
21b5d1 |
for file in $datadir/eps/eps-*.eps.*; do
|
|
Packit Service |
21b5d1 |
if ! grep "_Exiv2Version_" "$file" >/dev/null ; then
|
|
Packit Service |
21b5d1 |
echo "Error: $file contains hard-coded Exiv2 version"
|
|
Packit Service |
21b5d1 |
exit 1
|
|
Packit Service |
21b5d1 |
fi
|
|
Packit Service |
21b5d1 |
done
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
##
|
|
Packit Service |
21b5d1 |
# get down to work!
|
|
Packit Service |
21b5d1 |
for file in $datadir/eps/eps-*.eps; do
|
|
Packit Service |
21b5d1 |
image="`basename "$file" .eps`"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
printf "." >&3
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
echo
|
|
Packit Service |
21b5d1 |
echo "-----> $image.eps <-----"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
copyTestFile "eps/$image.eps" "$image.eps"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
echo
|
|
Packit Service |
21b5d1 |
echo "Command: exiv2 -u -pa $image.eps"
|
|
Packit Service |
21b5d1 |
runTest exiv2 -u -pa "$image.eps"
|
|
Packit Service |
21b5d1 |
exitcode="$?"
|
|
Packit Service |
21b5d1 |
echo "Exit code: $exitcode"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
if [ "$exitcode" -ne 0 -a "$exitcode" -ne 253 ] ; then
|
|
Packit Service |
21b5d1 |
continue
|
|
Packit Service |
21b5d1 |
fi
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
echo
|
|
Packit Service |
21b5d1 |
echo "Command: exiv2 -dx $image.eps"
|
|
Packit Service |
21b5d1 |
runTest exiv2 -dx "$image.eps"
|
|
Packit Service |
21b5d1 |
exitcode="$?"
|
|
Packit Service |
21b5d1 |
echo "Exit code: $exitcode"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
if [ "$exitcode" -eq 0 ] ; then
|
|
Packit Service |
21b5d1 |
# using perl instead of sed, because on some systems sed adds a line ending at EOF
|
|
Packit Service |
21b5d1 |
perl -pe "s,_Exiv2Version_,$exiv2version," < "$datadir/eps/$image.eps.delxmp" > "$image.eps.delxmp"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
if ! diff -q $diffargs "$image.eps.delxmp" "$image.eps" ; then
|
|
Packit Service |
21b5d1 |
continue
|
|
Packit Service |
21b5d1 |
fi
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
# Ensure that "exiv2 -ex" won't merge metadata into the
|
|
Packit Service |
21b5d1 |
# *.exv file generated by a previous run of the test suite.
|
|
Packit Service |
21b5d1 |
rm -f "$image.exv"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
echo
|
|
Packit Service |
21b5d1 |
echo "Command: exiv2 -f -ex $image.eps"
|
|
Packit Service |
21b5d1 |
runTest exiv2 -f -ex "$image.eps"
|
|
Packit Service |
21b5d1 |
echo "Exit code: $?"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
if ! diff -q $diffargs "$datadir/eps/eps-test-delxmp.exv" "$image.exv" ; then
|
|
Packit Service |
21b5d1 |
continue
|
|
Packit Service |
21b5d1 |
fi
|
|
Packit Service |
21b5d1 |
fi
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
echo
|
|
Packit Service |
21b5d1 |
echo "Restore: $image.eps"
|
|
Packit Service |
21b5d1 |
copyTestFile "eps/$image.eps" "$image.eps"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
echo
|
|
Packit Service |
21b5d1 |
echo "Command: exiv2 -f -eX $image.eps"
|
|
Packit Service |
21b5d1 |
runTest exiv2 -f -eX "$image.eps"
|
|
Packit Service |
21b5d1 |
echo "Exit code: $?"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
diff -q $diffargs "$datadir/eps/$image.xmp" "$image.xmp"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
# Using "-ix" instead of "-iX" because the latter
|
|
Packit Service |
21b5d1 |
# executes writeMetadata() twice, making it hard to debug.
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
copyTestFile "eps/eps-test-newxmp.xmp" "$image.exv"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
echo
|
|
Packit Service |
21b5d1 |
echo "Command: exiv2 -ix $image.eps"
|
|
Packit Service |
21b5d1 |
runTest exiv2 -ix "$image.eps"
|
|
Packit Service |
21b5d1 |
exitcode="$?"
|
|
Packit Service |
21b5d1 |
echo "Exit code: $exitcode"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
if [ "$exitcode" -ne 0 ] ; then
|
|
Packit Service |
21b5d1 |
continue
|
|
Packit Service |
21b5d1 |
fi
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
# using perl instead of sed, because on some systems sed adds a line ending at EOF
|
|
Packit Service |
21b5d1 |
perl -pe "s,_Exiv2Version_,$exiv2version," < "$datadir/eps/$image.eps.newxmp" > "$image.eps.newxmp"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
if ! diff -q $diffargs "$image.eps.newxmp" "$image.eps" ; then
|
|
Packit Service |
21b5d1 |
continue
|
|
Packit Service |
21b5d1 |
fi
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
echo
|
|
Packit Service |
21b5d1 |
echo "Command: (2) exiv2 -ix $image.eps"
|
|
Packit Service |
21b5d1 |
runTest exiv2 -ix "$image.eps"
|
|
Packit Service |
21b5d1 |
echo "Exit code: $?"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
diff -q $diffargs "$image.eps.newxmp" "$image.eps"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
# Ensure that "exiv2 -ex" won't merge metadata into the
|
|
Packit Service |
21b5d1 |
# *.exv file generated by a previous run of the test suite.
|
|
Packit Service |
21b5d1 |
rm -f "$image.exv"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
echo
|
|
Packit Service |
21b5d1 |
echo "Command: exiv2 -f -ex $image.eps"
|
|
Packit Service |
21b5d1 |
runTest exiv2 -f -ex "$image.eps"
|
|
Packit Service |
21b5d1 |
echo "Exit code: $?"
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
diff -q $diffargs "$datadir/eps/eps-test-newxmp.exv" "$image.exv"
|
|
Packit Service |
21b5d1 |
done
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
) 3>&1 > "$testdir/eps-test.out" 2>&1
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
echo "."
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
# ----------------------------------------------------------------------
|
|
Packit Service |
21b5d1 |
# Result
|
|
Packit Service |
21b5d1 |
if ! diff -q $diffargs "$testdir/$datadir/eps/eps-test.out" "$testdir/eps-test.out" ; then
|
|
Packit Service |
21b5d1 |
diff -u $diffargs "$testdir/$datadir/eps/eps-test.out" "$testdir/eps-test.out"
|
|
Packit Service |
21b5d1 |
exit 1
|
|
Packit Service |
21b5d1 |
fi
|
|
Packit Service |
21b5d1 |
echo "All testcases passed."
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
# That's all Folks!
|
|
Packit Service |
21b5d1 |
##
|