Issue: #850. test scripts refactored. Common code collected into functions.source. Thanks to Shawn for his contribution.

v0.27.3
Robin Mills 13 years ago
parent 6d9773d638
commit c68b2024f9

@ -98,7 +98,8 @@ mostlyclean clean: config/config.mk
# for packaging.
distclean: clean
rm -f config.log config.status libtool
rm -f *~ *.bak *#
rm -f *~ *.bak
rm -rf bin
# This removes almost everything, including the configure script!
maintainer-clean: distclean

@ -60,16 +60,13 @@ BINSRC = addmoddel.cpp \
exifcomment.cpp \
exifdata-test.cpp \
exifprint.cpp \
geotag.cpp \
iotest.cpp \
iptceasy.cpp \
iptcprint.cpp \
iptctest.cpp \
key-test.cpp \
largeiptc-test.cpp \
metacopy.cpp \
mmap-test.cpp \
path-test.cpp \
prevtest.cpp \
stringto-test.cpp \
taglist.cpp \

@ -1,30 +1,14 @@
#! /bin/sh
#!/bin/bash
# Test driver to run the addmoddel sample program
results="./tmp/addmoddel.out"
good="./data/addmoddel.out"
diffargs="--strip-trailing-cr"
tmpfile=tmp/ttt
touch $tmpfile
diff -q $diffargs $tmpfile $tmpfile 2>/dev/null
if [ $? -ne 0 ] ; then
diffargs=""
fi
source ./functions.source
(
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
cp -f ./data/exiv2-empty.jpg ./tmp
cd ./tmp
$bin/addmoddel exiv2-empty.jpg
$bin/exiv2 -pv exiv2-empty.jpg
copyTestFile exiv2-empty.jpg
runTest addmoddel exiv2-empty.jpg
runTest exiv2 -pv exiv2-empty.jpg
) > $results
diff -q $diffargs $results $good
rc=$?
if [ $rc -eq 0 ] ; then
echo "All testcases passed."
else
diff $diffargs $results $good
fi
reportTest
# That's all Folks!
##

