diff options
author | Maxime Devos <maximedevos@telenet.be> | 2022-03-03 14:14:22 +0000 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-03-13 23:20:07 +0100 |
commit | 2e5c3d91fea5b583c541d70b4c318c2f81554d43 (patch) | |
tree | e71a9fa0119d38668047f4e26fff46c813c297df /tests | |
parent | 5aec62ee0f69d691c1c1e322029463beb8bfc3cd (diff) |
gexp: Correctly handle #$output in 'gexp->approximate-sexp'.
This addresses the following backtrace from
"guix lint -c wrapper-inputs hostapd":
Backtrace:ostapd@2.10 [wrapper-inputs]...
[...]
174:9 3 (gexp->approximate-sexp #<gexp (modify-phases %standard?>)
In srfi/srfi-1.scm:
586:17 2 (map1 (#<gexp-output out> #<gexp-input "pkg-config":o?>))
In guix/gexp.scm:
175:16 1 (_ _)
In ice-9/boot-9.scm:
1685:16 0 (raise-exception _ #:continuable? _)
ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Throw to key `match-error' with args `("match" "no matching pattern" #<gexp-output out>)'.
* guix/gexp.scm (gexp->approximate-sexp): Handle the case where 'reference' is
a <gexp-output>,, by returning (*approximate*).
* tests/gexp.scm ("gexp->approximate-sexp, outputs"): Test it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/gexp.scm | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/tests/gexp.scm b/tests/gexp.scm index 61ed5bc02d..c80ca13fab 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -148,6 +148,11 @@ (null? (gexp-inputs exp)) (gexp->sexp* exp)))) +(test-equal "gexp->approximate-sexp, outputs" + '(list 'out:foo (*approximate*) 'out:bar (*approximate*)) + (gexp->approximate-sexp + #~(list 'out:foo #$output:foo 'out:bar #$output:bar))) + (test-equal "unquote" '(display `(foo ,(+ 2 3))) (let ((exp (gexp (display `(foo ,(+ 2 3)))))) |