diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-09-01 22:35:35 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-09-01 23:07:54 +0200 |
commit | 2a75b0b63dbf123023c1c7ae99cf01a3866612a1 (patch) | |
tree | 3bcda01194b81471be5df1eb0e698b9c29986095 /tests | |
parent | 705b97147735dd8cb1d3bf74e0f1a91b50cc7f41 (diff) | |
download | gnu-guix-2a75b0b63dbf123023c1c7ae99cf01a3866612a1.tar gnu-guix-2a75b0b63dbf123023c1c7ae99cf01a3866612a1.tar.gz |
packages: Add 'package-input-rewriting'.
* guix/packages.scm (package-input-rewriting): New procedure.
* tests/packages.scm ("package-input-rewriting"): New test.
* doc/guix.texi (Defining Packages): Document it.
(Package Transformation Options): Add cross-reference.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/packages.scm | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/packages.scm b/tests/packages.scm index e9c8690730..daceea5d62 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -742,6 +742,31 @@ (and (build-derivations %store (list drv)) (file-exists? (string-append out "/bin/make"))))))) +(test-assert "package-input-rewriting" + (let* ((dep (dummy-package "chbouib" + (native-inputs `(("x" ,grep))))) + (p0 (dummy-package "example" + (inputs `(("foo" ,coreutils) + ("bar" ,grep) + ("baz" ,dep))))) + (rewrite (package-input-rewriting `((,coreutils . ,sed) + (,grep . ,findutils)) + (cut string-append "r-" <>))) + (p1 (rewrite p0)) + (p2 (rewrite p0))) + (and (not (eq? p1 p0)) + (eq? p1 p2) ;memoization + (string=? "r-example" (package-name p1)) + (match (package-inputs p1) + ((("foo" dep1) ("bar" dep2) ("baz" dep3)) + (and (eq? dep1 sed) + (eq? dep2 findutils) + (string=? (package-name dep3) "r-chbouib") + (eq? dep3 (rewrite dep)) ;memoization + (match (package-native-inputs dep3) + ((("x" dep)) + (eq? dep findutils))))))))) + (test-eq "fold-packages" hello (fold-packages (lambda (p r) (if (string=? (package-name p) "hello") |