Updated tests. Still needs work.

v0.27.3
Andreas Huggel 21 years ago
parent c4eca96836
commit 7aa65b6499

@ -14,7 +14,6 @@ Library Features:
+ set thumbnail, write thumbnail tags
+ Make it possible to force write from metadata (just an optional arg to write?)
+ Get rid of Image::detach and make Image open files on-demand
+ Make Image::doWriteMetadata do its work in a single pass
+ Revise Image and IptcData+ExifData API (aka turn it inside out)

@ -1,220 +0,0 @@
------------------------------------------------------------
Case 1: Non-intrusive change to the standard Exif metadata
---> Reading file ./img_1771.jpg
---> Modifying Exif data
---> Writing Exif data to file test1.jpg
->>>>>> using non-intrusive writing <<<<<<-
---> Reading file test1.jpg
---> Writing Exif thumbnail to file thumb1.*
13c13
< Exif.Photo.DateTimeOriginal 0x9003 2003:12:14 12:01:44
---
> Exif.Photo.DateTimeOriginal 0x9003 1999:11:22 00:11:22
------------------------------------------------------------
Case 2: Non-intrusive change to the makernote metadata
---> Reading file ./img_1771.jpg
---> Modifying Exif data
---> Writing Exif data to file test2.jpg
->>>>>> using non-intrusive writing <<<<<<-
---> Reading file test2.jpg
---> Writing Exif thumbnail to file thumb2.*
49c49
< Exif.Canon.OwnerName 0x0009 Andreas Huggel
---
> Exif.Canon.OwnerName 0x0009 Chan YeeSend
------------------------------------------------------------
Case 3: Non-intrusive change to the Exif metadata (w/o makernote)
---> Reading file ./kodak-dc210.jpg
---> Modifying Exif data
---> Writing Exif data to file test3.jpg
->>>>>> using non-intrusive writing <<<<<<-
---> Reading file test3.jpg
---> Writing Exif thumbnail to file thumb3.*
14c14
< Exif.Photo.DateTimeOriginal 0x9003 2000:10:26 16:46:51
---
> Exif.Photo.DateTimeOriginal 0x9003 1999:11:22 00:11:22
------------------------------------------------------------
Case 4: Intrusive change to the standard Exif metadata
---> Reading file ./img_1771.jpg
---> Modifying Exif data
---> Writing Exif data to file test4.jpg
->>>>>> writing from metadata <<<<<<-
---> Reading file test4.jpg
---> Writing Exif thumbnail to file thumb4.*
9c9
< Exif.Image.ExifTag 0x8769 196
---
> Exif.Image.ExifTag 0x8769 184
13c13
< Exif.Photo.DateTimeOriginal 0x9003 2003:12:14 12:01:44
---
> Exif.Photo.DateTimeOriginal 0x9003 1999:11:22 00:11:22 and twenty seconds
29c29
< Exif.Photo.InteroperabilityTag 0xa005 1416
---
> Exif.Photo.InteroperabilityTag 0xa005 1423
60c60
< Exif.Thumbnail.JPEGInterchangeFormat 0x0201 2036
---
> Exif.Thumbnail.JPEGInterchangeFormat 0x0201 1571
------------------------------------------------------------
Case 5: Intrusive change to the Canon makernote metadata
---> Reading file ./img_1771.jpg
---> Modifying Exif data
---> Writing Exif data to file test5.jpg
->>>>>> writing from metadata <<<<<<-
---> Reading file test5.jpg
---> Writing Exif thumbnail to file thumb5.*
9c9
< Exif.Image.ExifTag 0x8769 196
---
> Exif.Image.ExifTag 0x8769 184
29c29
< Exif.Photo.InteroperabilityTag 0xa005 1416
---
> Exif.Photo.InteroperabilityTag 0xa005 1414
49c49
< Exif.Canon.OwnerName 0x0009 Andreas Huggel
---
> Exif.Canon.OwnerName 0x0009 Frau Chan YeeSend und Herr Andreas Huggel
60c60
< Exif.Thumbnail.JPEGInterchangeFormat 0x0201 2036
---
> Exif.Thumbnail.JPEGInterchangeFormat 0x0201 1562
------------------------------------------------------------
Case 6: Intrusive change to the Exif metadata (w/o makernote)
---> Reading file ./kodak-dc210.jpg
---> Modifying Exif data
---> Writing Exif data to file test6.jpg
->>>>>> writing from metadata <<<<<<-
---> Reading file test6.jpg
---> Writing Exif thumbnail to file thumb6.*
10c10
< Exif.Image.ExifTag 0x8769 374
---
> Exif.Image.ExifTag 0x8769 192
14c14
< Exif.Photo.DateTimeOriginal 0x9003 2000:10:26 16:46:51
---
> Exif.Photo.DateTimeOriginal 0x9003 1999:11:22 00:11:22 and twenty seconds
33c33
< Exif.Thumbnail.StripOffsets 0x0111 928
---
> Exif.Thumbnail.StripOffsets 0x0111 765
------------------------------------------------------------
Case 7: Intrusive change to the Fujifilm makernote metadata
---> Reading file ./dscf0176.jpg
---> Modifying Exif data
---> Writing Exif data to file test7.jpg
->>>>>> writing from metadata <<<<<<-
---> Reading file test7.jpg
---> Writing Exif thumbnail to file thumb7.*
11c11
< Exif.Image.ExifTag 0x8769 248
---
> Exif.Image.ExifTag 0x8769 245
33c33
< Exif.Photo.InteroperabilityTag 0xa005 1056
---
> Exif.Photo.InteroperabilityTag 0xa005 1070
50c50
< Exif.Fujifilm.Quality 0x1000 NORMAL
---
> Exif.Fujifilm.Quality 0x1000 Typical Fujifilm Quality
72c72
< Exif.Thumbnail.JPEGInterchangeFormat 0x0201 1204
---
> Exif.Thumbnail.JPEGInterchangeFormat 0x0201 1218
------------------------------------------------------------
Case 8: Intrusive change to the Sigma makernote metadata
---> Reading file ./sigma-d10-IMG10086.jpg
---> Modifying Exif data
---> Writing Exif data to file test8.jpg
->>>>>> writing from metadata <<<<<<-
---> Reading file test8.jpg
---> Writing Exif thumbnail to file thumb8.*
10c10
< Exif.Image.ExifTag 0x8769 12317
---
> Exif.Image.ExifTag 0x8769 213
38c38
< Exif.Sigma.ResolutionMode 0x0004 HI
---
> Exif.Sigma.ResolutionMode 0x0004 Sigma HI resolution
63c63
< Exif.Thumbnail.JPEGInterchangeFormat 0x0201 303
---
> Exif.Thumbnail.JPEGInterchangeFormat 0x0201 1239
------------------------------------------------------------
Case 9: Intrusive change to the Nikon1 makernote metadata
---> Reading file ./nikon-coolpix-990-DSCN1180.jpg
---> Modifying Exif data
---> Writing Exif data to file test9.jpg
->>>>>> writing from metadata <<<<<<-
---> Reading file test9.jpg
---> Writing Exif thumbnail to file thumb9.*
11c11
< Exif.Image.ExifTag 0x8769 284
---
> Exif.Image.ExifTag 0x8769 213
32c32
< Exif.Photo.InteroperabilityTag 0xa005 886
---
> Exif.Photo.InteroperabilityTag 0xa005 1214
38c38
< Exif.Nikon1.Quality 0x0004 FINE
---
> Exif.Nikon1.Quality 0x0004 Typical Nikon1 Quality
57c57
< Exif.Thumbnail.JPEGInterchangeFormat 0x0201 4084
---
> Exif.Thumbnail.JPEGInterchangeFormat 0x0201 1338
------------------------------------------------------------
Case 10: Intrusive change to the Nikon2 makernote metadata
---> Reading file ./nikon-e950.jpg
---> Modifying Exif data
---> Writing Exif data to file test10.jpg
->>>>>> writing from metadata <<<<<<-
---> Reading file test10.jpg
---> Writing Exif thumbnail to file thumb10.*
11c11
< Exif.Image.ExifTag 0x8769 284
---
> Exif.Image.ExifTag 0x8769 212
32c32
< Exif.Photo.InteroperabilityTag 0xa005 886
---
> Exif.Photo.InteroperabilityTag 0xa005 1038
35c35
< Exif.Nikon2.0x0002 0x0002 08.00
---
> Exif.Nikon2.0x0002 0x0002 Nikon2 Version 2
52c52
< Exif.Thumbnail.JPEGInterchangeFormat 0x0201 2036
---
> Exif.Thumbnail.JPEGInterchangeFormat 0x0201 1162
------------------------------------------------------------
Case 11: Intrusive change to the Nikon3 makernote metadata
---> Reading file ./nikon-d70-dsc_0063.jpg
---> Modifying Exif data
---> Writing Exif data to file test11.jpg
->>>>>> writing from metadata <<<<<<-
---> Reading file test11.jpg
---> Writing Exif thumbnail to file thumb11.*
13c13
< Exif.Image.ExifTag 0x8769 340
---
> Exif.Image.ExifTag 0x8769 332
36c36
< Exif.Photo.InteroperabilityTag 0xa005 30306
---
> Exif.Photo.InteroperabilityTag 0xa005 2402
55c55
< Exif.Nikon3.Quality 0x0004 FINE
---
> Exif.Nikon3.Quality 0x0004 Typical Nikon3 Quality
101c101
< Exif.Thumbnail.JPEGInterchangeFormat 0x0201 30444
---
> Exif.Thumbnail.JPEGInterchangeFormat 0x0201 2538