@ -1,190 +1,166 @@
#! /bin/sh
#!/bin/bash
# Test driver with regression tests for bugfixes
export LC_ALL=C
results="./tmp/bugfixes-test.out"
good="./data/bugfixes-test.out"
prep_file()
{
echo `prep_any_file $1 exiv2-bug$1.jpg`
}
prep_empty_file()
{
echo `prep_any_file $1 exiv2-empty.jpg`
}
prep_any_file()
{
printf "$1 " >&3
echo '------>' Bug $1 '<-------' >&2
cp -f ../data/$2 exiv2-bug$1.jpg
echo exiv2-bug$1.jpg
}
source ./functions.source
(
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
cd ./tmp
num=426
filename=`prep_file $num`
$bin/exiv2 -u -pi $filename
runTest exiv2 -u -pi $filename
num=440
filename=`prep_file $num`
$bin/exiv2 -u -pi $filename
runTest exiv2 -u -pi $filename
num=443
filename=`prep_file $num`
$bin/exiv2 -u -b -pt $filename
runTest exiv2 -u -b -pt $filename
num=444
filename=`prep_file $num`
$bin/exiv2 -u -pi $filename
runTest exiv2 -u -pi $filename
num=445
filename=`prep_file $num`
$bin/exiv2 -u -v -M'set Exif.Photo.UserComment A comment' $filename
$bin/exiv2 -u -b -pt $filename
runTest exiv2 -u -v -M'set Exif.Photo.UserComment A comment' $filename
runTest exiv2 -u -b -pt $filename
filename=exiv2-empty.jpg
cp -f ../data/$filename .
$bin/exiv2 -u -v -M'set Exif.Photo.UserComment A comment' $filename
$bin/exiv2 -u -b -pt $filename
copyTestFile $filename
runTest exiv2 -u -v -M'set Exif.Photo.UserComment A comment' $filename
runTest exiv2 -u -b -pt $filename
num=447 # Problem only visible in Valgrind
filename=`prep_file $num`
$bin/exiv2 -u -pi $filename
runTest exiv2 -u -pi $filename
num=452
filename=`prep_empty_file $num`
$bin/exiv2 -u -v -M"set Exif.GPSInfo.GPSLatitude SRational -1/3 -2/3 -3/3" $filename
$bin/exiv2 -u -pv $filename
$bin/exiv2 -u -v -M"set Exif.GPSInfo.GPSLatitude Rational 1/3 2/3 3/3" $filename
$bin/exiv2 -u -pv $filename
runTest exiv2 -u -v -M"set Exif.GPSInfo.GPSLatitude SRational -1/3 -2/3 -3/3" $filename
runTest exiv2 -u -pv $filename
runTest exiv2 -u -v -M"set Exif.GPSInfo.GPSLatitude Rational 1/3 2/3 3/3" $filename
runTest exiv2 -u -pv $filename
num=460
filename=`prep_file $num`
$bin/exiv2 -u -pt $filename
runTest exiv2 -u -pt $filename
num=479
filename=`prep_file $num`
$bin/exiv2 -u -pt $filename
runTest exiv2 -u -pt $filename
num=480
filename=`prep_file $num`
$bin/largeiptc-test $filename ../data/imagemagick.png
runTest largeiptc-test $filename ../data/imagemagick.png
num=495
filename=`prep_file $num`
$bin/exiv2 -u -pi $filename
runTest exiv2 -u -pi $filename
num=498
filename=`prep_empty_file $num`
$bin/exiv2 -u -v -M"set Exif.GPSInfo.GPSLatitude 0/1 1/1 2/1" $filename
$bin/exiv2 -u -v -pv $filename
$bin/exiv2 -u -v -M"del Exif.GPSInfo.GPSLatitude" $filename
$bin/exiv2 -u -v -pv $filename
runTest exiv2 -u -v -M"set Exif.GPSInfo.GPSLatitude 0/1 1/1 2/1" $filename
runTest exiv2 -u -v -pv $filename
runTest exiv2 -u -v -M"del Exif.GPSInfo.GPSLatitude" $filename
runTest exiv2 -u -v -pv $filename
num=501
filename=`prep_file $num`
$bin/exiv2 -u -pi $filename
runTest exiv2 -u -pi $filename
num=528
filename=`prep_file $num`
$bin/exiv2 -u -pt $filename
$bin/exiv2 -u -v -M"set Exif.Image.Software GI" $filename
runTest exiv2 -u -pt $filename
runTest exiv2 -u -v -M"set Exif.Image.Software GI" $filename
num=540
filename=`prep_file $num`
$bin/exiv2 -u -px $filename
runTest exiv2 -u -px $filename
num=554
filename=`prep_empty_file $num`
$bin/exiv2 -u -v -M"set Exif.Image.DateTime Date 2007-05-27" $filename
$bin/exiv2 -u -pt $filename
runTest exiv2 -u -v -M"set Exif.Image.DateTime Date 2007-05-27" $filename
runTest exiv2 -u -pt $filename
num=662
filename=`prep_empty_file $num`
$bin/exiv2 -u -M"set Exif.Photo.UserComment charset=Ascii An ascii comment" $filename
$bin/exiv2 -u -PEnh $filename
runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Ascii An ascii comment" $filename
runTest exiv2 -u -PEnh $filename
$bin/exiv2 -u -M"set Exif.Photo.UserComment charset=Ascii A\\nnewline" $filename
$bin/exiv2 -u -PEnh $filename
runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Ascii A\\nnewline" $filename
runTest exiv2 -u -PEnh $filename
$bin/exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode A Unicode comment" $filename
$bin/exiv2 -u -PEnh $filename
runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode A Unicode comment" $filename
runTest exiv2 -u -PEnh $filename
$bin/exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode \\u01c4" $filename
$bin/exiv2 -u -PEnh $filename
runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode \\u01c4" $filename
runTest exiv2 -u -PEnh $filename
$bin/exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode A\\u01c4C" $filename
$bin/exiv2 -u -PEnh $filename
runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode A\\u01c4C" $filename
runTest exiv2 -u -PEnh $filename
$bin/exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode With\\nNewline" $filename
$bin/exiv2 -u -PEnh $filename
runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode With\\nNewline" $filename
runTest exiv2 -u -PEnh $filename
$bin/exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode With\\tTab" $filename
$bin/exiv2 -u -PEnh $filename
runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode With\\tTab" $filename
runTest exiv2 -u -PEnh $filename
# Test invalid escape sequences
$bin/exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode \\ugggg" $filename
$bin/exiv2 -u -PEnh $filename
runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode \\ugggg" $filename
runTest exiv2 -u -PEnh $filename
num=666
filename=`prep_empty_file $num`
$bin/exiv2 -u -v -M'set Exif.Image.Make NIKON' \
runTest exiv2 -u -v -M'set Exif.Image.Make NIKON' \
-M'set Exif.Image.Model D90' \
-M'set Exif.Nikon3.ShutterCount 100' \
-M'set Exif.Nikon3.SerialNumber 123' \
-M'set Exif.NikonSi02xx.Version 48 50 51 52' \
-M'set Exif.NikonSi02xx.ShutterCount 100' $filename
$bin/exiv2 -u -pa -u -b $filename
runTest exiv2 -u -pa -u -b $filename
num=683
filename=`prep_any_file $num exiv2-nikon-d70.jpg`
rm -f 2004-03-30-Tue-090.jpg
$bin/exiv2 -u -f -r %Y-%m-%d-%a-%j $filename
runTest exiv2 -u -f -r %Y-%m-%d-%a-%j $filename
ls 2004-03-30-Tue-090.jpg
num=711
printf "$num " >&3
# Little endian (II)
filename=exiv2-bug${num}-1.jpg
cp -f ../data/exiv2-empty.jpg $filename
copyTestFile exiv2-empty.jpg $filename
echo '------>' Bug $num '<-------' >&2
$bin/exiv2 -u -v -M'set Exif.Image.ProcessingSoftware Initial values, read from the command line' \
runTest exiv2 -u -v -M'set Exif.Image.ProcessingSoftware Initial values, read from the command line' \
-M'set Exif.Image.DocumentName Float 0.12345' \
-M'set Exif.Image.ImageDescription Double 0.987654321' $filename
$bin/exiv2 -u -v -PEkyct $filename
$bin/exiv2 -u -v -M'set Exif.Image.ProcessingSoftware Non-intrusive update' $filename
$bin/exiv2 -u -v -PEkyct $filename
$bin/exiv2 -u -v -M'set Exif.Image.ProcessingSoftware Intrusive update, writing the structure from scratch' $filename
$bin/exiv2 -u -v -PEkyct $filename
runTest exiv2 -u -v -PEkyct $filename
runTest exiv2 -u -v -M'set Exif.Image.ProcessingSoftware Non-intrusive update' $filename
runTest exiv2 -u -v -PEkyct $filename
runTest exiv2 -u -v -M'set Exif.Image.ProcessingSoftware Intrusive update, writing the structure from scratch' $filename
runTest exiv2 -u -v -PEkyct $filename
# Big endian (MM)
filename=exiv2-bug${num}-2.jpg
cp -f ../data/exiv2-kodak-dc210.jpg $filename
$bin/exiv2 -u -v -M'set Exif.Image.ProcessingSoftware Initial values, read from the command line' \
copyTestFile exiv2-kodak-dc210.jpg $filename
runTest exiv2 -u -v -M'set Exif.Image.ProcessingSoftware Initial values, read from the command line' \
-M'set Exif.Image.DocumentName Float 0.12345' \
-M'set Exif.Image.ImageDescription Double 0.987654321' $filename
$bin/exiv2 -u -v -PEkyct $filename
$bin/exiv2 -u -v -M'set Exif.Image.ProcessingSoftware Non-intrusive update' $filename
$bin/exiv2 -u -v -PEkyct $filename
$bin/exiv2 -u -v -M'set Exif.Image.ProcessingSoftware Intrusive update, writing the structure from scratch' $filename
$bin/exiv2 -u -v -PEkyct $filename
runTest exiv2 -u -v -PEkyct $filename
runTest exiv2 -u -v -M'set Exif.Image.ProcessingSoftware Non-intrusive update' $filename
runTest exiv2 -u -v -PEkyct $filename
runTest exiv2 -u -v -M'set Exif.Image.ProcessingSoftware Intrusive update, writing the structure from scratch' $filename
runTest exiv2 -u -v -PEkyct $filename
# Test easy-access keys (using a dummy bug number)
if { test -f $bin/easyaccess-test || test -f $bin/easyaccess-test.exe; }; then
if [ 1 = $(existsTest easyaccess-test) ]; then
num=726
filename=`prep_empty_file $num`
$bin/exiv2 -u -v -M"set Exif.Image.Make Samsung" $filename
$bin/easyaccess-test $filename
runTest exiv2 -u -v -M"set Exif.Image.Make Samsung" $filename
runTest easyaccess-test $filename
else
echo "bugfixes-test.sh: easyaccess-test executable not found. Skipping regression test for issue #726."
fi
@ -193,23 +169,23 @@ fi
num=751
filename=`prep_empty_file $num`
xmpname=exiv2-bug$num.xmp
$bin/exiv2 -v -M'reg imageapp orig/' -M 'set Xmp.imageapp.uuid abcd' $filename
$bin/exiv2 -f -eX $filename
runTest exiv2 -v -M'reg imageapp orig/' -M 'set Xmp.imageapp.uuid abcd' $filename
runTest exiv2 -f -eX $filename
cat $xmpname
$bin/exiv2 -v -M'reg imageapp dest/' -M 'set Xmp.imageapp.uuid abcd' $filename
$bin/exiv2 -f -eX $filename
runTest exiv2 -v -M'reg imageapp dest/' -M 'set Xmp.imageapp.uuid abcd' $filename
runTest exiv2 -f -eX $filename
cat $xmpname
num=769
filename=`prep_empty_file $num`
$bin/exiv2 -u -v -M"add Exif.Image.Make Canon" -M"add Exif.CanonCs.0x0001 Short 1" -M"add Exif.CanonCs.0x0000 Short 2" $filename
$bin/exiv2 -u -v -PEkyct $filename
runTest exiv2 -u -v -M"add Exif.Image.Make Canon" -M"add Exif.CanonCs.0x0001 Short 1" -M"add Exif.CanonCs.0x0000 Short 2" $filename
runTest exiv2 -u -v -PEkyct $filename
num=799
filename=`prep_empty_file $num`
$bin/exiv2 -v -m ../data/bug$num.cmd $filename
$bin/exiv2 -v -pa $filename
$bin/exiv2 -f -eX $filename
runTest exiv2 -v -m ../data/bug$num.cmd $filename
runTest exiv2 -v -pa $filename
runTest exiv2 -f -eX $filename
cat exiv2-bug$num.xmp
num=800
@ -218,9 +194,9 @@ for type in 8BIM AgHg DCSR PHUT; do
for format in jpg psd; do
echo "------> Bug $num ($type in $format) <-------" >&2
filename=exiv2-bug$num-$type.$format
cp -f ../data/$filename .
$bin/exiv2 -u -v -M'set Exif.Photo.UserComment Test' $filename
$bin/exiv2 -u -pt $filename
copyTestFile $filename
runTest exiv2 -u -v -M'set Exif.Photo.UserComment Test' $filename
runTest exiv2 -u -pt $filename
done
done
@ -228,18 +204,18 @@ num=831
filename=exiv2-bug$num.tif
printf "$num " >&3
echo '------>' Bug $num '<-------' >&2
cp -f ../data/mini9.tif $filename
$bin/exiv2 -v -Qd -M'set Exif.Image.ImageDescription Just GIMP' $filename
$bin/exiv2 -v -pa $filename
copyTestFile mini9.tif $filename
runTest exiv2 -v -Qd -M'set Exif.Image.ImageDescription Just GIMP' $filename
runTest exiv2 -v -pa $filename
num=836
filename=exiv2-bug$num.eps
echo '------>' Bug $num '<-------' >&2
cp -f ../data/$filename $filename
copyTestFile $filename $filename
if [ -e $filename/rsrc ]; then
printf "$num " >&3
cp -f ../data/$filename.rsrc $filename/rsrc
$bin/exiv2 -M'set Exif.Photo.UserComment Test' $filename
copyTestFile $filename.rsrc $filename/rsrc
runTest exiv2 -M'set Exif.Photo.UserComment Test' $filename
diff -q ../data/$filename.rsrc $filename/rsrc
else
# skip this test on systems which do not have resource forks
@ -250,8 +226,8 @@ num=841
filename=exiv2-bug$num.png
printf "$num " >&3
echo '------>' Bug $num '<-------' >&2
cp -f ../data/$filename $filename
$bin/exiv2 $filename
copyTestFile $filename
runTest exiv2 $filename
) 3>&1 > $results 2>&1
@ -260,10 +236,7 @@ printf "\n"
# ----------------------------------------------------------------------
# Evaluate results
cat $results | sed 's/\x0d$//' > $results-stripped
diff -q $results-stripped $good
rc=$?
if [ $rc -eq 0 ] ; then
echo "All testcases passed."
else
diff -u $good $results-stripped
fi
reportTest $results-stripped $good
# That's all Folks!
##

