summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMarcel van der Boom <marcel@van-der-boom.nl>2022-07-25 21:47:33 +0200
committerLudovic Courtès <ludo@gnu.org>2022-08-01 14:08:09 +0200
commitb8df15b748024128e09cebb4d7ebae42be5df788 (patch)
tree15c1a07cf0275d34a700aeadb0d30ed2ebbcf86f /gnu
parentd7ab54cdb1021e003bb335baa2aee9cc32d747c7 (diff)
downloadguix-b8df15b748024128e09cebb4d7ebae42be5df788.tar.gz
gnu: exiv2: Fix test failure on ppc64le and aarch64.
ppc64 and aarch64 do not raise exception and thus output and exit code
for test is different.

See:

  https://github.com/Exiv2/exiv2/issues/365 and
  https://github.com/Exiv2/exiv2/issues/933

* gnu/packages/image.scm (exiv2)[arguments]: Add 'adjust-tests' phase.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/image.scm16
1 files changed, 14 insertions, 2 deletions
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 4b31ba41a0..1b88c7be83 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1346,7 +1346,7 @@ channels.")
         (base32 "1qm6bvj28l42km009nc60gffn1qhngc0m2wjlhf90si3mcc8d99m"))))
     (build-system cmake-build-system)
     (arguments
-     '(#:test-target "tests"
+     `(#:test-target "tests"
        #:configure-flags (list "-DEXIV2_BUILD_UNIT_TESTS=ON"
                                ;; darktable needs BMFF to support
                                ;; CR3 files.
@@ -1357,7 +1357,19 @@ channels.")
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
                     (lib (string-append out "/lib")))
-               (for-each delete-file (find-files lib "\\.a$"))))))))
+               (for-each delete-file (find-files lib "\\.a$")))))
+
+         ,@(if (or (target-ppc64le?) (target-aarch64?))
+               '((add-after 'unpack 'adjust-tests
+                   (lambda _
+                     ;; Adjust test on ppc64 and aarch64, where no exception
+                     ;; is raised and thus the return value is different.  See
+                     ;; <https://github.com/Exiv2/exiv2/issues/365> and
+                     ;; <https://github.com/Exiv2/exiv2/issues/933>.
+                     (substitute* "tests/bugfixes/github/test_CVE_2018_12265.py"
+                       (("\\$uncaught_exception \\$addition_overflow_message\n") "")
+                       (("retval = \\[1\\]") "retval = [0]")))))
+               '()))))
     (propagated-inputs
      (list expat zlib))
     (native-inputs