mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
guix: gexp: Define gexp->approximate-sexp.
It will be used in the 'optional-tests' linter. * guix/gexp.scm (gexp->approximate-sexp): New procedure. * tests/gexp.scm ("no references", "unquoted gexp", "unquoted gexp (native)") ("spliced gexp", "unspliced gexp, approximated") ("unquoted gexp, approximated"): Test it. * doc/gexp.scm ("G-Expressions"): Document it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
This commit is contained in:
parent
ebf07a06f0
commit
d9e0ae07db
3 changed files with 60 additions and 0 deletions
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -89,6 +90,36 @@
|
|||
|
||||
(test-begin "gexp")
|
||||
|
||||
(test-equal "no references"
|
||||
'(display "hello gexp->approximate-sexp!")
|
||||
(gexp->approximate-sexp #~(display "hello gexp->approximate-sexp!")))
|
||||
|
||||
(test-equal "unquoted gexp"
|
||||
'(display "hello")
|
||||
(let ((inside #~"hello"))
|
||||
(gexp->approximate-sexp #~(display #$inside))))
|
||||
|
||||
(test-equal "unquoted gexp (native)"
|
||||
'(display "hello")
|
||||
(let ((inside #~"hello"))
|
||||
(gexp->approximate-sexp #~(display #+inside))))
|
||||
|
||||
(test-equal "spliced gexp"
|
||||
'(display '(fresh vegetables))
|
||||
(let ((inside #~(fresh vegetables)))
|
||||
(gexp->approximate-sexp #~(display '(#$@inside)))))
|
||||
|
||||
(test-equal "unspliced gexp, approximated"
|
||||
;; (*approximate*) is really an implementation detail
|
||||
'(display '(*approximate*))
|
||||
(let ((inside (file-append coreutils "/bin/hello")))
|
||||
(gexp->approximate-sexp #~(display '(#$@inside)))))
|
||||
|
||||
(test-equal "unquoted gexp, approximated"
|
||||
'(display '(*approximate*))
|
||||
(let ((inside (file-append coreutils "/bin/hello")))
|
||||
(gexp->approximate-sexp #~(display '#$inside))))
|
||||
|
||||
(test-equal "no refs"
|
||||
'(display "hello!")
|
||||
(let ((exp (gexp (display "hello!"))))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue