[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
04/04: daemon: Substitute queries return immediately when substitutes ar
From: |
Ludovic Courtès |
Subject: |
04/04: daemon: Substitute queries return immediately when substitutes are disabled. |
Date: |
Tue, 31 May 2016 16:22:41 +0000 (UTC) |
civodul pushed a commit to branch master
in repository guix.
commit 151afd84dc9bf8f13de79a689f7f163fba7254ec
Author: Ludovic Courtès <address@hidden>
Date: Tue May 31 17:58:46 2016 +0200
daemon: Substitute queries return immediately when substitutes are disabled.
Reported by Federico Beffa <address@hidden>
at <https://lists.gnu.org/archive/html/guix-devel/2016-05/msg00928.html>.
* nix/libstore/local-store.cc (LocalStore::querySubstitutablePaths)
(LocalStore::querySubstitutablePathInfos): Return when
'settings.useSubstitutes' is false.
* tests/store.scm ("references/substitutes missing reference info"):
Make sure to return #f on failure.
* tests/store.scm ("substitutable-path-info when substitutes are turned
off"):
("substitutable-paths when substitutes are turned off"): New tests.
---
nix/libstore/local-store.cc | 5 +++++
tests/store.scm | 29 ++++++++++++++++++++++++++++-
2 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/nix/libstore/local-store.cc b/nix/libstore/local-store.cc
index 1eed0ca..347e8a7 100644
--- a/nix/libstore/local-store.cc
+++ b/nix/libstore/local-store.cc
@@ -1213,6 +1213,9 @@ template<class T> T
LocalStore::getIntLineFromSubstituter(RunningSubstituter & r
PathSet LocalStore::querySubstitutablePaths(const PathSet & paths)
{
PathSet res;
+
+ if (!settings.useSubstitutes) return res;
+
foreach (Paths::iterator, i, settings.substituters) {
if (res.size() == paths.size()) break;
RunningSubstituter & run(runningSubstituters[*i]);
@@ -1239,6 +1242,8 @@ PathSet LocalStore::querySubstitutablePaths(const PathSet
& paths)
void LocalStore::querySubstitutablePathInfos(const Path & substituter,
PathSet & paths, SubstitutablePathInfos & infos)
{
+ if (!settings.useSubstitutes) return;
+
RunningSubstituter & run(runningSubstituters[substituter]);
startSubstituter(substituter, run);
if (run.disabled) return;
diff --git a/tests/store.scm b/tests/store.scm
index 3c2c247..38b8efc 100644
--- a/tests/store.scm
+++ b/tests/store.scm
@@ -205,7 +205,8 @@
(%current-system))))
(d (derivation s "the-thing" b '("--help")
#:inputs `((,b)))))
- (references/substitutes s (list (derivation->output-path d) b))))))
+ (references/substitutes s (list (derivation->output-path d) b))
+ #f))))
(test-assert "references/substitutes with substitute info"
(with-store s
@@ -231,6 +232,32 @@
(,t1) ;refs of T2
())))))) ;refs of T1
+(test-equal "substitutable-path-info when substitutes are turned off"
+ '()
+ (with-store s
+ (set-build-options s #:use-substitutes? #f)
+ (let* ((b (add-to-store s "bash" #t "sha256"
+ (search-bootstrap-binary "bash"
+ (%current-system))))
+ (d (derivation s "the-thing" b '("--version")
+ #:inputs `((,b))))
+ (o (derivation->output-path d)))
+ (with-derivation-narinfo d
+ (substitutable-path-info s (list o))))))
+
+(test-equal "substitutable-paths when substitutes are turned off"
+ '()
+ (with-store s
+ (set-build-options s #:use-substitutes? #f)
+ (let* ((b (add-to-store s "bash" #t "sha256"
+ (search-bootstrap-binary "bash"
+ (%current-system))))
+ (d (derivation s "the-thing" b '("--version")
+ #:inputs `((,b))))
+ (o (derivation->output-path d)))
+ (with-derivation-narinfo d
+ (substitutable-paths s (list o))))))
+
(test-assert "requisites"
(let* ((t1 (add-text-to-store %store "random1"
(random-text) '()))