aboutsummaryrefslogtreecommitdiff
path: root/tests/lint.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-07-12 22:41:09 +0200
committerLudovic Courtès <ludo@gnu.org>2020-07-12 22:41:51 +0200
commitc10526672e515f07c92dc447bbc592808f67238e (patch)
tree26dc5ea7ed9de7fd77faa2956e800c7780d2c07d /tests/lint.scm
parent7bbe4655a8726a7250837c01c2678d7bcc6262e6 (diff)
downloadguix-c10526672e515f07c92dc447bbc592808f67238e.tar
guix-c10526672e515f07c92dc447bbc592808f67238e.tar.gz
lint: source: Validate URLs of Git references.
Until now the 'source' checker would look at URL for 'url-fetch' origins but not for 'git-fetch' origins. * guix/lint.scm (check-source): Add case for 'git-reference?'. * tests/lint.scm ("source, git-reference: 301 -> 200"): New test.
Diffstat (limited to 'tests/lint.scm')
-rw-r--r--tests/lint.scm20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/lint.scm b/tests/lint.scm
index ac174f9f23..83becb655a 100644
--- a/tests/lint.scm
+++ b/tests/lint.scm
@@ -698,6 +698,26 @@
(lint-warning-message second-warning)))))))))
(test-skip (if (http-server-can-listen?) 0 1))
+(test-equal "source, git-reference: 301 -> 200"
+ "permanent redirect from http://localhost:10000/foo/bar to http://localhost:9999/foo/bar"
+ (with-http-server `((200 ,%long-string))
+ (let* ((initial-url (%local-url))
+ (redirect (build-response #:code 301
+ #:headers
+ `((location
+ . ,(string->uri initial-url))))))
+ (parameterize ((%http-server-port (+ 1 (%http-server-port))))
+ (with-http-server `((,redirect ""))
+ (let ((pkg (dummy-package
+ "x"
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference (url (%local-url))
+ (commit "v1.0.0")))
+ (sha256 %null-sha256))))))
+ (single-lint-warning-message (check-source pkg))))))))
+
+(test-skip (if (http-server-can-listen?) 0 1))
(test-equal "source: 301 -> 404"
"URI http://localhost:10000/foo/bar not reachable: 404 (\"Such is life\")"
(with-http-server '((404 "booh!"))