summary refs log tree commit diff
path: root/tests/utils.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-03-22 21:58:23 +0100
committerLudovic Courtès <ludo@gnu.org>2014-03-22 22:57:09 +0100
commit7a8024a33ad862fdbc8ae741f0a6f5338cb5b82b (patch)
treec2ab108d3f49f4ead6f964ae46e1c0c3678df66c /tests/utils.scm
parent443eb4e9506026094f5e0dadc3e11d3cf7a86a24 (diff)
downloadguix-7a8024a33ad862fdbc8ae741f0a6f5338cb5b82b.tar.gz
utils: Add 'decompressed-port' and 'compressed-port'.
* guix/utils.scm (decompressed-port, compressed-port): New procedures.
* guix/scripts/substitute-binary.scm (decompressed-port): Remove.
  (guix-substitute-binary): Pass a symbol or #f as the first argument to
  'decompress-port'.
* tests/utils.scm ("compressed-port, decompressed-port, non-file"): New
  test.
Diffstat (limited to 'tests/utils.scm')
-rw-r--r--tests/utils.scm11
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/utils.scm b/tests/utils.scm
index 85daa3db91..39cad701b8 100644
--- a/tests/utils.scm
+++ b/tests/utils.scm
@@ -150,6 +150,17 @@
       (any (compose (negate zero?) cdr waitpid)
            pids))))
 
+(test-assert "compressed-port, decompressed-port, non-file"
+  (let ((data (call-with-input-file (search-path %load-path "guix.scm")
+                get-bytevector-all)))
+    (let*-values (((compressed pids1)
+                   (compressed-port 'xz (open-bytevector-input-port data)))
+                  ((decompressed pids2)
+                   (decompressed-port 'xz compressed)))
+      (and (every (compose zero? cdr waitpid)
+                  (append pids1 pids2))
+           (equal? (get-bytevector-all decompressed) data)))))
+
 (false-if-exception (delete-file temp-file))
 (test-equal "fcntl-flock wait"
   42                                              ; the child's exit status