diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-12-19 17:06:12 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-12-19 17:51:00 +0100 |
commit | 5b14a7902c58d9fb7923f9e16871f549fbe59b6e (patch) | |
tree | 754db0853a469bf6b68628f7812b9b3795dec763 /tests | |
parent | 9fc037fe1099f499acc01c5f40cae7f72796c49a (diff) |
gexp: Native inputs of nested gexps are properly accounted for.
Previously, 'gexp-native-inputs' would not return the native inputs of
nested gexps. For example, this:
(gexp-native-inputs #~(foo #$#~(bar #+coreutils)))
would return '().
* guix/gexp.scm (gexp-inputs)[add-reference-inputs]: In the
non-recursive cases, check whether N? and NATIVE? are the same, and act
accordingly.
[native-input?]: Remove.
Fold over all of (gexp-references exp).
* tests/gexp.scm ("ungexp + ungexp-native, nested, special mixture"):
New test.
* tests/gexp.scm ("input list splicing + ungexp-native-splicing"): Pass
#:native? #t to 'gexp-input'.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/gexp.scm | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/tests/gexp.scm b/tests/gexp.scm index 354d28f014..797d5fa457 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -277,6 +277,14 @@ (ungexp %bootstrap-guile))))) (list (gexp-inputs exp) '<> (gexp-native-inputs exp)))) +(test-equal "ungexp + ungexp-native, nested, special mixture" + `(() <> ((,coreutils "out"))) + + ;; (gexp-native-inputs exp) used to return '(), wrongfully. + (let* ((foo (gexp (foo (ungexp-native coreutils)))) + (exp (gexp (bar (ungexp foo))))) + (list (gexp-inputs exp) '<> (gexp-native-inputs exp)))) + (test-assert "input list" (let ((exp (gexp (display '(ungexp (list %bootstrap-guile coreutils))))) @@ -327,7 +335,8 @@ `(list ,@(cons 5 outputs)))))) (test-assert "input list splicing + ungexp-native-splicing" - (let* ((inputs (list (gexp-input glibc "debug") %bootstrap-guile)) + (let* ((inputs (list (gexp-input glibc "debug" #:native? #t) + %bootstrap-guile)) (exp (gexp (list (ungexp-native-splicing (cons (+ 2 3) inputs)))))) (and (lset= equal? `((,glibc "debug") (,%bootstrap-guile "out")) |