Skip to content

Commit 5efb175

Browse files
Add tests for pr #2000
1 parent 9c294ef commit 5efb175

File tree

6 files changed

+214
-0
lines changed

6 files changed

+214
-0
lines changed
10.6 KB
Loading

test/data/issue_1934_poc4.jpg

20.9 KB
Loading
21 Bytes
Binary file not shown.

test/data/issue_1934_poc4_ref.exv

13.2 KB
Binary file not shown.

test/data/issue_1934_poc4_ref.icc

3.07 KB
Binary file not shown.
Lines changed: 214 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
1+
# -*- coding: utf-8 -*-
2+
3+
import system_tests
4+
from system_tests import CaseMeta, path, check_no_ASAN_UBSAN_errors
5+
6+
class TestVerboseExtractXmpSidecarToStdout(metaclass=CaseMeta):
7+
"""
8+
Regression test for 'verbose extracting XMP sidecar to stdout' bug described in:
9+
https://github.com/Exiv2/exiv2/issues/1934
10+
"""
11+
url = "https://github.com/Exiv2/exiv2/issues/1934"
12+
13+
filename = path("$data_path/issue_1934_poc4.jpg")
14+
commands = ["$exiv2 --verbose --extract X- $filename"]
15+
16+
stdout = ["""<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
17+
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
18+
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
19+
<rdf:Description rdf:about=""
20+
xmlns:dc="http://purl.org/dc/elements/1.1/"
21+
xmlns:exif="http://ns.adobe.com/exif/1.0/">
22+
<dc:subject>
23+
<rdf:Bag>
24+
<rdf:li>Value 1</rdf:li>
25+
</rdf:Bag>
26+
</dc:subject>
27+
<exif:UserComment>
28+
<rdf:Alt>
29+
<rdf:li xml:lang="x-default">Value 1</rdf:li>
30+
</rdf:Alt>
31+
</exif:UserComment>
32+
</rdf:Description>
33+
</rdf:RDF>
34+
</x:xmpmeta>
35+
<?xpacket end="w"?>"""]
36+
37+
stderr = [""]
38+
retval = [0]
39+
40+
class TestVerboseModifyRegAddExtractXmpSidecarToStdout(metaclass=CaseMeta):
41+
"""
42+
Regression test for 'verbose with modify register and add when extracting XMP sidecar to stdout'
43+
bug described in:
44+
https://github.com/Exiv2/exiv2/issues/1934
45+
"""
46+
url = "https://github.com/Exiv2/exiv2/issues/1934"
47+
48+
filename = path("$data_path/issue_1934_poc4.jpg")
49+
commands = ["""$exiv2 --verbose --Modify "reg TempGroup tempgroup/" --Modify "add Xmp.TempGroup.val Value 1" --extract X- $filename"""]
50+
51+
stdout = ["""<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
52+
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
53+
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
54+
<rdf:Description rdf:about=""
55+
xmlns:dc="http://purl.org/dc/elements/1.1/"
56+
xmlns:TempGroup="tempgroup/"
57+
xmlns:exif="http://ns.adobe.com/exif/1.0/"
58+
TempGroup:val="Value 1">
59+
<dc:subject>
60+
<rdf:Bag>
61+
<rdf:li>Value 1</rdf:li>
62+
</rdf:Bag>
63+
</dc:subject>
64+
<exif:UserComment>
65+
<rdf:Alt>
66+
<rdf:li xml:lang="x-default">Value 1</rdf:li>
67+
</rdf:Alt>
68+
</exif:UserComment>
69+
</rdf:Description>
70+
</rdf:RDF>
71+
</x:xmpmeta>
72+
<?xpacket end="w"?>"""]
73+
74+
stderr = [""]
75+
retval = [0]
76+
77+
class TestVerboseModifySetExtractXmpSidecarToStdout(metaclass=CaseMeta):
78+
"""
79+
Regression test for 'verbose modify set when extracting XMP sidecar to stdout' bug described in:
80+
https://github.com/Exiv2/exiv2/issues/1934
81+
"""
82+
url = "https://github.com/Exiv2/exiv2/issues/1934"
83+
84+
filename = path("$data_path/issue_1934_poc4.jpg")
85+
commands = ["""$exiv2 --verbose --Modify "set Xmp.dc.subject Value 2" --extract X- $filename"""]
86+
87+
stdout = ["""<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
88+
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
89+
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
90+
<rdf:Description rdf:about=""
91+
xmlns:dc="http://purl.org/dc/elements/1.1/"
92+
xmlns:exif="http://ns.adobe.com/exif/1.0/">
93+
<dc:subject>
94+
<rdf:Bag>
95+
<rdf:li>Value 1</rdf:li>
96+
<rdf:li>Value 2</rdf:li>
97+
</rdf:Bag>
98+
</dc:subject>
99+
<exif:UserComment>
100+
<rdf:Alt>
101+
<rdf:li xml:lang="x-default">Value 1</rdf:li>
102+
</rdf:Alt>
103+
</exif:UserComment>
104+
</rdf:Description>
105+
</rdf:RDF>
106+
</x:xmpmeta>
107+
<?xpacket end="w"?>"""]
108+
109+
stderr = [""]
110+
retval = [0]
111+
112+
class TestVerboseModifyDelExtractXmpSidecarToStdout(metaclass=CaseMeta):
113+
"""
114+
Regression test for 'verbose modify delete when extracting XMP sidecar to stdout' bug described in:
115+
https://github.com/Exiv2/exiv2/issues/1934
116+
"""
117+
url = "https://github.com/Exiv2/exiv2/issues/1934"
118+
119+
filename = path("$data_path/issue_1934_poc4.jpg")
120+
commands = ["""$exiv2 --verbose --Modify "del Xmp.dc.subject" --extract X- $filename"""]
121+
122+
stdout = ["""<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
123+
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.4.0-Exiv2">
124+
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
125+
<rdf:Description rdf:about=""
126+
xmlns:exif="http://ns.adobe.com/exif/1.0/">
127+
<exif:UserComment>
128+
<rdf:Alt>
129+
<rdf:li xml:lang="x-default">Value 1</rdf:li>
130+
</rdf:Alt>
131+
</exif:UserComment>
132+
</rdf:Description>
133+
</rdf:RDF>
134+
</x:xmpmeta>
135+
<?xpacket end="w"?>"""]
136+
137+
stderr = [""]
138+
retval = [0]
139+
140+
class TestVerboseExtractRawMetadataToStdout(metaclass=CaseMeta):
141+
"""
142+
Regression test for 'verbose extracting raw metadata to stdout' bug described in:
143+
https://github.com/Exiv2/exiv2/issues/1934
144+
"""
145+
url = "https://github.com/Exiv2/exiv2/issues/1934"
146+
147+
filenameJPG = path("$data_path/issue_1934_poc4.jpg")
148+
filenameEXV = path("$tmp_path/issue_1934_poc4.exv")
149+
filenameRefEXV = path("$data_path/issue_1934_poc4_ref.exv")
150+
151+
commands = ["$exiv2 --verbose --extract XXeix- $filenameJPG > $filenameEXV",
152+
"cmp $filenameEXV $filenameRefEXV"]
153+
154+
stderr = [""]*2
155+
retval = [0]*2
156+
157+
compare_stdout = check_no_ASAN_UBSAN_errors
158+
159+
class TestVerboseExtractThumbnailToStdout(metaclass=CaseMeta):
160+
"""
161+
Regression test for 'verbose extracting the thumbnail to stdout' bug described in:
162+
https://github.com/Exiv2/exiv2/issues/1934
163+
"""
164+
url = "https://github.com/Exiv2/exiv2/issues/1934"
165+
166+
filenameJPG = path("$data_path/issue_1934_poc4.jpg")
167+
filenameThumbnail = path("$tmp_path/issue_1934_poc4-thumb.jpg")
168+
filenameRefThumbnail = path("$data_path/issue_1934_poc4-thumb_ref.jpg")
169+
170+
commands = ["$exiv2 --verbose --extract t- $filenameJPG > $filenameThumbnail",
171+
"cmp $filenameThumbnail $filenameRefThumbnail"]
172+
173+
stderr = [""]*2
174+
retval = [0]*2
175+
176+
compare_stdout = check_no_ASAN_UBSAN_errors
177+
178+
class TestVerboseExtractICCProfileToStdout(metaclass=CaseMeta):
179+
"""
180+
Regression test for 'verbose extracting the ICC profile to stdout' bug described in:
181+
https://github.com/Exiv2/exiv2/issues/1934
182+
"""
183+
url = "https://github.com/Exiv2/exiv2/issues/1934"
184+
185+
filenameJPG = path("$data_path/issue_1934_poc4.jpg")
186+
filenameICC = path("$tmp_path/issue_1934_poc4.icc")
187+
filenameRefICC = path("$data_path/issue_1934_poc4_ref.icc")
188+
189+
commands = ["$exiv2 --verbose --extract C- $filenameJPG > $filenameICC",
190+
"cmp $filenameICC $filenameRefICC"]
191+
192+
stderr = [""]*2
193+
retval = [0]*2
194+
195+
compare_stdout = check_no_ASAN_UBSAN_errors
196+
197+
class TestVerboseExtractCommentToStdout(metaclass=CaseMeta):
198+
"""
199+
Regression test for 'verbose extracting the comment to stdout' bug described in:
200+
https://github.com/Exiv2/exiv2/issues/1934
201+
"""
202+
url = "https://github.com/Exiv2/exiv2/issues/1934"
203+
204+
filenameJPG = path("$data_path/issue_1934_poc4.jpg")
205+
filenameComment = path("$tmp_path/issue_1934_poc4_comment.txt")
206+
filenameRefComment = path("$data_path/issue_1934_poc4_comment_ref.txt")
207+
208+
commands = ["$exiv2 --verbose --extract c- $filenameJPG > $filenameComment",
209+
"cmp $filenameComment $filenameRefComment"]
210+
211+
stderr = [""]*2
212+
retval = [0]*2
213+
214+
compare_stdout = check_no_ASAN_UBSAN_errors

0 commit comments

Comments
 (0)