@ -29,7 +29,7 @@ try {
}
std::string file(argv[1]);
std::cout <<"----- Two IFD0 tags\n";
std::cout <<"----- Some IFD0 tags\n";
Exiv2::ExifData ed1;
Exiv2::Exifdatum md1(Exiv2::ExifKey("Exif.Image.Model"));
md1.setValue("Test 1");
@ -162,18 +162,34 @@ try {
write(file, ed4);
print(file);
// Todo: Fix this
std::cout <<"\n----- One IFD1 tag\n";
Exiv2::ExifData ed5;
Exiv2::Exifdatum md5(Exiv2::ExifKey("Exif.Thumbnail.Artist"));
md5.setValue("Test 5");
ed5.add(md5);
write(file, ed5);
print(file);
Exiv2::Exifdatum md6(Exiv2::ExifKey("Exif.Image.Model"));
md6.setValue("Test 5 (Fix me!)");
ed5.add(md6);
std::cout <<"\n----- One IOP and one IFD1 tag\n";
Exiv2::ExifData ed6;
Exiv2::Exifdatum md6(Exiv2::ExifKey("Exif.Iop.InteroperabilityVersion"));
md6.setValue("Test 6 Iop tag");
ed6.add(md6);
Exiv2::Exifdatum md7(Exiv2::ExifKey("Exif.Thumbnail.Artist"));
md7.setValue("Test 6 Ifd1 tag");
ed6.add(md7);
write(file, ed6);
print(file);
write(file, ed5);
std::cout <<"\n----- One IFD0 and one IFD1 tag\n";
Exiv2::ExifData ed7;
Exiv2::Exifdatum md8(Exiv2::ExifKey("Exif.Thumbnail.Artist"));
md8.setValue("Test 7");
ed7.add(md8);
Exiv2::Value::AutoPtr v5 = Exiv2::Value::create(Exiv2::unsignedShort);
v5->read("160 161 162 163");
ed7.add(Exiv2::ExifKey("Exif.Image.SamplesPerPixel"), v5.get());
write(file, ed7);
print(file);
return 0;

@ -1,4 +1,4 @@
----- Two IFD0 tags
----- Some IFD0 tags
Exif.Image.Model 0x0110 IFD0 Ascii 7 Test 1
Exif.Image.SamplesPerPixel 0x0115 IFD0 Short 4 160 161 162 163
Exif.Image.XResolution 0x011a IFD0 SLong 4 -2 -1 0 1
@ -55,4 +55,14 @@ Exif.Image.GPSTag 0x8825 IFD0 Long 1
Exif.GPSInfo.GPSVersionID 0x0000 GPSInfo Ascii 7 Test 4
----- One IFD1 tag
Exif.Image.Model 0x0110 IFD0 Ascii 17 Test 5 (Fix me!)
Exif.Thumbnail.Artist 0x013b IFD1 Ascii 7 Test 5
----- One IOP and one IFD1 tag
Exif.Image.ExifTag 0x8769 IFD0 Long 1 26
Exif.Photo.InteroperabilityTag 0xa005 Exif Long 1 44
Exif.Iop.InteroperabilityVersion 0x0002 Iop Ascii 15 Test 6 Iop tag
Exif.Thumbnail.Artist 0x013b IFD1 Ascii 16 Test 6 Ifd1 tag
----- One IFD0 and one IFD1 tag
Exif.Image.SamplesPerPixel 0x0115 IFD0 Short 4 160 161 162 163
Exif.Thumbnail.Artist 0x013b IFD1 Ascii 7 Test 7

@ -31,15 +31,15 @@ $exiv2 -vf rename *.jpg
echo
echo "Print --------------------------------------------------------------------"
$exiv2 -v print *.jpg
$exiv2 -v -pi print *.jpg
$exiv2 -v -pi print *.jpg > iii
$exiv2 -v -pt print *.jpg
$exiv2 -v -pt print *.jpg > iii
echo
echo "Extract Exif data --------------------------------------------------------"
$exiv2 -vf extract *.jpg
echo
echo "Extract Thumbnail --------------------------------------------------------"
$exiv2 -vf -et extract *.jpg
$exiv2 -v -pi print *.exv > jjj
$exiv2 -v -pt print *.exv > jjj
echo
echo "Compare image data and extracted data ------------------------------------"
diff iii jjj
@ -54,7 +54,7 @@ $exiv2 -v print *.jpg
echo
echo "Insert Exif data ---------------------------------------------------------"
$exiv2 -v insert *.jpg
$exiv2 -v -pi print *.exv > kkk
$exiv2 -v -pt print *.exv > kkk
echo
echo "Compare original and inserted image data ---------------------------------"
diff iii kkk

@ -0,0 +1,18 @@
#! /bin/sh
# Test driver for write unit tests to build Exif metadata from scratch
results="./tmp/write2-test.out"
good="./data/write2-test.out"
(
binpath="../../src"
cp -f ./data/exiv2-empty.jpg ./tmp
cd ./tmp
$binpath/write2-test exiv2-empty.jpg
) > $results
diff -q $results $good
rc=$?
if [ $rc -eq 0 ] ; then
echo "All testcases passed."
else
diff $results $good
fi
Loading…
Cancel
Save