aboutsummaryrefslogtreecommitdiff
path: root/tests/profiles.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/profiles.scm')
-rw-r--r--tests/profiles.scm37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/profiles.scm b/tests/profiles.scm
index 047c5ba49b..99f1fd2763 100644
--- a/tests/profiles.scm
+++ b/tests/profiles.scm
@@ -26,6 +26,8 @@
#:use-module (guix derivations)
#:use-module (gnu packages bootstrap)
#:use-module (ice-9 match)
+ #:use-module (ice-9 regex)
+ #:use-module (srfi srfi-11)
#:use-module (srfi srfi-64))
;; Test the (guix profiles) module.
@@ -53,6 +55,13 @@
(manifest-entry (inherit guile-2.0.9)
(output "debug")))
+(define glibc
+ (manifest-entry
+ (name "glibc")
+ (version "2.19")
+ (item "/gnu/store/...")
+ (output "out")))
+
(test-begin "profiles")
@@ -136,6 +145,34 @@
(equal? m1 m2)
(null? (manifest-entries m3)))))
+(test-assert "manifest-transaction-effects"
+ (let* ((m0 (manifest (list guile-1.8.8)))
+ (t (manifest-transaction
+ (install (list guile-2.0.9 glibc))
+ (remove (list (manifest-pattern (name "coreutils")))))))
+ (let-values (((remove install upgrade)
+ (manifest-transaction-effects m0 t)))
+ (and (null? remove)
+ (equal? (list glibc) install)
+ (equal? (list (cons guile-1.8.8 guile-2.0.9)) upgrade)))))
+
+(test-assert "manifest-show-transaction"
+ (let* ((m (manifest (list guile-1.8.8)))
+ (t (manifest-transaction (install (list guile-2.0.9)))))
+ (let-values (((remove install upgrade)
+ (manifest-transaction-effects m t)))
+ (with-store store
+ (and (string-match "guile\t1.8.8 → 2.0.9"
+ (with-fluids ((%default-port-encoding "UTF-8"))
+ (with-error-to-string
+ (lambda ()
+ (manifest-show-transaction store m t)))))
+ (string-match "guile\t1.8.8 -> 2.0.9"
+ (with-fluids ((%default-port-encoding "ISO-8859-1"))
+ (with-error-to-string
+ (lambda ()
+ (manifest-show-transaction store m t))))))))))
+
(test-assert "profile-derivation"
(run-with-store %store
(mlet* %store-monad