~ruther/guix-local

37402ecb4379d7199dd4b3386488261938edc780 — Ludovic Courtès 9 years ago 688ec13
tests: Use unbuffered input ports when decompressing from 'guix publish'.

Fixes <http://bugs.gnu.org/24060>.
Reported by Chris Marusich <cmmarusich@gmail.com>.

* tests/publish.scm (http-get-port): Explicitly call
'open-socket-for-uri' and add calls to 'setvbuf'.
1 files changed, 10 insertions(+), 2 deletions(-)

M tests/publish.scm
M tests/publish.scm => tests/publish.scm +10 -2
@@ 58,8 58,16 @@
    (lambda (response body) body)))

(define (http-get-port uri)
  (call-with-values (lambda () (http-get uri #:streaming? #t))
    (lambda (response port) port)))
  (let ((socket (open-socket-for-uri uri)))
    ;; Make sure to use an unbuffered port so that we can then peek at the
    ;; underlying file descriptor via 'call-with-gzip-input-port'.
    (setvbuf socket _IONBF)
    (call-with-values
        (lambda ()
          (http-get uri #:port socket #:streaming? #t))
      (lambda (response port)
        (setvbuf port _IONBF)
        port))))

(define (publish-uri route)
  (string-append "http://localhost:6789" route))