From e7826602c55da3813b466cbb9b35e491dd4e154b Mon Sep 17 00:00:00 2001 From: Kevin Backhouse Date: Mon, 27 Jul 2026 14:51:19 +0100 Subject: [PATCH] Add regression test for https://github.com/Exiv2/exiv2/pull/9320 --- test/data/pr_9320.jpg | Bin 0 -> 20231 bytes .../data/test_reference_files/pr_9320.jpg.out | 118 ++++++++++++++++++ tests/bugfixes/github/test_pr_9320.py | 18 +++ 3 files changed, 136 insertions(+) create mode 100644 test/data/pr_9320.jpg create mode 100644 test/data/test_reference_files/pr_9320.jpg.out create mode 100644 tests/bugfixes/github/test_pr_9320.py diff --git a/test/data/pr_9320.jpg b/test/data/pr_9320.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f298150887e0daab55a84a721b73f31ace543b81 GIT binary patch literal 20231 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 _M6Ku^< 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 NPCE_(fS_Q{|JhV3A!Gmm literal 0 HcmV?d00001 diff --git a/test/data/test_reference_files/pr_9320.jpg.out b/test/data/test_reference_files/pr_9320.jpg.out new file mode 100644 index 0000000000..385e1935a8 --- /dev/null +++ b/test/data/test_reference_files/pr_9320.jpg.out @@ -0,0 +1,118 @@ +Exif.Image.Make Ascii 6 Canon Canon +Exif.Image.Model Ascii 14 Canon EOS D30 Canon EOS D30 +Exif.Image.Orientation Short 1 1 top, left +Exif.Image.XResolution Rational 1 180/1 180 +Exif.Image.YResolution Rational 1 180/1 180 +Exif.Image.ResolutionUnit Short 1 2 inch +Exif.Image.DateTime Ascii 20 2000:10:04 13:55:05 2000:10:04 13:55:05 +Exif.Image.YCbCrPositioning Short 1 1 Centered +Exif.Image.ExifTag Long 1 178 178 +Exif.Photo.ExposureTime Rational 1 1/350 1/350 s +Exif.Photo.FNumber Rational 1 40/10 F4 +Exif.Photo.ISOSpeedRatings Short 1 100 100 +Exif.Photo.ExifVersion Undefined 4 48 50 49 48 2.10 +Exif.Photo.DateTimeOriginal Ascii 20 2000:10:04 13:55:05 2000:10:04 13:55:05 +Exif.Photo.DateTimeDigitized Ascii 20 2000:10:04 13:55:05 2000:10:04 13:55:05 +Exif.Photo.ComponentsConfiguration Undefined 4 1 2 3 0 YCbCr +Exif.Photo.CompressedBitsPerPixel Rational 1 3/1 3 +Exif.Photo.ShutterSpeedValue SRational 1 553859/65536 1/350 s +Exif.Photo.ApertureValue Rational 1 262144/65536 F4 +Exif.Photo.ExposureBiasValue SRational 1 0/2 0 EV +Exif.Photo.MaxApertureValue Rational 1 194698/65536 F2.8 +Exif.Photo.SubjectDistance Rational 1 0/1000 Unknown +Exif.Photo.MeteringMode Short 1 5 Multi-segment +Exif.Photo.Flash Short 1 0 No flash +Exif.Photo.FocalLength Rational 1 70/1 70.0 mm +Exif.Photo.MakerNote Undefined 588 15 0 1 0 3 0 32 0 0 0 50 3 0 0 2 0 3 0 4 0 0 0 114 3 0 0 3 0 3 0 4 0 0 0 122 3 0 0 4 0 3 0 25 0 0 0 130 3 0 0 0 0 3 0 6 0 0 0 180 3 0 0 10 0 3 0 59 0 0 0 192 3 0 0 6 0 2 0 32 0 0 0 54 4 0 0 7 0 2 0 24 0 0 0 86 4 0 0 12 0 2 0 6 0 0 0 110 4 0 0 8 0 4 0 1 0 0 0 166 201 135 0 9 0 2 0 32 0 0 0 120 4 0 0 16 0 4 0 1 0 0 0 0 0 20 1 14 0 4 0 1 0 0 0 88 47 17 0 13 0 3 0 10 0 0 0 152 4 0 0 15 0 3 0 14 0 0 0 172 4 0 0 0 0 0 0 64 0 2 0 0 0 3 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 3 0 2 0 1 48 3 0 0 0 161 0 70 0 28 0 1 0 95 0 29 1 255 0 0 0 0 0 0 0 0 0 70 0 146 3 98 2 100 0 0 0 0 0 0 0 50 0 0 0 160 0 248 0 128 0 14 1 0 0 1 0 3 0 1 0 8 0 8 0 0 0 0 0 0 48 0 0 0 0 0 0 1 0 0 0 0 0 128 0 24 1 154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 0 8 0 8 0 0 0 0 0 12 0 34 31 27 249 86 50 81 20 11 111 240 112 50 52 44 206 72 2 241 33 21 162 32 1 163 31 28 11 133 50 177 23 19 238 148 1 242 51 45 218 78 50 1 37 31 220 159 17 179 31 27 7 122 114 50 24 21 18 210 97 66 52 45 233 84 66 113 36 31 220 169 129 67 31 27 20 141 66 210 23 21 29 211 161 114 52 45 237 92 210 1 37 32 229 167 177 4 0 126 0 127 0 126 0 127 0 73 77 71 58 69 79 83 32 68 51 48 32 74 80 69 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 105 114 109 119 97 114 101 32 86 101 114 115 105 111 110 32 65 108 112 104 97 0 0 98 111 103 117 115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 15 0 1 0 3 0 32 0 0 0 50 3 0 0 2 0 3 0 4 0 0 0 114 3 0 0 3 0 3 0 4 0 0 0 122 3 0 0 4 0 3 0 25 0 0 0 130 3 0 0 0 0 3 0 6 0 0 0 180 3 0 0 10 0 3 0 59 0 0 0 192 3 0 0 6 0 2 0 32 0 0 0 54 4 0 0 7 0 2 0 24 0 0 0 86 4 0 0 12 0 2 0 6 0 0 0 110 4 0 0 8 0 4 0 1 0 0 0 166 201 135 0 9 0 2 0 32 0 0 0 120 4 0 0 16 0 4 0 1 0 0 0 0 0 20 1 14 0 4 0 1 0 0 0 88 47 17 0 13 0 3 0 10 0 0 0 152 4 0 0 15 0 3 0 14 0 0 0 172 4 0 0 0 0 0 0 64 0 2 0 0 0 3 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 3 0 2 0 1 48 3 0 0 0 161 0 70 0 28 0 1 0 95 0 29 1 255 0 0 0 0 0 0 0 0 0 70 0 146 3 98 2 100 0 0 0 0 0 0 0 50 0 0 0 160 0 248 0 128 0 14 1 0 0 1 0 3 0 1 0 8 0 8 0 0 0 0 0 0 48 0 0 0 0 0 0 1 0 0 0 0 0 128 0 24 1 154 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 0 8 0 8 0 0 0 0 0 12 0 34 31 27 249 86 50 81 20 11 111 240 112 50 52 44 206 72 2 241 33 21 162 32 1 163 31 28 11 133 50 177 23 19 238 148 1 242 51 45 218 78 50 1 37 31 220 159 17 179 31 27 7 122 114 50 24 21 18 210 97 66 52 45 233 84 66 113 36 31 220 169 129 67 31 27 20 141 66 210 23 21 29 211 161 114 52 45 237 92 210 1 37 32 229 167 177 4 0 126 0 127 0 126 0 127 0 73 77 71 58 69 79 83 32 68 51 48 32 74 80 69 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 105 114 109 119 97 114 101 32 86 101 114 115 105 111 110 32 65 108 112 104 97 0 0 98 111 103 117 115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 28 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 +Exif.MakerNote.Offset Long 1 632 632 +Exif.MakerNote.ByteOrder Ascii 3 II II +Exif.CanonCs.Macro Short 1 2 Off +Exif.CanonCs.Selftimer Short 1 0 Off +Exif.CanonCs.Quality Short 1 3 Fine +Exif.CanonCs.FlashMode Short 1 0 Off +Exif.CanonCs.DriveMode Short 1 1 Continuous +Exif.CanonCs.FocusMode Short 1 1 AI servo AF +Exif.CanonCs.RecordMode Short 1 1 JPEG +Exif.CanonCs.ImageSize Short 1 0 Large +Exif.CanonCs.EasyMode Short 1 1 Manual +Exif.CanonCs.DigitalZoom Short 1 0 None +Exif.CanonCs.Contrast Short 1 0 Normal +Exif.CanonCs.Saturation Short 1 0 Normal +Exif.CanonCs.Sharpness Short 1 0 Normal +Exif.CanonCs.ISOSpeed Short 1 0 n/a +Exif.CanonCs.MeteringMode Short 1 3 Evaluative +Exif.CanonCs.FocusType Short 1 2 Not known +Exif.CanonCs.AFPoint Short 1 12289 Auto-selected +Exif.CanonCs.ExposureProgram Short 1 3 Aperture priority (Av) +Exif.CanonCs.LensType Short 1 161 Canon EF 28-70mm f/2.8L USM *OR* Sigma 28-70mm f/2.8 EX +Exif.CanonCs.Lens Short 3 70 28 1 28.0 - 70.0 mm +Exif.CanonCs.MaxAperture Short 1 95 F2.8 +Exif.CanonCs.MinAperture Short 1 285 F22 +Exif.CanonCs.FlashActivity Short 1 255 (255) +Exif.CanonCs.FlashDetails Short 1 0 +Exif.Canon.FocalLength Short 4 0 70 914 610 70.0 mm +Exif.Canon.CanonFlashInfo Short 4 100 0 0 0 100 0 0 0 +Exif.CanonSi.AutoISO Short 1 0 100 +Exif.CanonSi.ISOSpeed Short 1 160 100 +Exif.CanonSi.MeasuredEV Short 1 248 12.75 +Exif.CanonSi.TargetAperture Short 1 128 F4 +Exif.CanonSi.TargetShutterSpeed Short 1 270 1/347 s +Exif.CanonSi.ExposureCompensation Short 1 0 0 +Exif.CanonSi.WhiteBalance Short 1 1 Daylight +Exif.CanonSi.SlowShutter Short 1 3 None +Exif.CanonSi.Sequence Short 1 1 1 +Exif.CanonSi.OpticalZoomCode Short 1 8 8 +Exif.CanonSi.CameraTemperature Short 1 0 -- +Exif.CanonSi.FlashGuideNumber Short 1 0 0 +Exif.CanonSi.AFPointUsed Short 1 12288 3 focus points; none used +Exif.CanonSi.FlashBias Short 1 0 0 EV +Exif.CanonSi.AutoExposureBracketing Short 1 0 Off +Exif.CanonSi.AEBBracketValue Short 1 0 0 +Exif.CanonSi.ControlMode Short 1 1 1 +Exif.CanonSi.SubjectDistance Short 1 0 0 m +Exif.CanonSi.ApertureValue Short 1 128 F4 +Exif.CanonSi.ShutterSpeedValue Short 1 280 1/431 s +Exif.CanonSi.MeasuredEV2 Short 1 154 13.25 +Exif.CanonSi.BulbDuration Short 1 0 0 +Exif.Canon.ImageType Ascii 32 IMG:EOS D30 JPEG IMG:EOS D30 JPEG +Exif.Canon.FirmwareVersion Ascii 24 Firmware Version Alpha Firmware Version Alpha +Exif.Canon.SerialNumber Ascii 6 bogus bogus +Exif.Canon.FileNumber Long 1 8898982 889-8982 +Exif.Canon.OwnerName Ascii 32 +Exif.Canon.ModelID Long 1 18087936 EOS D30 +Exif.Canon.FileLength Long 1 1126232 1126232 +Exif.Canon.CameraInfo Short 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +Exif.CanonCf.NoiseReduction Short 1 256 256 +Exif.CanonCf.ShutterAeLock Short 1 512 512 +Exif.CanonCf.MirrorLockup Short 1 768 768 +Exif.CanonCf.ExposureLevelIncrements Short 1 1024 1024 +Exif.CanonCf.AFAssist Short 1 1280 1280 +Exif.CanonCf.FlashSyncSpeedAv Short 1 1536 1536 +Exif.CanonCf.AEBSequence Short 1 1792 1792 +Exif.CanonCf.ShutterCurtainSync Short 1 2048 2048 +Exif.CanonCf.LensAFStopButton Short 1 2304 2304 +Exif.CanonCf.FillFlashAutoReduction Short 1 2560 2560 +Exif.CanonCf.MenuButtonReturn Short 1 2816 2816 +Exif.CanonCf.SetButtonFunction Short 1 3072 3072 +Exif.CanonCf.SensorCleaning Short 1 3328 3328 +Exif.Photo.UserComment Undefined 264 +Exif.Photo.FlashpixVersion Undefined 4 48 49 48 48 1.00 +Exif.Photo.ColorSpace Short 1 1 sRGB +Exif.Photo.PixelXDimension Short 1 2160 2160 +Exif.Photo.PixelYDimension Short 1 1440 1440 +Exif.Photo.InteroperabilityTag Long 1 1504 1504 +Exif.Iop.InteroperabilityIndex Ascii 4 R98 R98 +Exif.Iop.InteroperabilityVersion Undefined 4 48 49 48 48 1.00 +Exif.Iop.RelatedImageWidth Short 1 2160 2160 +Exif.Iop.RelatedImageLength Short 1 1440 1440 +Exif.Photo.FocalPlaneXResolution Rational 1 2160000/892 2421.52 +Exif.Photo.FocalPlaneYResolution Rational 1 1440000/595 2420.17 +Exif.Photo.FocalPlaneResolutionUnit Short 1 2 inch +Exif.Photo.SensingMethod Short 1 2 One-chip color area +Exif.Photo.FileSource Undefined 1 3 Digital still camera +Exif.Thumbnail.Compression Short 1 6 JPEG (old-style) +Exif.Thumbnail.XResolution Rational 1 180/1 180 +Exif.Thumbnail.YResolution Rational 1 180/1 180 +Exif.Thumbnail.ResolutionUnit Short 1 2 inch +Exif.Thumbnail.JPEGInterchangeFormat Long 1 1652 1652 +Exif.Thumbnail.JPEGInterchangeFormatLength Long 1 13824 13824 diff --git a/tests/bugfixes/github/test_pr_9320.py b/tests/bugfixes/github/test_pr_9320.py new file mode 100644 index 0000000000..f89967145c --- /dev/null +++ b/tests/bugfixes/github/test_pr_9320.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- + +import system_tests + + +class TestCanonException0x000c(metaclass=system_tests.CaseMeta): + """Regression test for this PR: pr_9320.jpg""" + url = "https://github.com/Exiv2/exiv2/pull/9320" + + filename = "$data_path/pr_9320.jpg" + commands = [ + "$exiv2 -pa -K Exif.Canon.SerialNumber $filename", + ] + stdout = [ + "Exif.Canon.SerialNumber Ascii 6 bogus\n", + ] + stderr = [""] + retval = [0]