diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/guix-build.sh | 6 | ||||
-rw-r--r-- | tests/packages.scm | 30 |
2 files changed, 36 insertions, 0 deletions
diff --git a/tests/guix-build.sh b/tests/guix-build.sh index 6d4f97019a..9e9788bca0 100644 --- a/tests/guix-build.sh +++ b/tests/guix-build.sh @@ -93,6 +93,9 @@ cat > "$module_dir/foo.scm"<<EOF (define-public baz (dummy-package "baz" (replacement foo))) +(define-public superseded + (deprecated-package "superseded" bar)) + EOF GUIX_PACKAGE_PATH="$module_dir" @@ -168,6 +171,9 @@ test "$drv1" = "$drv2" if guix build guile --with-input=libunistring=something-really-silly then false; else true; fi +# Deprecated/superseded packages. +test "`guix build superseded -d`" = "`guix build bar -d`" + # Parsing package names and versions. guix build -n time # PASS guix build -n time@1.7 # PASS, version found diff --git a/tests/packages.scm b/tests/packages.scm index 456e691962..b8e1f111cd 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -84,6 +84,15 @@ (and (hidden-package? (hidden-package (dummy-package "foo"))) (not (hidden-package? (dummy-package "foo"))))) +(test-assert "package-superseded" + (let* ((new (dummy-package "bar")) + (old (deprecated-package "foo" new))) + (and (eq? (package-superseded old) new) + (mock ((gnu packages) find-best-packages-by-name (const (list old))) + (specification->package "foo") + (and (eq? new (specification->package "foo")) + (eq? new (specification->package+output "foo"))))))) + (test-assert "transaction-upgrade-entry, zero upgrades" (let* ((old (dummy-package "foo" (version "1"))) (tx (mock ((gnu packages) find-newest-available-packages @@ -112,6 +121,27 @@ (eq? item new))) (null? (manifest-transaction-remove tx))))) +(test-assert "transaction-upgrade-entry, superseded package" + (let* ((old (dummy-package "foo" (version "1"))) + (new (dummy-package "bar" (version "2"))) + (dep (deprecated-package "foo" new)) + (tx (mock ((gnu packages) find-newest-available-packages + (const (vhash-cons "foo" (list "2" dep) vlist-null))) + ((@@ (guix scripts package) transaction-upgrade-entry) + (manifest-entry + (inherit (package->manifest-entry old)) + (item (string-append (%store-prefix) "/" + (make-string 32 #\e) "-foo-1"))) + (manifest-transaction))))) + (and (match (manifest-transaction-install tx) + ((($ <manifest-entry> "bar" "2" "out" item)) + (eq? item new))) + (match (manifest-transaction-remove tx) + (((? manifest-pattern? pattern)) + (and (string=? (manifest-pattern-name pattern) "foo") + (string=? (manifest-pattern-version pattern) "1") + (string=? (manifest-pattern-output pattern) "out"))))))) + (test-assert "package-field-location" (let () (define (goto port line column) |