diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-09-08 22:44:26 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-10-10 22:46:14 +0200 |
commit | 15a01c72209b2d43239fe7516a22e531b7fcb85f (patch) | |
tree | efa0f72643c6b53a75966957eef524eeae712072 /tests/gexp.scm | |
parent | 919370291f4f9cc93878eea7db11013949ee8473 (diff) | |
download | gnu-guix-15a01c72209b2d43239fe7516a22e531b7fcb85f.tar gnu-guix-15a01c72209b2d43239fe7516a22e531b7fcb85f.tar.gz |
gexp: Add 'program-file'.
* guix/gexp.scm (<program-file>): New record type.
(program-file, program-file-compiler): New procedures.
* tests/gexp.scm ("program-file"): New test.
* doc/guix.texi (G-Expressions): Document it.
Diffstat (limited to 'tests/gexp.scm')
-rw-r--r-- | tests/gexp.scm | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/gexp.scm b/tests/gexp.scm index ccbbbae7da..0a8ce6544f 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -619,6 +619,23 @@ (return (and (zero? (close-pipe pipe)) (= (expt n 2) (string->number str))))))) +(test-assertm "program-file" + (let* ((n (random (expt 2 50))) + (exp (gexp (begin + (use-modules (guix build utils)) + (display (ungexp n))))) + (file (program-file "program" exp + #:modules '((guix build utils)) + #:guile %bootstrap-guile))) + (mlet* %store-monad ((drv (lower-object file)) + (out -> (derivation->output-path drv))) + (mbegin %store-monad + (built-derivations (list drv)) + (let* ((pipe (open-input-pipe out)) + (str (get-string-all pipe))) + (return (and (zero? (close-pipe pipe)) + (= n (string->number str))))))))) + (test-assert "text-file*" (let ((references (store-lift references))) (run-with-store %store |