mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-04-06 13:10:33 +02:00
utils: Add 'filtered-output-port' and 'compressed-output-port'.
* guix/utils.scm (filtered-output-port, compressed-output-port): New
procedures.
* tests/utils.scm ("compressed-output-port + decompressed-port"): New
test.
This commit is contained in:
@@ -161,6 +161,25 @@
|
||||
(append pids1 pids2))
|
||||
(equal? (get-bytevector-all decompressed) data)))))
|
||||
|
||||
(false-if-exception (delete-file temp-file))
|
||||
(test-equal "compressed-output-port + decompressed-port"
|
||||
'((0) "Hello, compressed port!")
|
||||
(let ((text "Hello, compressed port!")
|
||||
(output (open-file temp-file "w0b")))
|
||||
(let-values (((compressed pids)
|
||||
(compressed-output-port 'xz output)))
|
||||
(display text compressed)
|
||||
(close-port compressed)
|
||||
(close-port output)
|
||||
(and (every (compose zero? cdr waitpid) pids)
|
||||
(let*-values (((input)
|
||||
(open-file temp-file "r0b"))
|
||||
((decompressed pids)
|
||||
(decompressed-port 'xz input)))
|
||||
(let ((str (get-string-all decompressed)))
|
||||
(list (map (compose cdr waitpid) pids)
|
||||
str)))))))
|
||||
|
||||
(false-if-exception (delete-file temp-file))
|
||||
(test-equal "fcntl-flock wait"
|
||||
42 ; the child's exit status
|
||||
|
||||
Reference in New Issue
Block a user