guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/01: gnu: python-cffi: Fix tests.


From: guix-commits
Subject: 01/01: gnu: python-cffi: Fix tests.
Date: Sat, 4 May 2019 23:22:58 -0400 (EDT)

apteryx pushed a commit to branch core-updates
in repository guix.

commit 4e933afda42c41a5425fe460a0ee7ba5435e612b
Author: Maxim Cournoyer <address@hidden>
Date:   Sat Apr 27 23:46:40 2019 -0400

    gnu: python-cffi: Fix tests.
    
    Fixes issue #35371 (see: https://bugs.gnu.org/35371).
    
    * gnu/packages/libffi.scm (python-cffi)[phases]
    {patch-paths-of-dynamically-loaded-libraries}: Add phase.
    [home-page]: Update URL.
---
 gnu/packages/libffi.scm | 30 +++++++++++++++++++++++++++---
 1 file changed, 27 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm
index f47f762..3a16b75 100644
--- a/gnu/packages/libffi.scm
+++ b/gnu/packages/libffi.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2016, 2017 Ben Woodcroft <address@hidden>
 ;;; Copyright © 2017, 2019 Marius Bakke <address@hidden>
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <address@hidden>
+;;; Copyright © 2019 Maxim Cournoyer <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -126,6 +127,30 @@ conversions for values passed between the two languages.")
                (("'cc testownlib") "'gcc testownlib"))
              (invoke "py.test" "-v" "c/" "testing/")
              #t))
+         (add-before 'check 'patch-paths-of-dynamically-loaded-libraries
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Shared libraries should be referred by their absolute path as
+             ;; using find_library or the like with their name fail when the
+             ;; resolved .so object is a linker script rather than an ELF
+             ;; binary (this is a limitation of the ctype library of Python).
+             (let* ((glibc (assoc-ref inputs "libc"))
+                    (libm (string-append glibc "/lib/libm.so.6"))
+                    (libc (string-append glibc "/lib/libc.so.6")))
+               (substitute* '("testing/cffi0/test_function.py"
+                              "testing/cffi0/test_parsing.py"
+                              "testing/cffi0/test_unicode_literals.py"
+                              "testing/cffi0/test_zdistutils.py"
+                              "testing/cffi1/test_recompiler.py")
+                 (("lib_m = ['\"]{1}m['\"]{1}")
+                  (format #f "lib_m = '~a'" libm)))
+               (substitute* '("testing/cffi0/test_verify.py"
+                              "testing/cffi1/test_verify1.py")
+                 (("lib_m = \\[['\"]{1}m['\"]{1}\\]")
+                  (format #f "lib_m = ['~a']" libm)))
+               (substitute* "c/test_c.py"
+                 (("find_and_load_library\\(['\"]{1}c['\"]{1}")
+                  (format #f "find_and_load_library('~a'" libc)))
+               #t)))
          (add-before 'check 'disable-failing-test
            ;; This is assumed to be a libffi issue:
            ;; 
https://bitbucket.org/cffi/cffi/issues/312/tests-failed-with-armv8
@@ -133,10 +158,9 @@ conversions for values passed between the two languages.")
              (substitute* "testing/cffi0/test_ownlib.py"
                (("ret.left") "ownlib.left"))
              #t)))))
-    (home-page "https://cffi.readthedocs.org";)
+    (home-page "https://cffi.readthedocs.io/";)
     (synopsis "Foreign function interface for Python")
-    (description
-     "Foreign Function Interface for Python calling C code.")
+    (description "Foreign Function Interface for Python calling C code.")
     (license expat)))
 
 (define-public python2-cffi



reply via email to

[Prev in Thread] Current Thread [Next in Thread]