@ -1,21 +1,13 @@
#! /bin/sh
#!/bin/bash
# XMP parser test driver
# ----------------------------------------------------------------------
# Setup
export LC_ALL=C
results="./conversions.out"
good="../data/conversions.out"
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
cd ./tmp
source ./functions.source
# ----------------------------------------------------------------------
# Check if xmpparser-test exists
if [ ! -e ../../bin/xmpparser-test -a ! -e "$EXIV2_BINDIR/xmpparser-test" ] ; then
if [ $(existsTest xmpparser-test) == 0 ] ; then
echo "xmpparser-test not found. Assuming XMP support is not enabled."
exit 0
fi
@ -23,18 +15,19 @@ fi
# ----------------------------------------------------------------------
# Main routine
(
cd ./tmp
IMG=../data/exiv2-empty.jpg
# 1) Convert Exif ImageDescription to XMP x-default langAlt value
echo Testcase 1
echo ==========
\cp $IMG h.jpg
$bin/exiv2 -M'set Exif.Image.ImageDescription The Exif image description' h.jpg
runTest exiv2 -M'set Exif.Image.ImageDescription The Exif image description' h.jpg
rm -f h.xmp
$bin/exiv2 -eX h.jpg
$bin/exiv2 -px h.xmp
$bin/exiv2 -PEkycv h.xmp
$bin/exiv2 -pi h.xmp
runTest exiv2 -eX h.jpg
runTest exiv2 -px h.xmp
runTest exiv2 -PEkycv h.xmp
runTest exiv2 -pi h.xmp
# 2) Convert XMP x-default langAlt value back to Exif ImageDescription
echo
@ -42,10 +35,10 @@ echo Testcase 2
echo ==========
\cp $IMG i.jpg
\cp h.xmp i.xmp
$bin/exiv2 -iX i.jpg
$bin/exiv2 -px i.jpg
$bin/exiv2 -PEkycv i.jpg
$bin/exiv2 -pi i.jpg
runTest exiv2 -iX i.jpg
runTest exiv2 -px i.jpg
runTest exiv2 -PEkycv i.jpg
runTest exiv2 -pi i.jpg
# 3) Convert XMP single non-x-default langAlt value to Exif ImageDescription
echo
@ -53,10 +46,10 @@ echo Testcase 3
echo ==========
sed s/x-default/de-DE/ i.xmp > j.xmp
\cp $IMG j.jpg
$bin/exiv2 -iX j.jpg
$bin/exiv2 -px j.jpg
$bin/exiv2 -PEkycv j.jpg
$bin/exiv2 -pi j.jpg
runTest exiv2 -iX j.jpg
runTest exiv2 -px j.jpg
runTest exiv2 -PEkycv j.jpg
runTest exiv2 -pi j.jpg
# 4) This shouldn't work: No x-default, more than one language
echo
@ -64,36 +57,36 @@ echo Testcase 4
echo ==========
sed 's,<rdf:li xml:lang="de-DE">The Exif image description</rdf:li>,<rdf:li xml:lang="de-DE">The Exif image description</rdf:li><rdf:li xml:lang="it-IT">Ciao bella</rdf:li>,' j.xmp > k.xmp
\cp $IMG k.jpg
$bin/exiv2 -iX k.jpg
$bin/exiv2 -px k.jpg
$bin/exiv2 -v -PEkycv k.jpg
$bin/exiv2 -v -pi k.jpg
runTest exiv2 -iX k.jpg
runTest exiv2 -px k.jpg
runTest exiv2 -v -PEkycv k.jpg
runTest exiv2 -v -pi k.jpg
# 5) Add a default language to the XMP file and convert to Exif and IPTC
echo
echo Testcase 5
echo ==========
\cp k.xmp l.xmp
$bin/exiv2 -M'set Xmp.dc.description lang="x-default" How to fix this mess' l.xmp
runTest exiv2 -M'set Xmp.dc.description lang="x-default" How to fix this mess' l.xmp
grep x-default l.xmp
\cp $IMG l.jpg
$bin/exiv2 -iX l.jpg
$bin/exiv2 -px l.jpg
$bin/exiv2 -PEkycv l.jpg
$bin/exiv2 -pi l.jpg
runTest exiv2 -iX l.jpg
runTest exiv2 -px l.jpg
runTest exiv2 -PEkycv l.jpg
runTest exiv2 -pi l.jpg
# 6) Convert an Exif user comment to XMP
echo
echo Testcase 6
echo ==========
\cp $IMG m.jpg
$bin/exiv2 -M'set Exif.Photo.UserComment charset=Jis This is a JIS encoded Exif user comment. Or was it?' m.jpg
$bin/exiv2 -PEkycv m.jpg
runTest exiv2 -M'set Exif.Photo.UserComment charset=Jis This is a JIS encoded Exif user comment. Or was it?' m.jpg
runTest exiv2 -PEkycv m.jpg
rm -f m.xmp
$bin/exiv2 -eX m.jpg
$bin/exiv2 -px m.xmp
$bin/exiv2 -PEkycv m.xmp
$bin/exiv2 -v -pi m.xmp
runTest exiv2 -eX m.jpg
runTest exiv2 -px m.xmp
runTest exiv2 -PEkycv m.xmp
runTest exiv2 -v -pi m.xmp
# 7) And back to Exif
echo
@ -101,25 +94,25 @@ echo Testcase 7
echo ==========
\cp $IMG n.jpg
\cp m.xmp n.xmp
$bin/exiv2 -iX n.jpg
$bin/exiv2 -px n.jpg
$bin/exiv2 -PEkycv n.jpg
$bin/exiv2 -v -pi n.jpg
runTest exiv2 -iX n.jpg
runTest exiv2 -px n.jpg
runTest exiv2 -PEkycv n.jpg
runTest exiv2 -v -pi n.jpg
# 8) Convert IPTC keywords to XMP
echo
echo Testcase 8
echo ==========
\cp $IMG o.jpg
$bin/exiv2 -M'add Iptc.Application2.Keywords Sex' o.jpg
$bin/exiv2 -M'add Iptc.Application2.Keywords Drugs' o.jpg
$bin/exiv2 -M"add Iptc.Application2.Keywords Rock'n'roll" o.jpg
$bin/exiv2 -pi o.jpg
runTest exiv2 -M'add Iptc.Application2.Keywords Sex' o.jpg
runTest exiv2 -M'add Iptc.Application2.Keywords Drugs' o.jpg
runTest exiv2 -M"add Iptc.Application2.Keywords Rock'n'roll" o.jpg
runTest exiv2 -pi o.jpg
rm -f o.xmp
$bin/exiv2 -eX o.jpg
$bin/exiv2 -px o.xmp
$bin/exiv2 -v -PEkycv o.xmp
$bin/exiv2 -pi o.xmp
runTest exiv2 -eX o.jpg
runTest exiv2 -px o.xmp
runTest exiv2 -v -PEkycv o.xmp
runTest exiv2 -pi o.xmp
# 9) And back to IPTC
echo
@ -127,23 +120,23 @@ echo Testcase 9
echo ==========
\cp $IMG p.jpg
\cp o.xmp p.xmp
$bin/exiv2 -iX p.jpg
$bin/exiv2 -px p.jpg
$bin/exiv2 -v -PEkycv p.jpg
$bin/exiv2 -pi p.jpg
runTest exiv2 -iX p.jpg
runTest exiv2 -px p.jpg
runTest exiv2 -v -PEkycv p.jpg
runTest exiv2 -pi p.jpg
# 10) Convert an Exif tag to an XMP text value
echo
echo Testcase 10
echo ===========
\cp $IMG q.jpg
$bin/exiv2 -M'set Exif.Image.Software Exiv2' q.jpg
$bin/exiv2 -PEkycv q.jpg
runTest exiv2 -M'set Exif.Image.Software Exiv2' q.jpg
runTest exiv2 -PEkycv q.jpg
rm -f q.xmp
$bin/exiv2 -eX q.jpg
$bin/exiv2 -px q.xmp
$bin/exiv2 -PEkycv q.xmp
$bin/exiv2 -v -pi q.xmp
runTest exiv2 -eX q.jpg
runTest exiv2 -px q.xmp
runTest exiv2 -PEkycv q.xmp
runTest exiv2 -v -pi q.xmp
# 11) And back to Exif
echo
@ -151,23 +144,23 @@ echo Testcase 11
echo ===========
\cp $IMG r.jpg
\cp q.xmp r.xmp
$bin/exiv2 -iX r.jpg
$bin/exiv2 -px r.jpg
$bin/exiv2 -PEkycv r.jpg
$bin/exiv2 -v -pi r.jpg
runTest exiv2 -iX r.jpg
runTest exiv2 -px r.jpg
runTest exiv2 -PEkycv r.jpg
runTest exiv2 -v -pi r.jpg
# 12) Convert an IPTC dataset to an XMP text value
echo
echo Testcase 12
echo ===========
\cp $IMG s.jpg
$bin/exiv2 -M'set Iptc.Application2.SubLocation Kuala Lumpur' s.jpg
$bin/exiv2 -pi s.jpg
runTest exiv2 -M'set Iptc.Application2.SubLocation Kuala Lumpur' s.jpg
runTest exiv2 -pi s.jpg
rm -f s.xmp
$bin/exiv2 -eX s.jpg
$bin/exiv2 -px s.xmp
$bin/exiv2 -v -PEkycv s.xmp
$bin/exiv2 -pi s.xmp
runTest exiv2 -eX s.jpg
runTest exiv2 -px s.xmp
runTest exiv2 -v -PEkycv s.xmp
runTest exiv2 -pi s.xmp
# 13) And back to IPTC
echo
@ -175,34 +168,34 @@ echo Testcase 13
echo ===========
\cp $IMG t.jpg
\cp s.xmp t.xmp
$bin/exiv2 -iX t.jpg
$bin/exiv2 -px t.jpg
$bin/exiv2 -v -PEkycv t.jpg
$bin/exiv2 -pi t.jpg
runTest exiv2 -iX t.jpg
runTest exiv2 -px t.jpg
runTest exiv2 -v -PEkycv t.jpg
runTest exiv2 -pi t.jpg
# 14) Convert a few other tags of interest from Exif/IPTC to XMP
echo
echo Testcase 14
echo ===========
\cp $IMG u.jpg
$bin/exiv2 -M'set Exif.Photo.DateTimeOriginal 2003:12:14 12:01:44' u.jpg
$bin/exiv2 -M'set Exif.Photo.SubSecTimeOriginal 999999999' u.jpg
$bin/exiv2 -M'set Exif.Photo.ExifVersion 48 50 50 49' u.jpg
$bin/exiv2 -M'set Exif.Photo.ComponentsConfiguration 1 2 3 0' u.jpg
$bin/exiv2 -M'set Exif.Photo.Flash 73' u.jpg
$bin/exiv2 -M'set Exif.GPSInfo.GPSLatitude 3/1 8/1 29734512/1000000' u.jpg
$bin/exiv2 -M'set Exif.GPSInfo.GPSLatitudeRef N' u.jpg
$bin/exiv2 -M'set Exif.GPSInfo.GPSVersionID 2 2 0 1' u.jpg
$bin/exiv2 -M'set Exif.GPSInfo.GPSTimeStamp 1/1 2/1 999999999/1000000000' u.jpg
$bin/exiv2 -M'set Iptc.Application2.DateCreated 2007-05-09' u.jpg
$bin/exiv2 -PEkycv u.jpg
$bin/exiv2 -pi u.jpg
runTest exiv2 -M'set Exif.Photo.DateTimeOriginal 2003:12:14 12:01:44' u.jpg
runTest exiv2 -M'set Exif.Photo.SubSecTimeOriginal 999999999' u.jpg
runTest exiv2 -M'set Exif.Photo.ExifVersion 48 50 50 49' u.jpg
runTest exiv2 -M'set Exif.Photo.ComponentsConfiguration 1 2 3 0' u.jpg
runTest exiv2 -M'set Exif.Photo.Flash 73' u.jpg
runTest exiv2 -M'set Exif.GPSInfo.GPSLatitude 3/1 8/1 29734512/1000000' u.jpg
runTest exiv2 -M'set Exif.GPSInfo.GPSLatitudeRef N' u.jpg
runTest exiv2 -M'set Exif.GPSInfo.GPSVersionID 2 2 0 1' u.jpg
runTest exiv2 -M'set Exif.GPSInfo.GPSTimeStamp 1/1 2/1 999999999/1000000000' u.jpg
runTest exiv2 -M'set Iptc.Application2.DateCreated 2007-05-09' u.jpg
runTest exiv2 -PEkycv u.jpg
runTest exiv2 -pi u.jpg
rm -f u.xmp
$bin/exiv2 -eX u.jpg
$bin/exiv2 -px u.xmp
$bin/exiv2 -PEkycv u.xmp
$bin/exiv2 -pi u.xmp
runTest exiv2 -eX u.jpg
runTest exiv2 -px u.xmp
runTest exiv2 -PEkycv u.xmp
runTest exiv2 -pi u.xmp
# 15) And back to Exif/IPTC
echo
@ -210,21 +203,18 @@ echo Testcase 15
echo ===========
\cp $IMG v.jpg
\cp u.xmp v.xmp
$bin/exiv2 -M'set Xmp.tiff.DateTime 2003-12-14T12:01:44Z' v.xmp
TZ=GMT-8 $bin/exiv2 -iX v.jpg
$bin/exiv2 -px v.jpg
$bin/exiv2 -PEkycv v.jpg
$bin/exiv2 -pi v.jpg
runTest exiv2 -M'set Xmp.tiff.DateTime 2003-12-14T12:01:44Z' v.xmp
TZ=GMT-8 runTest exiv2 -iX v.jpg
runTest exiv2 -px v.jpg
runTest exiv2 -PEkycv v.jpg
runTest exiv2 -pi v.jpg
) > $results 2>&1
# ----------------------------------------------------------------------
# Evaluate results
cat $results | sed 's/\x0d$//' | tr '\033' '$' > $results-stripped
diff -q $results-stripped $good
rc=$?
if [ $rc -eq 0 ] ; then
echo "All testcases passed."
else
diff $results-stripped $good
fi
reportTest $results-stripped $good
# That's all Folks!
##

