From d52674432b766a2a02862eb98b5793f88b97edfa Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Sat, 13 Aug 2016 09:10:56 +0000 Subject: [PATCH] #1202 Update test suite. The test jpg was originally test/tmp/20030925_201850.jpg --- test/bugfixes-test.sh | 1035 ++++++++++++++++++----------------- test/data/bugfixes-test.out | Bin 1911273 -> 1911607 bytes test/data/exiv2-bug1202.jpg | Bin 0 -> 17013 bytes 3 files changed, 522 insertions(+), 513 deletions(-) create mode 100644 test/data/exiv2-bug1202.jpg diff --git a/test/bugfixes-test.sh b/test/bugfixes-test.sh index 574cd38d..a213f45f 100755 --- a/test/bugfixes-test.sh +++ b/test/bugfixes-test.sh @@ -3,550 +3,559 @@ source ./functions.source -( cd "$testdir" - - num=426 - filename=`prep_file $num` - runTest exiv2 -u -pi $filename - - num=440 - filename=`prep_file $num` - runTest exiv2 -u -pi $filename +( cd "$testdir" + + num=426 + filename=`prep_file $num` + runTest exiv2 -u -pi $filename + + num=440 + filename=`prep_file $num` + runTest exiv2 -u -pi $filename - num=443 - filename=`prep_file $num` - runTest exiv2 -u -b -pt $filename + num=443 + filename=`prep_file $num` + runTest exiv2 -u -b -pt $filename - num=444 - filename=`prep_file $num` - runTest exiv2 -u -pi $filename + num=444 + filename=`prep_file $num` + runTest exiv2 -u -pi $filename - num=445 - filename=`prep_file $num` - runTest exiv2 -u -v -M'set Exif.Photo.UserComment A comment' $filename - runTest exiv2 -u -b -pt $filename - filename=exiv2-empty.jpg - copyTestFile $filename - runTest exiv2 -u -v -M'set Exif.Photo.UserComment A comment' $filename - runTest exiv2 -u -b -pt $filename + num=445 + filename=`prep_file $num` + runTest exiv2 -u -v -M'set Exif.Photo.UserComment A comment' $filename + runTest exiv2 -u -b -pt $filename + filename=exiv2-empty.jpg + 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` - runTest exiv2 -u -pi $filename + num=447 # Problem only visible in Valgrind + filename=`prep_file $num` + runTest exiv2 -u -pi $filename - num=452 - filename=`prep_empty_file $num` - 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=452 + filename=`prep_empty_file $num` + 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` - runTest exiv2 -u -pt $filename + num=460 + filename=`prep_file $num` + runTest exiv2 -u -pt $filename - num=479 - filename=`prep_file $num` - runTest exiv2 -u -pt $filename + num=479 + filename=`prep_file $num` + runTest exiv2 -u -pt $filename - num=480 - filename=`prep_file $num` - runTest largeiptc-test $filename $datadir/imagemagick.png + num=480 + filename=`prep_file $num` + runTest largeiptc-test $filename $datadir/imagemagick.png - num=495 - filename=`prep_file $num` - runTest exiv2 -u -pi $filename + num=495 + filename=`prep_file $num` + runTest exiv2 -u -pi $filename - num=498 - filename=`prep_empty_file $num` - 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=498 + filename=`prep_empty_file $num` + 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` - runTest exiv2 -u -pi $filename + num=501 + filename=`prep_file $num` + runTest exiv2 -u -pi $filename - num=528 - filename=`prep_file $num` - runTest exiv2 -u -pt $filename - runTest exiv2 -u -v -M"set Exif.Image.Software GI" $filename + num=528 + filename=`prep_file $num` + runTest exiv2 -u -pt $filename + runTest exiv2 -u -v -M"set Exif.Image.Software GI" $filename - num=540 - filename=`prep_file $num` - runTest exiv2 -u -px $filename + num=540 + filename=`prep_file $num` + runTest exiv2 -u -px $filename - num=554 - filename=`prep_empty_file $num` - runTest exiv2 -u -v -M"set Exif.Image.DateTime Date 2007-05-27" $filename - runTest exiv2 -u -pt $filename + num=554 + filename=`prep_empty_file $num` + 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` + num=662 + filename=`prep_empty_file $num` - runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Ascii An ascii comment" $filename - runTest exiv2 -u -PEnh $filename + runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Ascii An ascii comment" $filename + runTest exiv2 -u -PEnh $filename - runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Ascii A\\nnewline" $filename - runTest exiv2 -u -PEnh $filename + runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Ascii A\\nnewline" $filename + runTest exiv2 -u -PEnh $filename - runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode A Unicode comment" $filename - runTest exiv2 -u -PEnh $filename + runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode A Unicode comment" $filename + runTest exiv2 -u -PEnh $filename - runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode \\u01c4" $filename - runTest exiv2 -u -PEnh $filename + runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode \\u01c4" $filename + runTest exiv2 -u -PEnh $filename - runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode A\\u01c4C" $filename - runTest exiv2 -u -PEnh $filename + runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode A\\u01c4C" $filename + runTest exiv2 -u -PEnh $filename - runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode With\\nNewline" $filename - runTest exiv2 -u -PEnh $filename + runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode With\\nNewline" $filename + runTest 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 - runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode \\ugggg" $filename - runTest exiv2 -u -PEnh $filename - - num=666 - filename=`prep_empty_file $num` + runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode With\\tTab" $filename + runTest exiv2 -u -PEnh $filename + + # Test invalid escape sequences + runTest exiv2 -u -M"set Exif.Photo.UserComment charset=Unicode \\ugggg" $filename + runTest exiv2 -u -PEnh $filename + + num=666 + filename=`prep_empty_file $num` - runTest 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 - 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 - 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 - copyTestFile exiv2-empty.jpg $filename - echo '------>' Bug $num '<-------' >&2 - 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 - 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 - 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 - 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 [ 1 = $(existsTest easyaccess-test) ]; then - num=726 - filename=`prep_empty_file $num` - 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 - - # Test 'migration of XMP namespaces' (see #751 and related forum post) - num=751 - filename=`prep_empty_file $num` - xmpname=exiv2-bug$num.xmp - runTest exiv2 -v -M'reg imageapp orig/' -M 'set Xmp.imageapp.uuid abcd' $filename - runTest exiv2 -f -eX $filename - cat $xmpname - 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` - 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=784 - filename=exiv2-bug$num.jpg - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -px $filename - runTest exiv2 -M"add Xmp.lr.hierarchicalSubject root|1st|2nd|3rd|4th|5th" $filename - runTest exiv2 -px $filename - - num=799 - filename=`prep_empty_file $num` - copyTestFile bug$num.cmd - runTest exiv2 -v -m bug$num.cmd $filename - runTest exiv2 -v -pa $filename - runTest exiv2 -f -eX $filename - cat exiv2-bug$num.xmp - - num=800 - printf "$num " >&3 - 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 - copyTestFile $filename - runTest exiv2 -u -v -M'set Exif.Photo.UserComment Test' $filename - runTest exiv2 -u -pt $filename - done - done - - num=812 # updating a hardlinked file can "empty" the other files! - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile exiv2-bug884c.jpg bug$num.jpg - hardLinkFiles bug$num.jpg bug$num-B.jpg bug$num-C.jpg - runTest exiv2 -u -v -M"set Exif.Photo.UserComment Test Bug $num" bug$num.jpg - runTest exiv2 -PE -g UserComment bug${num}*.jpg - runTest exiv2 -u -v -M"set Exif.Photo.UserComment Test Bug $num modified" bug$num.jpg - runTest exiv2 -PE -g UserComment bug${num}*.jpg - - num=816 # test Camera: Pentax + Lens:Sigma 55-200mm F4-5.6 DC is correctly reported - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - for X in a b c d e; do - filename=exiv2-bug${num}${X}.exv - copyTestFile $filename - runTest exiv2 -pa --grep Lens $filename - done - - num=831 - filename=exiv2-bug$num.tif - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - 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 - copyTestFile $filename $filename - if [ -e $filename/rsrc ]; then - printf "$num " >&3 - copyTestFile $filename.rsrc $filename/rsrc - runTest exiv2 -M'set Exif.Photo.UserComment Test' $filename - diff -q $datadir/$filename.rsrc $filename/rsrc - else - # skip this test on systems which do not have resource forks - printf "($num skipped) " >&3 - fi - - num=841 - filename=exiv2-bug$num.png - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 $filename - - num=876 - filename=exiv2-bug$num.jpg - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pa $filename | grep Model - - num=884 - filenames="exiv2-bug${num}a.jpg exiv2-bug${num}b.jpg exiv2-bug${num}c.jpg" - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - for filename in $filenames; do - copyTestFile $filename - runTest exiv2 -pt $filename | grep -i lenstype - done - - num=922 - filename=exiv2-bug$num.jpg - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pX $filename ; echo '' # add a lf after the XMP/xml - filename=iptc-psAPP13-wIPTCempty-psAPP13-wIPTC.jpg - copyTestFile $filename - runTest exiv2 -pX $filename - for filename in exiv2-bug$num.png exiv2-bug$num.tif exiv2-bug${num}a.jpg; do - copyTestFile $filename ; - runTest exiv2 -pX $filename ; echo '' - runTest exiv2 -pS $filename - done - - num=935 - filename=`prep_empty_file $num` - runTest exiv2 -u -v -M"set Exif.Photo.ExposureTime 605/10" $filename - runTest exiv2 -u -pv -gExif.Photo.ExposureTime $filename - runTest exiv2 -u -pa -gExif.Photo.ExposureTime $filename - runTest exiv2 -u -v -M"set Exif.Photo.ExposureTime 2/3" $filename - runTest exiv2 -u -pv -gExif.Photo.ExposureTime $filename - runTest exiv2 -u -pa -gExif.Photo.ExposureTime $filename - runTest exiv2 -u -v -M"set Exif.Photo.ExposureTime 0/0" $filename - runTest exiv2 -u -pv -gExif.Photo.ExposureTime $filename - runTest exiv2 -u -pa -gExif.Photo.ExposureTime $filename - runTest exiv2 -u -v -M"set Exif.Photo.ExposureTime 605/605" $filename - runTest exiv2 -u -pv -gExif.Photo.ExposureTime $filename - runTest exiv2 -u -pa -gExif.Photo.ExposureTime $filename - runTest exiv2 -u -v -M"set Exif.Photo.ExposureTime 100/1500" $filename - runTest exiv2 -u -pv -gExif.Photo.ExposureTime $filename - runTest exiv2 -u -pa -gExif.Photo.ExposureTime $filename - runTest exiv2 -u -v -M"set Exif.Photo.ExposureTime Ascii Test" $filename - runTest exiv2 -u -pv -gExif.Photo.ExposureTime $filename - runTest exiv2 -u -pa -gExif.Photo.ExposureTime $filename - - num=937 - filename=exiv2-bug$num.jpg - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -q -pa -g dwc $filename - runTest exiv2 -q -PXkyctl -g Date $filename - - num=937a - filename=exiv2.dc.dwc.i18n.jpg - dataname=exiv2.dc.dwc.i18n.txt - diffname=exiv2.dc.dwc.i18n.diff - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - copyTestFile $dataname - copyTestFile $diffname - runTest exiv2 -pa $filename | sort > $num-before.txt - runTest exiv2 -m $dataname $filename - runTest exiv2 -pa $filename | sort > $num-after.txt - diff $diffargs $num-before.txt $num-after.txt > $num.txt - diff $diffargs $num.txt $diffname - - num=1024 - filename=exiv2-bug$num.exv - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pa --grep gpsl/i $filename - - num=1026 - filename=exiv2-bug$num.jpg - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -q -pa -g Lens $filename - - num=1040 - filename=exiv2-bug$num.jpg - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -px $filename - - num=1043 # looping and writing to a samba drive can hang! - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - for n in A B C D E F G H I J K L M N O P Q R S T U V W X Y Z; do - copyTestFile exiv2-bug884c.jpg bug${num}-$n.jpg - done - for name in bug${num}-*.jpg; do - runTest exiv2 -u -v -M"set Exif.Photo.UserComment Test Bug $num my filename is $name" $name - done - runTest exiv2 -PE -g UserComment bug${num}*.jpg - - num=1044 - filename=exiv2-bug$num.tif - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -q -pa -g PageNumber $filename - - num=1053 - filename=exiv2-bug$num.jpg - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile exiv2-bug884c.jpg $filename - runTest exiv2 -PE -g ImageWidth $filename - runTest exiv2 -PE -K ImageWidth $filename - runTest exiv2 -PE -K Exif.Image.ImageWidth $filename - - num=1054 - filename1=exiv2-bug${num}-1.jpg - filename2=exiv2-bug${num}-2.jpg - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile BlueSquare.xmp $filename1 - copyTestFile exiv2-bug784.jpg $filename2 - runTest exiv2json $filename1 - runTest exiv2json x $filename1 + 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 + 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 + copyTestFile exiv2-empty.jpg $filename + echo '------>' Bug $num '<-------' >&2 + 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 + 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 + 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 + 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 [ 1 = $(existsTest easyaccess-test) ]; then + num=726 + filename=`prep_empty_file $num` + 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 + + # Test 'migration of XMP namespaces' (see #751 and related forum post) + num=751 + filename=`prep_empty_file $num` + xmpname=exiv2-bug$num.xmp + runTest exiv2 -v -M'reg imageapp orig/' -M 'set Xmp.imageapp.uuid abcd' $filename + runTest exiv2 -f -eX $filename + cat $xmpname + 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` + 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=784 + filename=exiv2-bug$num.jpg + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -px $filename + runTest exiv2 -M"add Xmp.lr.hierarchicalSubject root|1st|2nd|3rd|4th|5th" $filename + runTest exiv2 -px $filename + + num=799 + filename=`prep_empty_file $num` + copyTestFile bug$num.cmd + runTest exiv2 -v -m bug$num.cmd $filename + runTest exiv2 -v -pa $filename + runTest exiv2 -f -eX $filename + cat exiv2-bug$num.xmp + + num=800 + printf "$num " >&3 + 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 + copyTestFile $filename + runTest exiv2 -u -v -M'set Exif.Photo.UserComment Test' $filename + runTest exiv2 -u -pt $filename + done + done + + num=812 # updating a hardlinked file can "empty" the other files! + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile exiv2-bug884c.jpg bug$num.jpg + hardLinkFiles bug$num.jpg bug$num-B.jpg bug$num-C.jpg + runTest exiv2 -u -v -M"set Exif.Photo.UserComment Test Bug $num" bug$num.jpg + runTest exiv2 -PE -g UserComment bug${num}*.jpg + runTest exiv2 -u -v -M"set Exif.Photo.UserComment Test Bug $num modified" bug$num.jpg + runTest exiv2 -PE -g UserComment bug${num}*.jpg + + num=816 # test Camera: Pentax + Lens:Sigma 55-200mm F4-5.6 DC is correctly reported + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + for X in a b c d e; do + filename=exiv2-bug${num}${X}.exv + copyTestFile $filename + runTest exiv2 -pa --grep Lens $filename + done + + num=831 + filename=exiv2-bug$num.tif + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + 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 + copyTestFile $filename $filename + if [ -e $filename/rsrc ]; then + printf "$num " >&3 + copyTestFile $filename.rsrc $filename/rsrc + runTest exiv2 -M'set Exif.Photo.UserComment Test' $filename + diff -q $datadir/$filename.rsrc $filename/rsrc + else + # skip this test on systems which do not have resource forks + printf "($num skipped) " >&3 + fi + + num=841 + filename=exiv2-bug$num.png + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 $filename + + num=876 + filename=exiv2-bug$num.jpg + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pa $filename | grep Model + + num=884 + filenames="exiv2-bug${num}a.jpg exiv2-bug${num}b.jpg exiv2-bug${num}c.jpg" + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + for filename in $filenames; do + copyTestFile $filename + runTest exiv2 -pt $filename | grep -i lenstype + done + + num=922 + filename=exiv2-bug$num.jpg + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pX $filename ; echo '' # add a lf after the XMP/xml + filename=iptc-psAPP13-wIPTCempty-psAPP13-wIPTC.jpg + copyTestFile $filename + runTest exiv2 -pX $filename + for filename in exiv2-bug$num.png exiv2-bug$num.tif exiv2-bug${num}a.jpg; do + copyTestFile $filename ; + runTest exiv2 -pX $filename ; echo '' + runTest exiv2 -pS $filename + done + + num=935 + filename=`prep_empty_file $num` + runTest exiv2 -u -v -M"set Exif.Photo.ExposureTime 605/10" $filename + runTest exiv2 -u -pv -gExif.Photo.ExposureTime $filename + runTest exiv2 -u -pa -gExif.Photo.ExposureTime $filename + runTest exiv2 -u -v -M"set Exif.Photo.ExposureTime 2/3" $filename + runTest exiv2 -u -pv -gExif.Photo.ExposureTime $filename + runTest exiv2 -u -pa -gExif.Photo.ExposureTime $filename + runTest exiv2 -u -v -M"set Exif.Photo.ExposureTime 0/0" $filename + runTest exiv2 -u -pv -gExif.Photo.ExposureTime $filename + runTest exiv2 -u -pa -gExif.Photo.ExposureTime $filename + runTest exiv2 -u -v -M"set Exif.Photo.ExposureTime 605/605" $filename + runTest exiv2 -u -pv -gExif.Photo.ExposureTime $filename + runTest exiv2 -u -pa -gExif.Photo.ExposureTime $filename + runTest exiv2 -u -v -M"set Exif.Photo.ExposureTime 100/1500" $filename + runTest exiv2 -u -pv -gExif.Photo.ExposureTime $filename + runTest exiv2 -u -pa -gExif.Photo.ExposureTime $filename + runTest exiv2 -u -v -M"set Exif.Photo.ExposureTime Ascii Test" $filename + runTest exiv2 -u -pv -gExif.Photo.ExposureTime $filename + runTest exiv2 -u -pa -gExif.Photo.ExposureTime $filename + + num=937 + filename=exiv2-bug$num.jpg + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -q -pa -g dwc $filename + runTest exiv2 -q -PXkyctl -g Date $filename + + num=937a + filename=exiv2.dc.dwc.i18n.jpg + dataname=exiv2.dc.dwc.i18n.txt + diffname=exiv2.dc.dwc.i18n.diff + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + copyTestFile $dataname + copyTestFile $diffname + runTest exiv2 -pa $filename | sort > $num-before.txt + runTest exiv2 -m $dataname $filename + runTest exiv2 -pa $filename | sort > $num-after.txt + diff $diffargs $num-before.txt $num-after.txt > $num.txt + diff $diffargs $num.txt $diffname + + num=1024 + filename=exiv2-bug$num.exv + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pa --grep gpsl/i $filename + + num=1026 + filename=exiv2-bug$num.jpg + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -q -pa -g Lens $filename + + num=1040 + filename=exiv2-bug$num.jpg + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -px $filename + + num=1043 # looping and writing to a samba drive can hang! + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + for n in A B C D E F G H I J K L M N O P Q R S T U V W X Y Z; do + copyTestFile exiv2-bug884c.jpg bug${num}-$n.jpg + done + for name in bug${num}-*.jpg; do + runTest exiv2 -u -v -M"set Exif.Photo.UserComment Test Bug $num my filename is $name" $name + done + runTest exiv2 -PE -g UserComment bug${num}*.jpg + + num=1044 + filename=exiv2-bug$num.tif + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -q -pa -g PageNumber $filename + + num=1053 + filename=exiv2-bug$num.jpg + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile exiv2-bug884c.jpg $filename + runTest exiv2 -PE -g ImageWidth $filename + runTest exiv2 -PE -K ImageWidth $filename + runTest exiv2 -PE -K Exif.Image.ImageWidth $filename + + num=1054 + filename1=exiv2-bug${num}-1.jpg + filename2=exiv2-bug${num}-2.jpg + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile BlueSquare.xmp $filename1 + copyTestFile exiv2-bug784.jpg $filename2 + runTest exiv2json $filename1 + runTest exiv2json x $filename1 runTest exiv2json $filename2 - num=1058 - filename=exiv2-bug$num.jpg - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile exiv2-empty.jpg $filename - # Add titles in 2 languages and one default - runTest exiv2 -M'set Xmp.dc.title lang="de-DE" GERMAN' $filename - runTest exiv2 -M'set Xmp.dc.title lang="en-GB" BRITISH' $filename - runTest exiv2 -M'set Xmp.dc.title Everybody else' $filename - runTest exiv2 -px $filename - # Remove languages, test case for the language - runTest exiv2 -M'set Xmp.dc.title lang="DE-de" german' $filename - runTest exiv2 -M'set Xmp.dc.title lang="EN-gb"' $filename - runTest exiv2 -M'set Xmp.dc.title' $filename - runTest exiv2 -px $filename - - num=1062 - filename=exiv2-bug$num.jpg - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pa -g zone $filename - - num=1074 - filename=exiv2-bug$num.png - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pC $filename | cksum - copyTestFile imagemagick.png - runTest exiv2 -pC imagemagick.png | cksum - copyTestFile Reagan.tiff - runTest exiv2 -pC Reagan.tiff | cksum - copyTestFile Reagan.jpg - runTest exiv2 -pC Reagan.jpg | cksum - - num=1108 - filename=exiv2-bug$num.exv - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pR $filename - copyTestFile imagemagick.png - runTest exiv2 -pR imagemagick.png - copyTestFile Reagan.tiff - runTest exiv2 -pR Reagan.tiff - copyTestFile Reagan.tiff - runTest exiv2 -pR Reagan.jpg - echo '' - - num=1112 - filename=exiv2-bug$num.xmp - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -M 'del Xmp.dc.title' $filename - cat $filename - echo '' - - num=1114 - filename=exiv2-bug$num.jpg - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pv -g TuneAdj $filename - - num=1122 - filename=exiv2-bug$num.exv - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pv -g Lens $filename - runTest exiv2 -pa -g Lens $filename - - num=1137 - filename=exiv2-bug$num.exv - printf "$num " >&3 - echo '------>' Bug $num '<-------' >&2 - copyTestFile Stonehenge.exv $filename - copyTestFile Stonehenge.exv - runTest exiv2 -PkV --grep GPSL $filename - runTest exiv2 -PkV --grep GPSL Stonehenge.exv | runTest exiv2 -m- $filename - runTest exiv2 -pa --grep GPSL $filename - - num=1140 - printf "$num " >&3 - filename=exiv2-bug$num.exv - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pa -g Lens $filename - - num=1144 - printf "$num " >&3 - for i in a b c d e f g; do - filename=exiv2-bug$num$i.exv - echo '------>' Bug $num$i '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pa -g Lens $filename - done - - num=1145 - printf "$num " >&3 - for i in a b c d e; do - filename=exiv2-bug$num$i.exv - echo '------>' Bug $num$i '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pa -g Lens $filename - done - - num=1153 - printf "$num " >&3 - for E in A J; do for i in a b c d e f g h i j k; do - filename=exiv2-bug$num${E}${i}.exv - echo '------>' Bug $num${E}${i} '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pa -g Lens $filename - done;done - - num=1155 - printf "$num " >&3 - for i in a b c d e f g h i; do - filename=exiv2-bug$num${i}.exv - echo '------>' Bug $num${i} '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pa -g Lens $filename - done - - num=1166 - printf "$num " >&3 - filename=exiv2-bug$num.exv - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pa --grep lens/i $filename - - num=1167 - printf "$num " >&3 - filename=exiv2-bug$num.exv - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pa --grep lens/i $filename - - num=1170 - printf "$num " >&3 - filename=exiv2-bug$num.exv - echo '------>' Bug $num '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pa --grep lens/i $filename - - num=1179 - printf "$num " >&3 - for X in a b c d e f g h i j; do - filename=exiv2-bug$num$X.exv - echo '------>' Bug $filename '<-------' >&2 - copyTestFile $filename - runTest exiv2 -pa --grep fuji/i $filename - done + num=1058 + filename=exiv2-bug$num.jpg + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile exiv2-empty.jpg $filename + # Add titles in 2 languages and one default + runTest exiv2 -M'set Xmp.dc.title lang="de-DE" GERMAN' $filename + runTest exiv2 -M'set Xmp.dc.title lang="en-GB" BRITISH' $filename + runTest exiv2 -M'set Xmp.dc.title Everybody else' $filename + runTest exiv2 -px $filename + # Remove languages, test case for the language + runTest exiv2 -M'set Xmp.dc.title lang="DE-de" german' $filename + runTest exiv2 -M'set Xmp.dc.title lang="EN-gb"' $filename + runTest exiv2 -M'set Xmp.dc.title' $filename + runTest exiv2 -px $filename + + num=1062 + filename=exiv2-bug$num.jpg + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pa -g zone $filename + + num=1074 + filename=exiv2-bug$num.png + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pC $filename | cksum + copyTestFile imagemagick.png + runTest exiv2 -pC imagemagick.png | cksum + copyTestFile Reagan.tiff + runTest exiv2 -pC Reagan.tiff | cksum + copyTestFile Reagan.jpg + runTest exiv2 -pC Reagan.jpg | cksum + + num=1108 + filename=exiv2-bug$num.exv + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pR $filename + copyTestFile imagemagick.png + runTest exiv2 -pR imagemagick.png + copyTestFile Reagan.tiff + runTest exiv2 -pR Reagan.tiff + copyTestFile Reagan.tiff + runTest exiv2 -pR Reagan.jpg + echo '' + + num=1112 + filename=exiv2-bug$num.xmp + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -M 'del Xmp.dc.title' $filename + cat $filename + echo '' + + num=1114 + filename=exiv2-bug$num.jpg + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pv -g TuneAdj $filename + + num=1122 + filename=exiv2-bug$num.exv + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pv -g Lens $filename + runTest exiv2 -pa -g Lens $filename + + num=1137 + filename=exiv2-bug$num.exv + printf "$num " >&3 + echo '------>' Bug $num '<-------' >&2 + copyTestFile Stonehenge.exv $filename + copyTestFile Stonehenge.exv + runTest exiv2 -PkV --grep GPSL $filename + runTest exiv2 -PkV --grep GPSL Stonehenge.exv | runTest exiv2 -m- $filename + runTest exiv2 -pa --grep GPSL $filename + + num=1140 + printf "$num " >&3 + filename=exiv2-bug$num.exv + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pa -g Lens $filename + + num=1144 + printf "$num " >&3 + for i in a b c d e f g; do + filename=exiv2-bug$num$i.exv + echo '------>' Bug $num$i '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pa -g Lens $filename + done + + num=1145 + printf "$num " >&3 + for i in a b c d e; do + filename=exiv2-bug$num$i.exv + echo '------>' Bug $num$i '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pa -g Lens $filename + done + + num=1153 + printf "$num " >&3 + for E in A J; do for i in a b c d e f g h i j k; do + filename=exiv2-bug$num${E}${i}.exv + echo '------>' Bug $num${E}${i} '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pa -g Lens $filename + done;done + + num=1155 + printf "$num " >&3 + for i in a b c d e f g h i; do + filename=exiv2-bug$num${i}.exv + echo '------>' Bug $num${i} '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pa -g Lens $filename + done + + num=1166 + printf "$num " >&3 + filename=exiv2-bug$num.exv + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pa --grep lens/i $filename + + num=1167 + printf "$num " >&3 + filename=exiv2-bug$num.exv + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pa --grep lens/i $filename + + num=1170 + printf "$num " >&3 + filename=exiv2-bug$num.exv + echo '------>' Bug $num '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pa --grep lens/i $filename + + num=1179 + printf "$num " >&3 + for X in a b c d e f g h i j; do + filename=exiv2-bug$num$X.exv + echo '------>' Bug $filename '<-------' >&2 + copyTestFile $filename + runTest exiv2 -pa --grep fuji/i $filename + done + + num=1202 + printf "$num " >&3 + filename=exiv2-bug$num.jpg + copyTestFile $filename # test/tmp/20030925_201850.jpg + for value in 0 1 8 9 -1; do + runTest exiv2 -M"set Exif.CanonCs.FocusContinuous SShort $value" $filename + runTest exiv2 -K Exif.CanonCs.FocusContinuous $filename + done ) 3>&1 > $results 2>&1 diff --git a/test/data/bugfixes-test.out b/test/data/bugfixes-test.out index 823584c692f6ca1ae63b1cef5c0df6b9220544ef..273baad4f4a63d7c580aa15d24fbabf81b59910b 100644 GIT binary patch delta 119 zcmaEPxn%pbl7<$>7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~7QPn#7J(MQ7NHj57LgXw z7O@ub7Ks+g7O58LEizI8+hqe}&fJ`Q!!Tg-Q$u|&=lr~q%)HY4(&EY24Q;1Ckdft? Utgp)fl4I7e)C37mo@>Mb0QhApZU6uP delta 75 zcmV~$w+(S}8E*gp diff --git a/test/data/exiv2-bug1202.jpg b/test/data/exiv2-bug1202.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b02c0b06e32c94379c268cf4ae0da97c289b569a GIT binary patch literal 17013 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 AivR!s literal 0 HcmV?d00001