Added testcases

This commit is contained in:
Andreas Huggel 2004-06-27 05:25:22 +00:00
parent 3887ec7071
commit aab016adfe
3 changed files with 196 additions and 59 deletions

View File

@ -3,7 +3,7 @@
Abstract : ExifData write unit tests
Author(s): Andreas Huggel (ahu) <ahuggel@gmx.net>
Version : $Name: $ $Revision: 1.6 $
Version : $Name: $ $Revision: 1.7 $
Test procedure:
$ rm -f test.jpg thumb.jpg iii ttt;
@ -44,7 +44,7 @@ try {
if (argc != 3) {
std::cout << "Usage: write-test file case\n\n"
<< "where case is an integer between 1 and 6\n";
<< "where case is an integer between 1 and 11\n";
return 1;
}
@ -85,7 +85,7 @@ try {
break;
case 5:
std::cerr << "Case 5: ";
std::cerr << "Intrusive change to the makernote metadata\n";
std::cerr << "Intrusive change to the Canon makernote metadata\n";
testCase(testFile, "test5.jpg", "thumb5",
"Makernote.Canon.OwnerName",
"Frau Chan YeeSend und Herr Andreas Huggel");
@ -97,9 +97,49 @@ try {
"Image.DateTime.DateTimeOriginal",
"1999:11:22 00:11:22 and twenty seconds");
break;
case 7:
std::cerr << "Case 7: ";
std::cerr << "Intrusive change to the Fujifilm makernote metadata\n";
testCase(testFile, "test7.jpg", "thumb7",
"Makernote.Fujifilm.Quality",
"Typical Fujifilm Quality");
break;
case 8:
std::cerr << "Case 8: ";
std::cerr << "Intrusive change to the Sigma makernote metadata\n";
testCase(testFile, "test8.jpg", "thumb8",
"Makernote.Sigma.ResolutionMode",
"Sigma HI resolution");
break;
case 9:
std::cerr << "Case 9: ";
std::cerr << "Intrusive change to the Nikon1 makernote metadata\n";
testCase(testFile, "test9.jpg", "thumb9",
"Makernote.Nikon1.Quality",
"Typical Nikon1 Quality");
break;
case 10:
std::cerr << "Case 10: ";
std::cerr << "Intrusive change to the Nikon2 makernote metadata\n";
testCase(testFile, "test10.jpg", "thumb10",
"Makernote.Nikon2.0x0002",
"Nikon2 Version 2");
break;
case 11:
std::cerr << "Case 11: ";
std::cerr << "Intrusive change to the Nikon3 makernote metadata\n";
testCase(testFile, "test11.jpg", "thumb11",
"Makernote.Nikon3.Quality",
"Typical Nikon3 Quality");
break;
// ToDo: Erase Sigma thumbnail
// ToDo: Write to a broken (truncated) IFD entry
default:
std::cout << "Usage: exiftest file case\n\n"
<< "where case is an integer between 1 and 6\n";
<< "where case is an integer between 1 and 11\n";
rc = 1;
break;
}

View File

@ -59,7 +59,7 @@ Case 4: Intrusive change to the standard Exif metadata
---
> Thumbnail.RecordingOffset.JPEGInterchangeFormat 0x0201 1571
------------------------------------------------------------
Case 5: Intrusive change to the makernote metadata
Case 5: Intrusive change to the Canon makernote metadata
---> Reading file ../test/img_1771.jpg
---> Modifying Exif data
---> Writing Exif data to file test5.jpg
@ -102,3 +102,119 @@ Case 6: Intrusive change to the Exif metadata (w/o makernote)
< Thumbnail.RecordingOffset.StripOffsets 0x0111 928
---
> Thumbnail.RecordingOffset.StripOffsets 0x0111 765
------------------------------------------------------------
Case 7: Intrusive change to the Fujifilm makernote metadata
---> Reading file ../test/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
< Image.ExifFormat.ExifTag 0x8769 248
---
> Image.ExifFormat.ExifTag 0x8769 245
33c33
< Image.ExifFormat.InteroperabilityTag 0xa005 1056
---
> Image.ExifFormat.InteroperabilityTag 0xa005 1070
50c50
< Makernote.Fujifilm.Quality 0x1000 NORMAL
---
> Makernote.Fujifilm.Quality 0x1000 Typical Fujifilm Quality
72c72
< Thumbnail.RecordingOffset.JPEGInterchangeFormat 0x0201 1204
---
> Thumbnail.RecordingOffset.JPEGInterchangeFormat 0x0201 1218
------------------------------------------------------------
Case 8: Intrusive change to the Sigma makernote metadata
---> Reading file ../test/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
< Image.ExifFormat.ExifTag 0x8769 12317
---
> Image.ExifFormat.ExifTag 0x8769 213
38c38
< Makernote.Sigma.ResolutionMode 0x0004 HI
---
> Makernote.Sigma.ResolutionMode 0x0004 Sigma HI resolution
63c63
< Thumbnail.RecordingOffset.JPEGInterchangeFormat 0x0201 303
---
> Thumbnail.RecordingOffset.JPEGInterchangeFormat 0x0201 1239
------------------------------------------------------------
Case 9: Intrusive change to the Nikon1 makernote metadata
---> Reading file ../test/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
< Image.ExifFormat.ExifTag 0x8769 284
---
> Image.ExifFormat.ExifTag 0x8769 213
32c32
< Image.ExifFormat.InteroperabilityTag 0xa005 886
---
> Image.ExifFormat.InteroperabilityTag 0xa005 1214
38c38
< Makernote.Nikon1.Quality 0x0004 FINE
---
> Makernote.Nikon1.Quality 0x0004 Typical Nikon1 Quality
57c57
< Thumbnail.RecordingOffset.JPEGInterchangeFormat 0x0201 4084
---
> Thumbnail.RecordingOffset.JPEGInterchangeFormat 0x0201 1338
------------------------------------------------------------
Case 10: Intrusive change to the Nikon2 makernote metadata
---> Reading file ../test/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
< Image.ExifFormat.ExifTag 0x8769 284
---
> Image.ExifFormat.ExifTag 0x8769 212
32c32
< Image.ExifFormat.InteroperabilityTag 0xa005 886
---
> Image.ExifFormat.InteroperabilityTag 0xa005 1038
35c35
< Makernote.Nikon2.0x0002 0x0002 08.00
---
> Makernote.Nikon2.0x0002 0x0002 Nikon2 Version 2
52c52
< Thumbnail.RecordingOffset.JPEGInterchangeFormat 0x0201 2036
---
> Thumbnail.RecordingOffset.JPEGInterchangeFormat 0x0201 1162
------------------------------------------------------------
Case 11: Intrusive change to the Nikon3 makernote metadata
---> Reading file ../test/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
< Image.ExifFormat.ExifTag 0x8769 340
---
> Image.ExifFormat.ExifTag 0x8769 332
36c36
< Image.ExifFormat.InteroperabilityTag 0xa005 30306
---
> Image.ExifFormat.InteroperabilityTag 0xa005 2402
55c55
< Makernote.Nikon3.Quality 0x0004 FINE
---
> Makernote.Nikon3.Quality 0x0004 Typical Nikon3 Quality
101c101
< Thumbnail.RecordingOffset.JPEGInterchangeFormat 0x0201 30444
---
> Thumbnail.RecordingOffset.JPEGInterchangeFormat 0x0201 2538

View File

@ -1,62 +1,43 @@
#! /bin/sh
# Test driver for the write unit tests
# Case 1
echo "------------------------------------------------------------"
testFile="../test/img_1771.jpg"
rm -f test1.jpg thumb1.jpg
rm -f iii ttt;
./exifprint $testFile > iii;
cp $testFile ./test1.jpg;
./write-test $testFile 1 > ttt;
diff iii ttt
# Function:
# runTestCase number file
# Params:
# number: Test case number
# file : Input file
# Abstract:
# Run the requested test case number with the given file
runTestCase()
{
rtc_number=$1
rtc_infile=$2
# Case 2
echo "------------------------------------------------------------"
testFile="../test/img_1771.jpg"
rm -f test2.jpg thumb2.jpg
rm -f iii ttt;
./exifprint $testFile > iii;
cp $testFile ./test2.jpg;
./write-test $testFile 2 > ttt;
diff iii ttt
rtc_outfile=test${rtc_number}.jpg
rtc_jpgthumb=thumb${rtc_number}.jpg
rtc_tifthumb=thumb${rtc_number}.tif
# Case 3
echo "------------------------------------------------------------"
testFile="../test/kodak-dc210.jpg"
rm -f test3.jpg thumb3.jpg
rm -f iii ttt;
./exifprint $testFile > iii;
cp $testFile ./test3.jpg;
./write-test $testFile 3 > ttt;
diff iii ttt
rm -f $rtc_outfile $rtc_jpgthumb $rtc_tifthumb
rm -f iii ttt;
# Case 4
echo "------------------------------------------------------------"
testFile="../test/img_1771.jpg"
rm -f test4.jpg thumb4.jpg
rm -f iii ttt;
./exifprint $testFile > iii;
cp $testFile ./test4.jpg;
./write-test $testFile 4 > ttt;
diff iii ttt
echo "------------------------------------------------------------"
./exifprint $rtc_infile > iii;
cp $rtc_infile $rtc_outfile;
./write-test $rtc_infile $rtc_number > ttt;
diff iii ttt
}
# Case 5
echo "------------------------------------------------------------"
testFile="../test/img_1771.jpg"
rm -f test5.jpg thumb5.jpg
rm -f iii ttt;
./exifprint $testFile > iii;
cp $testFile ./test5.jpg;
./write-test $testFile 5 > ttt;
diff iii ttt
# **********************************************************************
# main
# Case 6
echo "------------------------------------------------------------"
testFile="../test/kodak-dc210.jpg"
rm -f test6.jpg thumb6.jpg
rm -f iii ttt;
./exifprint $testFile > iii;
cp $testFile ./test6.jpg;
./write-test $testFile 6 > ttt;
diff iii ttt
runTestCase 1 ../test/img_1771.jpg
runTestCase 2 ../test/img_1771.jpg
runTestCase 3 ../test/kodak-dc210.jpg
runTestCase 4 ../test/img_1771.jpg
runTestCase 5 ../test/img_1771.jpg
runTestCase 6 ../test/kodak-dc210.jpg
runTestCase 7 ../test/dscf0176.jpg
runTestCase 8 ../test/sigma-d10-IMG10086.jpg
runTestCase 9 ../test/nikon-coolpix-990-DSCN1180.jpg
runTestCase 10 ../test/nikon-e950.jpg
runTestCase 11 ../test/nikon-d70-dsc_0063.jpg