@ -1,15 +1,11 @@
#! /bin/sh
#!/bin/bash
# Test driver for EPS files
# ----------------------------------------------------------------------
# Setup
export LC_ALL=C
source ./functions.source
cd tmp/
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
exiv2version="`$bin/exiv2 -V | sed -n '1 s,^exiv2 [^ ]* \([^ ]*\).*,\1,p'`"
if [ -z "$exiv2version" ]; then
echo "Error: Unable to determine Exiv2 version"
@ -37,11 +33,11 @@ done
echo
echo "-----> $image.eps <-----"
cp "../data/eps/$image.eps" ./
copyTestFile "eps/$image.eps" "$image.eps"
echo
echo "Command: exiv2 -u -pa $image.eps"
$bin/exiv2 -u -pa "$image.eps"
runTest exiv2 -u -pa "$image.eps"
exitcode="$?"
echo "Exit code: $exitcode"
@ -51,7 +47,7 @@ done
echo
echo "Command: exiv2 -dx $image.eps"
$bin/exiv2 -dx "$image.eps"
runTest exiv2 -dx "$image.eps"
exitcode="$?"
echo "Exit code: $exitcode"
@ -69,7 +65,7 @@ done
echo
echo "Command: exiv2 -f -ex $image.eps"
$bin/exiv2 -f -ex "$image.eps"
runTest exiv2 -f -ex "$image.eps"
echo "Exit code: $?"
if ! diff -q "../data/eps/eps-test-delxmp.exv" "$image.exv" ; then
@ -79,11 +75,11 @@ done
echo
echo "Restore: $image.eps"
cp "../data/eps/$image.eps" ./
copyTestFile "eps/$image.eps" "$image.eps"
echo
echo "Command: exiv2 -f -eX $image.eps"
$bin/exiv2 -f -eX "$image.eps"
runTest exiv2 -f -eX "$image.eps"
echo "Exit code: $?"
diff -q "../data/eps/$image.xmp" "$image.xmp"
@ -91,11 +87,11 @@ done
# Using "-ix" instead of "-iX" because the latter
# executes writeMetadata() twice, making it hard to debug.
cp "../data/eps/eps-test-newxmp.xmp" "$image.exv"
copyTestFile "eps/eps-test-newxmp.xmp" "$image.exv"
echo
echo "Command: exiv2 -ix $image.eps"
$bin/exiv2 -ix "$image.eps"
runTest exiv2 -ix "$image.eps"
exitcode="$?"
echo "Exit code: $exitcode"
@ -112,7 +108,7 @@ done
echo
echo "Command: (2) exiv2 -ix $image.eps"
$bin/exiv2 -ix "$image.eps"
runTest exiv2 -ix "$image.eps"
echo "Exit code: $?"
diff -q "$image.eps.newxmp" "$image.eps"
@ -123,7 +119,7 @@ done
echo
echo "Command: exiv2 -f -ex $image.eps"
$bin/exiv2 -f -ex "$image.eps"
runTest exiv2 -f -ex "$image.eps"
echo "Exit code: $?"
diff -q "../data/eps/eps-test-newxmp.exv" "$image.exv"
@ -139,3 +135,6 @@ if ! diff -q $diffargs "../data/eps/eps-test.out" "eps-test.out" ; then
exit 1
fi
echo "All testcases passed."
# That's all Folks!
##

