From 37402ecb4379d7199dd4b3386488261938edc780 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 27 Jul 2016 12:43:12 +0200 Subject: tests: Use unbuffered input ports when decompressing from 'guix publish'. Fixes . Reported by Chris Marusich . * tests/publish.scm (http-get-port): Explicitly call 'open-socket-for-uri' and add calls to 'setvbuf'. --- tests/publish.scm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tests/publish.scm b/tests/publish.scm index 0ba33487bd..4dc807505c 100644 --- a/tests/publish.scm +++ b/tests/publish.scm @@ -58,8 +58,16 @@ (define (http-get-body uri) (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)) -- cgit v1.2.3