# -*- coding: utf-8 -*-
import system_tests
from system_tests import CaseMeta, path, check_no_ASAN_UBSAN_errors
class TestVerboseExtractXmpSidecarToStdout(metaclass=CaseMeta):
"""
Regression test for 'verbose extracting XMP sidecar to stdout' bug described in:
https://github.com/Exiv2/exiv2/issues/1934
"""
url = "https://github.com/Exiv2/exiv2/issues/1934"
filename = path("$data_path/issue_1934_poc4.jpg")
commands = ["$exiv2 --verbose --extract X- $filename"]
stdout = ["""
Value 1
Value 1
"""]
stderr = [""]
retval = [0]
class TestVerboseModifyRegAddExtractXmpSidecarToStdout(metaclass=CaseMeta):
"""
Regression test for 'verbose with modify register and add when extracting XMP sidecar to stdout'
bug described in:
https://github.com/Exiv2/exiv2/issues/1934
"""
url = "https://github.com/Exiv2/exiv2/issues/1934"
filename = path("$data_path/issue_1934_poc4.jpg")
commands = ["""$exiv2 --verbose --Modify "reg TempGroup tempgroup/" --Modify "add Xmp.TempGroup.val Value 1" --extract X- $filename"""]
stdout = ["""
Value 1
Value 1
"""]
stderr = [""]
retval = [0]
class TestVerboseModifySetExtractXmpSidecarToStdout(metaclass=CaseMeta):
"""
Regression test for 'verbose modify set when extracting XMP sidecar to stdout' bug described in:
https://github.com/Exiv2/exiv2/issues/1934
"""
url = "https://github.com/Exiv2/exiv2/issues/1934"
filename = path("$data_path/issue_1934_poc4.jpg")
commands = ["""$exiv2 --verbose --Modify "set Xmp.dc.subject Value 2" --extract X- $filename"""]
stdout = ["""
Value 1
Value 2
Value 1
"""]
stderr = [""]
retval = [0]
class TestVerboseModifyDelExtractXmpSidecarToStdout(metaclass=CaseMeta):
"""
Regression test for 'verbose modify delete when extracting XMP sidecar to stdout' bug described in:
https://github.com/Exiv2/exiv2/issues/1934
"""
url = "https://github.com/Exiv2/exiv2/issues/1934"
filename = path("$data_path/issue_1934_poc4.jpg")
commands = ["""$exiv2 --verbose --Modify "del Xmp.dc.subject" --extract X- $filename"""]
stdout = ["""
Value 1
"""]
stderr = [""]
retval = [0]
class TestVerboseExtractRawMetadataToStdout(metaclass=CaseMeta):
"""
Regression test for 'verbose extracting raw metadata to stdout' bug described in:
https://github.com/Exiv2/exiv2/issues/1934
"""
url = "https://github.com/Exiv2/exiv2/issues/1934"
encodings = [bytes]
def setUp(self):
self.stdout = [bytes(open(self.expand_variables("$filename_ref"),'rb').read())]
filename = path("$data_path/issue_1934_poc4.jpg")
filename_ref = path("$data_path/issue_1934_poc4_ref.exv")
commands = ["$exiv2 --verbose --extract XXeix- $filename"]
stderr = [bytes([])]
retval = [0]
class TestVerboseExtractThumbnailToStdout(metaclass=CaseMeta):
"""
Regression test for 'verbose extracting the thumbnail to stdout' bug described in:
https://github.com/Exiv2/exiv2/issues/1934
"""
url = "https://github.com/Exiv2/exiv2/issues/1934"
encodings = [bytes]
def setUp(self):
self.stdout = [bytes(open(self.expand_variables("$filename_ref"),'rb').read())]
filename = path("$data_path/issue_1934_poc4.jpg")
filename_ref = path("$data_path/issue_1934_poc4-thumb_ref.jpg")
commands = ["$exiv2 --verbose --extract t- $filename"]
stderr = [bytes([])]
retval = [0]
class TestVerboseExtractICCProfileToStdout(metaclass=CaseMeta):
"""
Regression test for 'verbose extracting the ICC profile to stdout' bug described in:
https://github.com/Exiv2/exiv2/issues/1934
"""
url = "https://github.com/Exiv2/exiv2/issues/1934"
encodings = [bytes]
def setUp(self):
self.stdout = [bytes(open(self.expand_variables("$filename_ref"),'rb').read())]
filename = path("$data_path/issue_1934_poc4.jpg")
filename_ref = path("$data_path/issue_1934_poc4_ref.icc")
commands = ["$exiv2 --verbose --extract C- $filename"]
stderr = [bytes([])]
retval = [0]
compare_stdout = check_no_ASAN_UBSAN_errors
class TestVerboseExtractCommentToStdout(metaclass=CaseMeta):
"""
Regression test for 'verbose extracting the comment to stdout' bug described in:
https://github.com/Exiv2/exiv2/issues/1934
"""
url = "https://github.com/Exiv2/exiv2/issues/1934"
encodings = [bytes]
def setUp(self):
self.stdout = [bytes(open(self.expand_variables("$filename_ref"),'rb').read())]
filename = path("$data_path/issue_1934_poc4.jpg")
filename_ref = path("$data_path/issue_1934_poc4_comment_ref.txt")
commands = ["$exiv2 --verbose --extract c- $filename"]
stderr = [bytes([])]
retval = [0]