@ -1,33 +1,17 @@
#! /bin/sh
#!/bin/bash
# Test driver for exifdata copy construction and assignment unit tests
results="./tmp/exifdata-test.out"
good="./data/exifdata-test.out"
diffargs="--strip-trailing-cr"
tmpfile=tmp/ttt
touch $tmpfile
diff -q $diffargs $tmpfile $tmpfile 2>/dev/null
if [ $? -ne 0 ] ; then
diffargs=""
fi
source ./functions.source
(
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
cp -f ./data/exiv2-gc.jpg ./tmp
cp -f ./data/exiv2-canon-powershot-s40.jpg ./tmp
cp -f ./data/exiv2-nikon-d70.jpg ./tmp
cd ./tmp
$bin/exifdata-test exiv2-gc.jpg
$bin/exifdata-test exiv2-canon-powershot-s40.jpg
$bin/exifdata-test exiv2-nikon-d70.jpg
copyTestFiles exiv2-gc.jpg exiv2-canon-powershot-s40.jpg exiv2-nikon-d70.jpg
runTest exifdata-test exiv2-gc.jpg
runTest exifdata-test exiv2-canon-powershot-s40.jpg
runTest exifdata-test exiv2-nikon-d70.jpg
) | tr -d '\r' > $results
diff -q $diffargs $results $good
rc=$?
if [ $rc -eq 0 ] ; then
echo "All testcases passed."
else
diff $diffargs $results $good
fi
reportTest
# That's all Folks!
##

@ -1,34 +1,7 @@
#!/bin/bash
# Test driver for exiv2 utility tests
os=$(uname)
if [ "${os:0:4}" == "CYGW" ]; then
# use the diff.exe in msvc
# cygwin's diff does not handle binary files as expected
export "PATH=$PWD/../msvc:$PATH"
fi
export LC_ALL=C
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
results="./tmp/exiv2-test.out"
good="./data/exiv2-test.out"
tmpfile=tmp/ttt
touch $tmpfile
da1="--strip-trailing-cr"
diff -q $da1 $tmpfile $tmpfile 2>/dev/null
if [ $? -ne 0 ] ; then
da1=""
fi
da2="--ignore-matching-lines=^Usage:.*exiv2"
diff -q $da2 $tmpfile $tmpfile 2>/dev/null
if [ $? -ne 0 ] ; then
da2=""
fi
diffargs="$da1 $da2"
source ./functions.source
(
# Add each image to the following three lists.
@ -83,65 +56,57 @@ image3="exiv2-empty.exv \
20001004_015404.exv \
20060127_225027.exv"
for i in $images; do cp -f data/$i tmp/; done
for i in $images; do copyTestFile $i; done
echo "Exiv2 test directory -----------------------------------------------------"
cd tmp/ >/dev/null || exit 1;
echo tmp/
echo
echo "Exiv2 version ------------------------------------------------------------"
$bin/exiv2 -u -V | sed '1 s, (.. bit build)$, (__ bit build),'
runTest exiv2 -u -V | sed '1 s, (.. bit build)$, (__ bit build),'
echo
echo "Exiv2 help ---------------------------------------------------------------"
$bin/exiv2 -u -h
runTest exiv2 -u -h
echo
echo "Adjust -------------------------------------------------------------------"
$bin/exiv2 -u -v -a-12:01:01 adjust $images
runTest exiv2 -u -v -a-12:01:01 adjust $images
echo
echo "Rename -------------------------------------------------------------------"
$bin/exiv2 -u -vf rename $images
runTest exiv2 -u -vf rename $images
echo
echo "Print --------------------------------------------------------------------"
$bin/exiv2 -u -v print $image2
$bin/exiv2 -u -v -b -pt print $image2
$bin/exiv2 -u -v -b -pt print $image2 > iii
runTest exiv2 -u -v print $image2
runTest exiv2 -u -v -b -pt print $image2
runTest exiv2 -u -v -b -pt print $image2 > iii
echo
echo "Extract Exif data --------------------------------------------------------"
$bin/exiv2 -u -vf extract $image2
runTest exiv2 -u -vf extract $image2
echo
echo "Extract Thumbnail --------------------------------------------------------"
$bin/exiv2 -u -vf -et extract $image2
$bin/exiv2 -u -v -b -pt print $image3 > jjj
runTest exiv2 -u -vf -et extract $image2
runTest exiv2 -u -v -b -pt print $image3 > jjj
echo
echo "Compare image data and extracted data ------------------------------------"
diff iii jjj
echo
echo "Delete Thumbnail ---------------------------------------------------------"
$bin/exiv2 -u -v -dt delete $image2
$bin/exiv2 -u -vf -et extract $image2
runTest exiv2 -u -v -dt delete $image2
runTest exiv2 -u -vf -et extract $image2
echo
echo "Delete Exif data ---------------------------------------------------------"
$bin/exiv2 -u -v delete $image2
$bin/exiv2 -u -v print $image2
runTest exiv2 -u -v delete $image2
runTest exiv2 -u -v print $image2
echo
echo "Insert Exif data ---------------------------------------------------------"
$bin/exiv2 -u -v insert $image2
$bin/exiv2 -u -v -b -pt print $image3 > kkk
runTest exiv2 -u -v insert $image2
runTest exiv2 -u -v -b -pt print $image3 > kkk
echo
echo "Compare original and inserted image data ---------------------------------"
diff iii kkk
) > $results 2>&1
if [ -e `which dos2unix` ]; then
sed 's,\\,/,g' $results > ${results}-new
mv -f ${results}-new $results
unix2dos $results >/dev/null 2>&1
fi
diffargs="-w $diffargs"
reportTest
diff -q -w $diffargs $results $good
rc=$?
if [ $rc -eq 0 ] ; then
echo "All testcases passed."
else
diff -w $diffargs $results $good
fi
# That's all Folks!
##

