diff options
author | Mark H Weaver <mhw@netris.org> | 2018-04-10 00:42:22 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2018-04-10 00:42:22 -0400 |
commit | f89aa1521af69b0e1a1350c2380579788b0f8945 (patch) | |
tree | 5009cca687ac669ef846920877cbfb6fffdd9893 /tests | |
parent | 169c658f7f286efae397fa3eda55b1c56fa92a01 (diff) | |
parent | 60e1de6d95bd32b4996c199708541781b8f828fd (diff) | |
download | guix-f89aa1521af69b0e1a1350c2380579788b0f8945.tar.gz |
Merge branch 'master' into core-updates
Diffstat (limited to 'tests')
-rw-r--r-- | tests/guix-package.sh | 8 | ||||
-rw-r--r-- | tests/syscalls.scm | 10 | ||||
-rw-r--r-- | tests/union.scm | 42 |
3 files changed, 57 insertions, 3 deletions
diff --git a/tests/guix-package.sh b/tests/guix-package.sh index 760a2e4c9b..aa5eaa66e7 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -60,6 +60,14 @@ test -L "$profile" && test -L "$profile-1-link" ! test -f "$profile-2-link" test -f "$profile/bin/guile" +# Collisions are properly flagged (in this case, 'python-wrapper' propagates +# python@3, which conflicts with python@2.) +if guix package --bootstrap -n -p "$profile" -i python@2 python-wrapper +then false; else true; fi + +guix package --bootstrap -n -p "$profile" -i python@2 python-wrapper \ + --allow-collisions + # No search path env. var. here. guix package -p "$profile" --search-paths guix package -p "$profile" --search-paths | grep '^export PATH=' diff --git a/tests/syscalls.scm b/tests/syscalls.scm index 22ca2a05d4..0d07280b99 100644 --- a/tests/syscalls.scm +++ b/tests/syscalls.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -151,7 +151,13 @@ ;; XXX: Skip this test when running Linux > 4.7.5 to work around ;; <https://bugzilla.kernel.org/show_bug.cgi?id=183461>. (when (or (not perform-container-tests?) - (version>? (utsname:release (uname)) "4.7.5")) + (version>? (utsname:release (uname)) "4.7.5") + + ;; Skip on Ubuntu's 4.4 kernels, which contain a backport of the + ;; faulty code: <https://bugs.gnu.org/25476>. + (member (utsname:release (uname)) + '("4.4.0-21-generic" "4.4.0-59-generic" + "4.4.0-116-generic"))) (test-skip 1)) (test-equal "pivot-root" #t diff --git a/tests/union.scm b/tests/union.scm index b63edc757b..aa95cae001 100644 --- a/tests/union.scm +++ b/tests/union.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -124,6 +124,46 @@ ;; new 'bin' sub-directory in the profile. (eq? 'directory (stat:type (lstat "bin")))))))) +(test-assert "union-build collision first & last" + (let* ((guile (package-derivation %store %bootstrap-guile)) + (fake (build-expression->derivation + %store "fake-guile" + '(begin + (use-modules (guix build utils)) + (let ((out (assoc-ref %outputs "out"))) + (mkdir-p (string-append out "/bin")) + (call-with-output-file (string-append out "/bin/guile") + (const #t)))) + #:modules '((guix build utils)))) + (builder (lambda (policy) + `(begin + (use-modules (guix build union) + (srfi srfi-1)) + (union-build (assoc-ref %outputs "out") + (map cdr %build-inputs) + #:resolve-collision ,policy)))) + (drv1 + (build-expression->derivation %store "union-first" + (builder 'first) + #:inputs `(("guile" ,guile) + ("fake" ,fake)) + #:modules '((guix build union)))) + (drv2 + (build-expression->derivation %store "union-last" + (builder 'last) + #:inputs `(("guile" ,guile) + ("fake" ,fake)) + #:modules '((guix build union))))) + (and (build-derivations %store (list drv1 drv2)) + (with-directory-excursion (derivation->output-path drv1) + (string=? (readlink "bin/guile") + (string-append (derivation->output-path guile) + "/bin/guile"))) + (with-directory-excursion (derivation->output-path drv2) + (string=? (readlink "bin/guile") + (string-append (derivation->output-path fake) + "/bin/guile")))))) + (test-assert "union-build #:create-all-directories? #t" (let* ((build `(begin (use-modules (guix build union)) |