diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-12-06 23:04:57 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-12-07 00:29:41 +0100 |
commit | fcbe4f71ca7ab7f8526bd1643044d204390ec6c2 (patch) | |
tree | db96cfea5053097dadd9e8478569794b5ea4c98a /tests/derivations.scm | |
parent | 2617d956d8ae122128a1ba2cc74983cbd683b042 (diff) | |
download | guix-fcbe4f71ca7ab7f8526bd1643044d204390ec6c2.tar guix-fcbe4f71ca7ab7f8526bd1643044d204390ec6c2.tar.gz |
derivations: Add 'derivation-input-fold'.
* guix/derivations.scm (derivation-input-fold): New procedure.
(substitution-oracle)[closure]: Rewrite in terms of
'derivation-input-fold'.
* tests/derivations.scm ("derivation-input-fold"): New test.
Diffstat (limited to 'tests/derivations.scm')
-rw-r--r-- | tests/derivations.scm | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/derivations.scm b/tests/derivations.scm index 6a7fad85b5..ef6cec6c76 100644 --- a/tests/derivations.scm +++ b/tests/derivations.scm @@ -978,6 +978,24 @@ #:mode (build-mode check)) (list drv dep)))))) +(test-assert "derivation-input-fold" + (let* ((builder (add-text-to-store %store "my-builder.sh" + "echo hello, world > \"$out\"\n" + '())) + (drv1 (derivation %store "foo" + %bash `(,builder) + #:sources `(,%bash ,builder))) + (drv2 (derivation %store "bar" + %bash `(,builder) + #:inputs `((,drv1)) + #:sources `(,%bash ,builder)))) + (equal? (derivation-input-fold (lambda (input result) + (cons (derivation-input-derivation input) + result)) + '() + (list (derivation-input drv2))) + (list drv1 drv2)))) + (test-assert "substitution-oracle and #:substitute? #f" (with-store store (let* ((dep (build-expression->derivation store "dep" |