aboutsummaryrefslogtreecommitdiff
path: root/tests/publish.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/publish.scm')
-rw-r--r--tests/publish.scm32
1 files changed, 24 insertions, 8 deletions
diff --git a/tests/publish.scm b/tests/publish.scm
index 233b71ce93..268c324551 100644
--- a/tests/publish.scm
+++ b/tests/publish.scm
@@ -122,13 +122,15 @@ URL: nar/~a
Compression: none
NarHash: sha256:~a
NarSize: ~d
-References: ~a~%"
+References: ~a
+FileSize: ~a~%"
%item
(basename %item)
(bytevector->nix-base32-string
(path-info-hash info))
(path-info-nar-size info)
- (basename (first (path-info-references info)))))
+ (basename (first (path-info-references info)))
+ (path-info-nar-size info)))
(signature (base64-encode
(string->utf8
(canonical-sexp->string
@@ -152,11 +154,13 @@ URL: nar/~a
Compression: none
NarHash: sha256:~a
NarSize: ~d
-References: ~%"
+References: ~%\
+FileSize: ~a~%"
item
(uri-encode (basename item))
(bytevector->nix-base32-string
(path-info-hash info))
+ (path-info-nar-size info)
(path-info-nar-size info)))
(signature (base64-encode
(string->utf8
@@ -323,6 +327,7 @@ References: ~%"
("Compression" . "gzip"))
200 ;nar/gzip/…
#t ;Content-Length
+ #t ;FileSize
200) ;nar/…
(call-with-temporary-directory
(lambda (cache)
@@ -350,11 +355,19 @@ References: ~%"
(basename %item) ".nar"))
(response (http-get url)))
(and (= 404 (response-code response))
+
+ ;; We should get an explicitly short TTL for 404 in this case
+ ;; because it's going to become 200 shortly.
+ (match (assq-ref (response-headers response) 'cache-control)
+ ((('max-age . ttl))
+ (< ttl 3600)))
+
(wait-for-file cached)
- (let ((body (http-get-port url))
- (compressed (http-get nar-url))
- (uncompressed (http-get (string-append base "nar/"
- (basename %item)))))
+ (let* ((body (http-get-port url))
+ (compressed (http-get nar-url))
+ (uncompressed (http-get (string-append base "nar/"
+ (basename %item))))
+ (narinfo (recutils->alist body)))
(list (file-exists? nar)
(filter (lambda (item)
(match item
@@ -362,10 +375,13 @@ References: ~%"
(("StorePath" . _) #t)
(("URL" . _) #t)
(_ #f)))
- (recutils->alist body))
+ narinfo)
(response-code compressed)
(= (response-content-length compressed)
(stat:size (stat nar)))
+ (= (string->number
+ (assoc-ref narinfo "FileSize"))
+ (stat:size (stat nar)))
(response-code uncompressed)))))))))
(test-end "publish")