summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorLeo Famulari <leo@famulari.name>2017-06-29 18:02:17 -0400
committerLeo Famulari <leo@famulari.name>2017-06-29 18:02:17 -0400
commit1024c8119c71ba3ec0122238e8d8254b08d29187 (patch)
treead12a1aac7f828791154a1786d4f245db71b46e9 /tests
parent92cb946bd9d78cb8f6aa8418d505f52da6894ab4 (diff)
parent95bbaa02aa63bc5eae36f686f1ed9915663aa4cf (diff)
downloadguix-1024c8119c71ba3ec0122238e8d8254b08d29187.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'tests')
-rw-r--r--tests/guix-package.sh19
-rw-r--r--tests/profiles.scm7
2 files changed, 26 insertions, 0 deletions
diff --git a/tests/guix-package.sh b/tests/guix-package.sh
index 5ecb33193f..99952f130c 100644
--- a/tests/guix-package.sh
+++ b/tests/guix-package.sh
@@ -279,8 +279,27 @@ guix package --bootstrap --install-from-file="$module_dir/package.scm"
 test "`guix package -A super-non-portable-emacs`" = ""
 test "`guix package -s super-non-portable-emacs | grep ^systems:`" = "systems: "
 
+# Don't upgrade packages marked for removal: <http://bugs.gnu.org/27262>.
+guix package --bootstrap -p "$profile" -i guile-bootstrap
+
+cat > "$module_dir/foo.scm"<<EOF
+(define-module (foo)
+  #:use-module (guix)
+  #:use-module (gnu packages bootstrap))
+
+(define-public x
+  (package (inherit %bootstrap-guile) (version "42")))
+EOF
+
+guix package --bootstrap -p "$profile" -r guile-bootstrap -u guile
+test ! -f "$profile/bin/guile"
+guix package --bootstrap -p "$profile" --roll-back
+test -f "$profile/bin/guile"
+rm "$profile-2-link"
+
 unset GUIX_PACKAGE_PATH
 
+
 # Using 'GUIX_BUILD_OPTIONS'.
 available="`guix package -A | sort`"
 GUIX_BUILD_OPTIONS="--dry-run --no-grafts"
diff --git a/tests/profiles.scm b/tests/profiles.scm
index f731807e8c..469dde2652 100644
--- a/tests/profiles.scm
+++ b/tests/profiles.scm
@@ -197,6 +197,13 @@
 (test-assert "manifest-transaction-null?"
   (manifest-transaction-null? (manifest-transaction)))
 
+(test-assert "manifest-transaction-removal-candidate?"
+  (let ((m (manifest (list guile-2.0.9)))
+        (t (manifest-transaction
+            (remove (list (manifest-pattern (name "guile")))))))
+    (and (manifest-transaction-removal-candidate? guile-2.0.9 t)
+         (not (manifest-transaction-removal-candidate? glibc t)))))
+
 (test-assertm "profile-derivation"
   (mlet* %store-monad
       ((entry ->   (package->manifest-entry %bootstrap-guile))