@ -0,0 +1,273 @@
#!/bin/bash
#locale setting
##
# initialize globals
export LC_ALL=C
this=$(basename $0 .sh)
here=$PWD
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$here/../bin"
else
bin="$EXIV2_BINDIR"
fi
exe=$(uname)
if [ $exe==cygwin -o $exe==mingw ]; then
exe=.exe
else
unset exe
fi
##
# run a test
runTest()
{
local prog=$1
shift
(
cd $here/tmp
if [ ! -z $EXIV2_ECHO ]; then
echoTest $VALGRIND $bin/$prog "$@"
fi
$VALGRIND $bin/$prog "$@"
)
}
##
# echo commands and arguments
echoTest()
{
local count=1
for i in $@ ; do
echo $((count++)): $i
done
echo -----------------------
}
##
# predictate
existsTest()
{
local prog=$1
result=0
if [ -e $bin/$prog -o -e $bin/$prog.exe ]; then
result=1
fi
echo $result
}
##
# copy file from data to tmp (copyTestFile from to
copyTestFile()
{
if [ $# == 2 ]; then
cp -f "$here/data/$1" "$here/tmp/$2"
elif [ $# == 1 ]; then
cp -f "$here/data/$1" "$here/tmp/$1"
else
echo "*** error copyTestFile: illegal number of inputs = $# ***"
fi
}
##
# copy 1 or more files from data to tmp
copyTestFiles()
{
for i in "$@" ; do
copyTestFile "$i" "$i"
done
}
##
# result analysis
reportTest()
{
if [ -e `which dos2unix` ]; then
sed 's,\\,/,g' $results > ${results}-new
mv -f ${results}-new $results
unix2dos $results >/dev/null 2>&1
fi
if [ $# -eq 0 ]; then
lhs=$results
rhs=$good
else
if [ $# -eq 3 ] ; then
diffargs=$1
lhs=$2
rhs=$3
else
lhs=$1
rhs=$2
fi
fi
diff -q $diffargs $lhs $rhs
rc=$?
if [ $rc -eq 0 ] ; then
echo "all testcases passed."
else
diff $diffargs $lhs $rhs
fi
}
##
# moved here from write-test.sh
runTestCase()
{
rtc_number=$1
rtc_infile=$2
rtc_outfile=$datapath/test${rtc_number}.jpg
rtc_jpgthumb=$datapath/thumb${rtc_number}.jpg
rtc_tifthumb=$datapath/thumb${rtc_number}.tif
rm -f $rtc_outfile $rtc_jpgthumb $rtc_tifthumb
rm -f $datapath/iii $datapath/ttt;
echo "------------------------------------------------------------"
runTest exifprint $rtc_infile > $datapath/iii;
cp $rtc_infile $rtc_outfile;
runTest write-test $rtc_infile $rtc_number > $datapath/ttt;
diff -a $datapath/iii $datapath/ttt
}
##
# moved here from bugfixes-test.sh
prep_file()
{
echo `prep_any_file $1 exiv2-bug$1.jpg`
}
prep_empty_file()
{
echo `prep_any_file $1 exiv2-empty.jpg`
}
prep_any_file()
{
printf "$1 " >&3
echo '------>' Bug $1 '<-------' >&2
copyTestFile $2 exiv2-bug$1.jpg
echo exiv2-bug$1.jpg
}
##
# moved here from imagetest.sh
eraseTest()
{
src=$1
test=${src}.etst
good=$datapath/${src}.egd
#setup
cp $datapath/$src $test
#run tests
$bin/metacopy $test $test
#check results
diffCheck $test $good
printf "."
}
copyTest()
{
num=$1
src=$2
dst=$3
test=${dst}.c${num}tst
good=$datapath/${dst}.c${num}gd
#setup
cp $datapath/$dst $test
#run tests
$bin/metacopy -a $datapath/$src $test
#check results
diffCheck $test $good
printf "."
}
iptcTest()
{
num=$1
src=$2
dst=$3
test=${dst}.i${num}tst
good=$datapath/${dst}.i${num}gd
#setup
cp $datapath/$dst $test
#run tests
$bin/metacopy -ip $datapath/$src $test
#check results
diffCheck $test $good
printf "."
}
# Make sure to pass the test file first and the known good file second
diffCheck()
{
test=$1
good=$2
#run diff and check results
diff -q --binary $test $good
if [ $? -ne 0 ]; then
errors=`expr $errors + 1`
else
rm $test
fi
}
##
# prepare temp files
prepareTest()
{
diffargs="--strip-trailing-cr"
good="$here/data/${this}.out"
results="$here/tmp/${this}.out"
##
# cygwin needs a private version of diff for linux compatibility
os=$(uname)
if [ "${os:0:4}" == "CYGW" ]; then
export "PATH=$PWD/../msvc:$PATH"
fi
tmpfile=$here/tmp/$this
touch $tmpfile
diff -q $diffargs $tmpfile $tmpfile 2>/dev/null
if [ $? -ne 0 ]; then
diffargs=""
fi
tmpfile=tmp/ttt
touch $tmpfile
da1="--strip-trailing-cr"
diff -q $da1 $tmpfile $tmpfile 2>/dev/null
if [ $? -ne 0 ] ; then
da1=""
fi
da2="--ignore-matching-lines=^Usage:.*exiv2"
diff -q $da2 $tmpfile $tmpfile 2>/dev/null
if [ $? -ne 0 ] ; then
da2=""
fi
diffargs="$da1 $da2"
}
prepareTest
# That's all Folks!
##

@ -1,85 +1,9 @@
#! /bin/sh
#!/bin/bash
# Test driver for image file i/o
eraseTest()
{
src=$1
test=${src}.etst
good=$datapath/${src}.egd
#setup
cp $datapath/$src $test
#run tests
$bin/metacopy $test $test
#check results
diffCheck $test $good
printf "."
}
copyTest()
{
num=$1
src=$2
dst=$3
test=${dst}.c${num}tst
good=$datapath/${dst}.c${num}gd
#setup
cp $datapath/$dst $test
#run tests
$bin/metacopy -a $datapath/$src $test
#check results
diffCheck $test $good
printf "."
}
iptcTest()
{
num=$1
src=$2
dst=$3
test=${dst}.i${num}tst
good=$datapath/${dst}.i${num}gd
#setup
cp $datapath/$dst $test
#run tests
$bin/metacopy -ip $datapath/$src $test
#check results
diffCheck $test $good
printf "."
}
# Make sure to pass the test file first and the known good file second
diffCheck()
{
test=$1
good=$2
#run diff and check results
diff -q --binary $test $good
if [ $? -ne 0 ]; then
errors=`expr $errors + 1`
else
rm $test
fi
}
# **********************************************************************
# main
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
source ./functions.source
datapath="../data"
@ -130,3 +54,6 @@ if [ $errors -eq 0 ]; then
else
echo $errors 'test case(s) failed!'
fi
# That's all Folks!
##

@ -1,4 +1,4 @@
#! /bin/sh
#!/bin/bash
# Test driver for image file i/o
ioTest()
@ -8,7 +8,7 @@ ioTest()
out2=${1}.2
#run tests
$bin/iotest $src $out1 $out2
runTest iotest $src $out1 $out2
if [ $? -ne 0 ]; then
errors=`expr $errors + 1`
return
@ -37,12 +37,7 @@ diffCheck()
# **********************************************************************
# main
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
source ./functions.source
datapath="../data"
@ -61,3 +56,6 @@ if [ $errors -eq 0 ]; then
else
echo $errors 'test case(s) failed!'
fi
# That's all Folks!
##

@ -1,6 +1,8 @@
#! /bin/sh
#!/bin/bash
# Test driver for Iptc metadata
source ./functions.source
printTest()
{
src=$1
@ -8,7 +10,7 @@ printTest()
good=$datapath/${src}.ipgd
#run tests
$bin/iptcprint $datapath/$src > $test
runTest iptcprint $datapath/$src > $test
#check results
diffCheck $test $good
@ -26,7 +28,7 @@ removeTest()
cp $datapath/$src $tmp
#run tests
$bin/iptctest $tmp <<-eoc
runTest iptctest $tmp <<-eoc
r Iptc.Application2.Byline
r Iptc.Application2.Caption
r Iptc.Application2.Keywords
@ -34,7 +36,7 @@ removeTest()
r Iptc.Application2.Keywords
r Iptc.Application2.CountryName
eoc
$bin/iptcprint $tmp > $test
runTest iptcprint $tmp > $test
#check results
diffCheck $test $good
@ -53,7 +55,7 @@ addModTest()
cp $datapath/$src $tmp
#run tests
$bin/iptctest $tmp <<-eoc
runTest iptctest $tmp <<-eoc
a Iptc.Application2.Headline The headline I am
a Iptc.Application2.Keywords Yet another keyword
m Iptc.Application2.DateCreated 2004-8-3
@ -63,7 +65,7 @@ addModTest()
a Iptc.Envelope.TimeSent 14:41:0-05:00
a Iptc.Application2.RasterizedCaption 230 42 34 2 90 84 23 146
eoc
$bin/iptcprint $tmp > $test
runTest iptcprint $tmp > $test
#check results
diffCheck $test $good
@ -82,8 +84,8 @@ extendedTest()
cp $datapath/$src $tmp
#run tests
$bin/iptctest $tmp < $datapath/ext.dat
$bin/iptcprint $tmp > $test
runTest iptctest $tmp < $datapath/ext.dat
runTest iptcprint $tmp > $test
#check results
diffCheck $test $good
@ -110,19 +112,8 @@ diffCheck()
# **********************************************************************
# main
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
datapath="../data"
diffargs="--strip-trailing-cr"
tmpfile=tmp/ttt
touch $tmpfile
diff -q $diffargs $tmpfile $tmpfile 2>/dev/null
if [ $? -ne 0 ] ; then
diffargs=""
fi
test_files="glider.exv \
iptc-noAPP13.jpg \
@ -168,3 +159,6 @@ if [ $errors -eq 0 ]; then
else
echo $errors 'test case(s) failed!'
fi
# That's all Folks!
##

@ -1,35 +1,17 @@
#! /bin/sh
#!/bin/bash
# Test driver for write unit tests to build Exif metadata from scratch
export LC_ALL=C
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
results="./tmp/modify-test.out"
good="./data/modify-test.out"
diffargs="--strip-trailing-cr"
tmpfile=tmp/ttt
touch $tmpfile
diff -q $diffargs $tmpfile $tmpfile 2>/dev/null
if [ $? -ne 0 ] ; then
diffargs=""
fi
source ./functions.source
(
cp -f ./data/exiv2-empty.jpg ./tmp
cp -f ./data/exiv2-gc.jpg ./tmp
copyTestFiles exiv2-empty.jpg exiv2-gc.jpg
cd ./tmp
$bin/exiv2 -v -m ../data/modifycmd1.txt exiv2-empty.jpg
$bin/exiv2 -v -m ../data/modifycmd2.txt exiv2-gc.jpg
$bin/exiv2 -v -pi exiv2-empty.jpg
$bin/exiv2 -v -pt exiv2-empty.jpg exiv2-gc.jpg
runTest exiv2 -v -m ../data/modifycmd1.txt exiv2-empty.jpg
runTest exiv2 -v -m ../data/modifycmd2.txt exiv2-gc.jpg
runTest exiv2 -v -pi exiv2-empty.jpg
runTest exiv2 -v -pt exiv2-empty.jpg exiv2-gc.jpg
) > $results
diff -q $diffargs $results $good
rc=$?
if [ $rc -eq 0 ] ; then
echo "All testcases passed."
else
diff $diffargs $results $good
fi
reportTest
# That's all Folks!
##

@ -1,14 +1,13 @@
#! /bin/sh
#!/bin/bash
# Mini test-driver for path utility functions
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
source ./functions.source
cd ./tmp
if { test -f $bin/path-test || test -f $bin/path-test.exe; }; then
$bin/path-test ../data/path-test.txt
if [ $(existsTest path-test) == 1 ] ; then
runTest path-test ../data/path-test.txt
else
echo "path-test.sh: path-test executable not found. Skipping path tests."
echo "$0: path-test executable not found. Skipping path tests."
fi
# That's all Folks!
##

@ -1,19 +1,12 @@
#! /bin/sh
#!/bin/bash
# Test driver for previews
# ----------------------------------------------------------------------
# Setup
export LC_ALL=C
source ./functions.source
prepareTest
cd tmp/
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
diffargs="--strip-trailing-cr"
if ! diff -q $diffargs /dev/null /dev/null 2>/dev/null ; then
diffargs=""
fi
# ----------------------------------------------------------------------
# Tests
@ -148,3 +141,6 @@ if ! diff -q $diffargs "../data/preview/preview-test.out" "preview-test.out" ; t
exit 1
fi
echo "All testcases passed."
# That's all Folks!
##

@ -1,28 +1,13 @@
#! /bin/sh
#!/bin/bash
# Test driver for tests of stringToLong/Float/Rational
results="./tmp/stringto-test.out"
good="./data/stringto-test.out"
diffargs="--strip-trailing-cr"
tmpfile=tmp/ttt
touch $tmpfile
diff -q $diffargs $tmpfile $tmpfile 2>/dev/null
if [ $? -ne 0 ] ; then
diffargs=""
fi
source ./functions.source
prepareTest
(
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
cd ./tmp
$bin/stringto-test
runTest stringto-test
) > $results
diff -q $diffargs $results $good
rc=$?
if [ $rc -eq 0 ] ; then
echo "All testcases passed."
else
diff $diffargs $results $good
fi
reportTest
# That's all Folks!
##

@ -2,7 +2,7 @@
msvc=$1
test=$2
home=$(dirname $0)
home=$(dirname $(readlink -f $0))
if [ -z $msvc ]; then
echo usage: $0 \<path-to-msvc-bin\> [test]
@ -31,4 +31,3 @@ done
# That's all Folks!
##

@ -1,8 +1,9 @@
#! /bin/sh
#!/bin/bash
# TIFF parser test driver
# ----------------------------------------------------------------------
# Check if the exifprobe tool is available
if [ `which exifprobe 2>/dev/null`x = x ] ; then
echo "tiff-test.sh: exifprobe not found. Skipping TIFF tests."
exit 0
@ -10,36 +11,20 @@ fi
# ----------------------------------------------------------------------
# Setup
results="./tmp/tiff-test.out"
good="./data/tiff-test.out"
source ./functions.source
prepareTest
# ----------------------------------------------------------------------
# Main routine
(
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
cd ./tmp
# ----------------------------------------------------------------------
# Basic write test
testfile=mini9.tif
cp -f ../data/$testfile .
runTest mini9.tif
exifprobe $testfile
$bin/tiff-test $testfile
exifprobe $testfile
) > $results
# ----------------------------------------------------------------------
# Evaluate results
cat $results | sed 's/\x0d$//' > $results-stripped
diff -q $results-stripped $good
rc=$?
if [ $rc -eq 0 ] ; then
echo "All testcases passed."
else
diff $results-stripped $good
fi
reportTest $results-stripped $good
# That's all Folks!
##

@ -8,48 +8,34 @@
# ----------------------------------------------------------------------
# Setup
export LC_ALL=C
os=$(uname)
if [ "${os:0:4}" == "CYGW" ]; then
export "PATH=$PWD/../msvc:$PATH"
fi
source ./functions.source
cd tmp/
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
diffargs="--strip-trailing-cr"
if ! diff -q $diffargs /dev/null /dev/null 2>/dev/null ; then
diffargs=""
fi
# ----------------------------------------------------------------------
# Tests
(
for file in ../data/video/video-*; do
video="`basename "$file"`"
if [ $video = "video-test.out" ] ; then
continue
fi
if [ $video != "video-test.out" ] ; then
printf "." >&3
echo
echo "-----> $video <-----"
cp "../data/video/$video" ./
copyTestFile "video/$video" "$video"
echo
echo "Command: exiv2 -u -pa $video"
$bin/exiv2 -u -pa "$video"
runTest exiv2 -u -pa "$video"
exitcode="$?"
echo "Exit code: $exitcode"
if [ "$exitcode" -ne 0 -a "$exitcode" -ne 253 ] ; then
continue
fi
fi
done
) 3>&1 > "video-test.out" 2>&1
@ -62,3 +48,6 @@ if ! diff -q $diffargs "../data/video/video-test.out" "video-test.out" ; then
exit 1
fi
echo "All testcases passed."
# That's all Folks!
##

@ -1,4 +1,4 @@
#! /bin/sh
#!/bin/bash
# Test driver for the write unit tests
# Function:
@ -8,42 +8,12 @@
# file : Input file
# Abstract:
# Run the requested test case number with the given file
(
runTestCase()
{
rtc_number=$1
rtc_infile=$2
rtc_outfile=$datapath/test${rtc_number}.jpg
rtc_jpgthumb=$datapath/thumb${rtc_number}.jpg
rtc_tifthumb=$datapath/thumb${rtc_number}.tif
rm -f $rtc_outfile $rtc_jpgthumb $rtc_tifthumb
rm -f $datapath/iii $datapath/ttt;
echo "------------------------------------------------------------"
$bin/exifprint $rtc_infile > $datapath/iii;
cp $rtc_infile $rtc_outfile;
$bin/write-test $rtc_infile $rtc_number > $datapath/ttt;
diff -a $datapath/iii $datapath/ttt
}
# **********************************************************************
# main
source ./functions.source
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
datapath="."
diffargs="--strip-trailing-cr"
tmpfile=tmp/ttt
touch $tmpfile
diff -q $diffargs $tmpfile $tmpfile 2>/dev/null
if [ $? -ne 0 ] ; then
diffargs=""
fi
(
cd ./tmp
datapath=.
images="exiv2-canon-powershot-s40.jpg \
exiv2-kodak-dc210.jpg \
@ -53,8 +23,7 @@ images="exiv2-canon-powershot-s40.jpg \
exiv2-nikon-d70.jpg \
exiv2-nikon-e950.jpg"
for i in $images; do cp -f ./data/$i ./tmp; done
cd ./tmp
copyTestFiles ${images[@]}
runTestCase 1 $datapath/exiv2-canon-powershot-s40.jpg
runTestCase 2 $datapath/exiv2-canon-powershot-s40.jpg
@ -69,11 +38,7 @@ runTestCase 10 $datapath/exiv2-nikon-e950.jpg
runTestCase 11 $datapath/exiv2-nikon-d70.jpg
) > tmp/write-test.out 2>&1
reportTest
diff -q -w -a $diffargs tmp/write-test.out data/write-test.out
rc=$?
if [ $rc -eq 0 ] ; then
echo "All testcases passed."
else
diff -w -a $diffargs tmp/write-test.out data/write-test.out
fi
# That's all Folks!
##

@ -1,29 +1,14 @@
#! /bin/sh
# Test driver for write unit tests to build Exif metadata from scratch
results="./tmp/write2-test.out"
good="./data/write2-test.out"
diffargs="--strip-trailing-cr"
tmpfile=tmp/ttt
touch $tmpfile
diff -q $diffargs $tmpfile $tmpfile 2>/dev/null
if [ $? -ne 0 ] ; then
diffargs=""
fi
source ./functions.source
(
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
cp -f ./data/exiv2-empty.jpg ./tmp
cd ./tmp
$bin/write2-test exiv2-empty.jpg
copyTestFile exiv2-empty.jpg
runTest write2-test exiv2-empty.jpg
) > $results
diff -q $diffargs $results $good
rc=$?
if [ $rc -eq 0 ] ; then
echo "All testcases passed."
else
diff $diffargs $results $good
fi
reportTest
# That's all Folks!
##

@ -1,71 +1,47 @@
#! /bin/sh
# XMP parser test driver
# ----------------------------------------------------------------------
# Setup
export LC_ALL=C
results="./xmpparser-test.out"
good="../data/xmpparser-test.out"
if [ -z "$EXIV2_BINDIR" ] ; then
bin="$VALGRIND ../../bin"
else
bin="$VALGRIND $EXIV2_BINDIR"
fi
cd ./tmp
source ./functions.source
# ----------------------------------------------------------------------
##
# Check if xmpparser-test exists
if [ ! -e ../../bin/xmpparser-test -a ! -e "$EXIV2_BINDIR/xmpparser-test" ] ; then
if [ $(existsTest xmpparser-test) != 1 ] ; then
echo "xmpparser-test not found. Assuming XMP support is not enabled."
exit 0
fi
# ----------------------------------------------------------------------
# Main routine
(
# ----------------------------------------------------------------------
# BlueSquare
testfile=BlueSquare.xmp
cp -f ../data/$testfile .
$bin/xmpparser-test $testfile
diff $testfile ${testfile}-new
cd ./tmp
# ----------------------------------------------------------------------
# StaffPhotographer-Example
testfile=StaffPhotographer-Example.xmp
cp -f ../data/$testfile .
$bin/xmpparser-test $testfile
diff $testfile ${testfile}-new
files=(BlueSquare.xmp StaffPhotographer-Example.xmp xmpsdk.xmp)
copyTestFiles ${files[@]}
for f in ${files[@]} ; do
runTest xmpparser-test $f
diff $f ${f}-new
done
# ----------------------------------------------------------------------
# xmpsdk
testfile=xmpsdk.xmp
cp -f ../data/$testfile .
$bin/xmpparser-test $testfile
diff $testfile ${testfile}-new
$bin/xmpparse ${testfile} > t1 2>&1
$bin/xmpparse ${testfile}-new > t2 2>&1
runTest xmpparse ${testfile} > t1 2>&1
runTest xmpparse ${testfile}-new > t2 2>&1
diff t1 t2
# ----------------------------------------------------------------------
# xmpsample
$bin/xmpsample
runTest xmpsample
# ----------------------------------------------------------------------
# XMP sample commands
cp -f ../data/exiv2-empty.jpg .
$bin/exiv2 -v -m ../data/cmdxmp.txt exiv2-empty.jpg
$bin/exiv2 -v -px exiv2-empty.jpg
copyTestFile exiv2-empty.jpg
runTest exiv2 -v -m ../data/cmdxmp.txt exiv2-empty.jpg
runTest exiv2 -v -px exiv2-empty.jpg
) > $results 2>&1
# ----------------------------------------------------------------------
# Evaluate results
cat $results | sed 's/\x0d$//' > $results-stripped
diff -q $results-stripped $good
rc=$?
if [ $rc -eq 0 ] ; then
echo "All testcases passed."
else
diff $results-stripped $good
fi
reportTest $results-stripped $good
# That's all Folks!
##

Loading…
Cancel
Save