summaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
Diffstat (limited to 'guix')
-rwxr-xr-xguix/scripts/substitute.scm13
-rw-r--r--guix/tests.scm11
2 files changed, 18 insertions, 6 deletions
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index df5234d0cf..5cdda343d1 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -746,12 +746,15 @@ substitutes may be unavailable\n")))))
found."
(assoc-ref (daemon-options) option))
+(define-syntax-rule (or* a b)
+ (let ((first a))
+ (if (or (not first) (string-null? first))
+ b
+ first)))
+
(define %cache-url
- (match (and=> ;; TODO: Uncomment the following lines when multiple
- ;; substitute sources are supported.
- ;; (find-daemon-option "untrusted-substitute-urls") ;client
- ;; " "
- (find-daemon-option "substitute-urls") ;admin
+ (match (and=> (or* (find-daemon-option "untrusted-substitute-urls") ;client
+ (find-daemon-option "substitute-urls")) ;admin
string-tokenize)
((url)
url)
diff --git a/guix/tests.scm b/guix/tests.scm
index 16b8cc7f8a..cd8eda2f60 100644
--- a/guix/tests.scm
+++ b/guix/tests.scm
@@ -36,6 +36,7 @@
network-reachable?
shebang-too-long?
mock
+ %test-substitute-urls
%substitute-directory
with-derivation-narinfo
with-derivation-substitute
@@ -49,6 +50,12 @@
;;;
;;; Code:
+(define %test-substitute-urls
+ ;; URLs where to look for substitutes during tests.
+ (make-parameter
+ (or (and=> (getenv "GUIX_BINARY_SUBSTITUTE_URL") list)
+ '())))
+
(define (open-connection-for-tests)
"Open a connection to the build daemon for tests purposes and return it."
(guard (c ((nix-error? c)
@@ -57,7 +64,9 @@
#f))
(let ((store (open-connection)))
;; Make sure we build everything by ourselves.
- (set-build-options store #:use-substitutes? #f)
+ (set-build-options store
+ #:use-substitutes? #f
+ #:substitute-urls (%test-substitute-urls))
;; Use the bootstrap Guile when running tests, so we don't end up
;; building everything in the temporary test store.