summaryrefslogtreecommitdiff
path: root/tests/publish.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-02-25 11:48:17 +0100
committerLudovic Courtès <ludo@gnu.org>2016-02-25 12:44:41 +0100
commit0043558082d619d0dc51ef27acda8ebb299c2f2c (patch)
treef0d3097b7b9202e8b940c564422583c1b48ff83d /tests/publish.scm
parenta65e2a02fcf6333114cf5cd0e60a3f2f694e391e (diff)
downloadpatches-0043558082d619d0dc51ef27acda8ebb299c2f2c.tar
patches-0043558082d619d0dc51ef27acda8ebb299c2f2c.tar.gz
publish: Do not publish nars for invalid store items.
Before that, /nar requests could succeed if the requested store item exists but is invalid (although such requests were unlikely because the corresponding narinfo request would have failed.) * guix/scripts/publish.scm (render-nar): Add 'store' parameter. Use 'valid-path?' instead of 'file-exists?'. (make-request-handler): Adjust 'render-nar' call accordingly. * tests/publish.scm ("/nar/invalid"): New test.
Diffstat (limited to 'tests/publish.scm')
-rw-r--r--tests/publish.scm8
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/publish.scm b/tests/publish.scm
index 0b92390900..6c710fe0a7 100644
--- a/tests/publish.scm
+++ b/tests/publish.scm
@@ -112,6 +112,14 @@ References: ~a~%"
(call-with-input-string nar (cut restore-file <> temp)))
(call-with-input-file temp read-string))))
+(test-equal "/nar/invalid"
+ 404
+ (begin
+ (call-with-output-file (string-append (%store-prefix) "/invalid")
+ (lambda (port)
+ (display "This file is not a valid store item." port)))
+ (response-code (http-get (publish-uri (string-append "/nar/invalid"))))))
+
(test-end "publish")